S/390: Fix namespace violation
Commit Message
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
If you're going to touch it at all , you should make it follow the new
convention and be __glibc_reserved* instead.
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.
@@ -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