S/390: Fix namespace violation

Message ID lfuu4b$uam$1@ger.gmane.org
State Committed
Headers

Commit Message

Stefan Liebler March 14, 2014, 12:53 p.m. UTC
  Hi,

on S390x some conformance tests are failing due to namespace violation:
conform/POSIX/sys/stat.h/conform.out
conform/XPG4/ftw.h/conform.out
conform/UNIX98/mqueue.h/conform.out
conform/UNIX98/sys/stat.h/conform.out
conform/UNIX98/ftw.h/conform.out
conform/XOPEN2K/sys/stat.h/conform.out
conform/XOPEN2K/ftw.h/conform.out
conform/POSIX2008/mqueue.h/conform.out
conform/POSIX2008/sys/stat.h/conform.out
conform/XOPEN2K8/mqueue.h/conform.out
conform/XOPEN2K8/sys/stat.h/conform.out
conform/XOPEN2K8/ftw.h/conform.out

After renaming pad0 to __pad0 in struct stat,
the namespace isn`t violated anymore.

Bye

---
2014-03-14  Stefan Liebler  <stli@linux.vnet.ibm.com>

	* sysdeps/unix/sysv/linux/s390/bits/stat.h
	(struct stat): Rename member pad0 to __pad0
---
  

Comments

Roland McGrath March 14, 2014, 5:02 p.m. UTC | #1
If you're going to touch it at all , you should make it follow the new
convention and be __glibc_reserved* instead.
  
Carlos O'Donell March 14, 2014, 9:44 p.m. UTC | #2
On 03/14/2014 01:02 PM, Roland McGrath wrote:
> If you're going to touch it at all , you should make it follow the new
> convention and be __glibc_reserved* instead.

Agreed.

See:
https://sourceware.org/glibc/wiki/Consensus
~~~
Anyone can commit a change to any header to rename __block to 
__glibc_block or __unused to __glibc_reserved. Multiple versions 
of the same symbol can be created by appending a number e.g. 
__glibc_reserved1. Consenus was reached that glibc would use 
the internal prefix __glibc to avoid name collisions with 
other tools that comprise the implementation from a standard 
perspective. 
See https://sourceware.org/ml/libc-alpha/2012-02/msg00047.html. 
Note that __unused is used by source from BSD that defines it as 
the unused attribute for the compiler, while __block is used by 
Clang's -fblocks extension. 
~~~

Cheers,
Carlos.
  

Patch

diff --git a/sysdeps/unix/sysv/linux/s390/bits/stat.h b/sysdeps/unix/sysv/linux/s390/bits/stat.h
index c154fe9..bb4465c 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/stat.h
@@ -55,7 +55,7 @@  struct stat
     __mode_t st_mode;		/* File mode.  */
     __uid_t st_uid;		/* User ID of the file's owner.	*/
     __gid_t st_gid;		/* Group ID of the file's group.*/
-    int pad0;
+    int __pad0;
     __dev_t st_rdev;		/* Device number, if device.  */
     __off_t st_size;		/* Size of file, in bytes.  */
 #ifdef __USE_XOPEN2K8
@@ -152,7 +152,7 @@  struct stat64
     __mode_t st_mode;		/* File mode.  */
     __uid_t st_uid;		/* User ID of the file's owner.	*/
     __gid_t st_gid;		/* Group ID of the file's group.*/
-    int pad0;
+    int __pad0;
     __dev_t st_rdev;		/* Device number, if device.  */
     __off_t st_size;		/* Size of file, in bytes.  */
 #  ifdef __USE_XOPEN2K8