Allow [f]statfs64 to alias [f]statfs

* sysdeps/unix/sysv/linux/fstatfs64.c: Hide prototypes for fstatfs
	and __fstatfs.  Make them aliases of __fstatfs64 if
	STATFS_IS_STATFS64 is set to non-zero.
	* sysdeps/unix/sysv/linux/statfs64.c: Ditto for __statfs, statfs,
	and __statfs64.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c: Do not
	define __fstatfs and fstatfs if STATFS_IS_STATFS64 is non-zero.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c: Ditto
	for __statfs and statfs.
	* sysdeps/unix/sysv/linux/alpha/kernel_stat.h: Set STATFS_IS_STATFS64
	to 0.
	* sysdeps/unix/sysv/linux/generic/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/hppa/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/ia64/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/microblaze/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/mips/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h: Ditto.
	* sysdeps/unix/sysv/linux/x86_64/kernel_stat.h: Ditto.
This commit is contained in:
Steve Ellcey 2016-11-22 09:59:12 -08:00
parent 65a77b5585
commit 510abe7b94
18 changed files with 81 additions and 0 deletions

View File

@ -1,3 +1,29 @@
2016-11-22 Steve Ellcey <sellcey@caviumnetworks.com>
* sysdeps/unix/sysv/linux/fstatfs64.c: Hide prototypes for fstatfs
and __fstatfs. Make them aliases of __fstatfs64 if
STATFS_IS_STATFS64 is set to non-zero.
* sysdeps/unix/sysv/linux/statfs64.c: Ditto for __statfs, statfs,
and __statfs64.
* sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c: Do not
define __fstatfs and fstatfs if STATFS_IS_STATFS64 is non-zero.
* sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c: Ditto
for __statfs and statfs.
* sysdeps/unix/sysv/linux/alpha/kernel_stat.h: Set STATFS_IS_STATFS64
to 0.
* sysdeps/unix/sysv/linux/generic/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/hppa/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/ia64/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/microblaze/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/mips/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h: Ditto.
* sysdeps/unix/sysv/linux/x86_64/kernel_stat.h: Ditto.
2016-11-22 Andreas Schwab <schwab@suse.de>
* misc/mkstemp.c: Include <fcntl.h>.

View File

@ -86,3 +86,4 @@ struct glibc21_stat
};
#define XSTAT_IS_XSTAT64 1
#define STATFS_IS_STATFS64 0

View File

@ -16,9 +16,18 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/* Hide the prototypes for __fstatfs and fstatfs so that GCC will not
complain about the different function signatures if they are aliased
to __fstat64. If STATFS_IS_STATFS64 is not zero then the statfs and
statfs64 structures have an identical layout but different type names. */
#define __fstatfs __fstatfs_disable
#define fstatfs fstatfs_disable
#include <errno.h>
#include <string.h>
#include <sys/statfs.h>
#include <kernel_stat.h>
#include <stddef.h>
#include <sysdep.h>
#include <kernel-features.h>
@ -70,3 +79,11 @@ __fstatfs64 (int fd, struct statfs64 *buf)
#endif
}
weak_alias (__fstatfs64, fstatfs64)
#undef __fstatfs
#undef fstatfs
#if STATFS_IS_STATFS64
weak_alias (__fstatfs64, __fstatfs)
weak_alias (__fstatfs64, fstatfs)
#endif

View File

@ -26,3 +26,5 @@
#else
# define XSTAT_IS_XSTAT64 0
#endif
#define STATFS_IS_STATFS64 0

View File

@ -18,8 +18,10 @@
#include <errno.h>
#include <sys/statfs.h>
#include <kernel_stat.h>
#include <stddef.h>
#if !STATFS_IS_STATFS64
#include "overflow.h"
/* Return information about the filesystem on which FD resides. */
@ -30,3 +32,4 @@ __fstatfs (int fd, struct statfs *buf)
return rc ?: statfs_overflow (buf);
}
weak_alias (__fstatfs, fstatfs)
#endif

View File

@ -18,8 +18,10 @@
#include <errno.h>
#include <sys/statfs.h>
#include <kernel_stat.h>
#include <stddef.h>
#if !STATFS_IS_STATFS64
#include "overflow.h"
/* Return information about the filesystem on which FILE resides. */
@ -31,3 +33,4 @@ __statfs (const char *file, struct statfs *buf)
}
libc_hidden_def (__statfs)
weak_alias (__statfs, statfs)
#endif

View File

@ -31,3 +31,4 @@ struct kernel_stat {
#define _HAVE_STAT64_NSEC
#define XSTAT_IS_XSTAT64 0
#define STATFS_IS_STATFS64 0

View File

@ -18,3 +18,4 @@
#define STAT_IS_KERNEL_STAT 1
#define XSTAT_IS_XSTAT64 1
#define STATFS_IS_STATFS64 0

View File

@ -35,3 +35,4 @@ struct kernel_stat
#define _HAVE_STAT64_NSEC
#define XSTAT_IS_XSTAT64 0
#define STATFS_IS_STATFS64 0

View File

@ -49,3 +49,4 @@ struct kernel_stat
};
#define XSTAT_IS_XSTAT64 0
#define STATFS_IS_STATFS64 0

View File

@ -57,3 +57,4 @@ struct kernel_stat
#endif
#define XSTAT_IS_XSTAT64 0
#define STATFS_IS_STATFS64 0

View File

@ -48,3 +48,4 @@ struct kernel_stat
#define _HAVE_STAT64_NSEC
#define XSTAT_IS_XSTAT64 0
#define STATFS_IS_STATFS64 0

View File

@ -18,3 +18,4 @@
#define STAT_IS_KERNEL_STAT 1
#define XSTAT_IS_XSTAT64 1
#define STATFS_IS_STATFS64 0

View File

@ -18,3 +18,4 @@
#define STAT_IS_KERNEL_STAT 1
#define XSTAT_IS_XSTAT64 1
#define STATFS_IS_STATFS64 0

View File

@ -32,3 +32,4 @@ struct kernel_stat
#define _HAVE_STAT64_NSEC
#define XSTAT_IS_XSTAT64 0
#define STATFS_IS_STATFS64 0

View File

@ -45,3 +45,4 @@ struct kernel_stat64
};
#define XSTAT_IS_XSTAT64 1
#define STATFS_IS_STATFS64 0

View File

@ -16,9 +16,18 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
/* Hide the prototypes for __statfs and statfs so that GCC will not
complain about the different function signatures if they are aliased
to __stat64. If STATFS_IS_STATFS64 is not zero then the statfs and
statfs64 structures have an identical layout but different type names. */
#define __statfs __statfs_disable
#define statfs statfs_disable
#include <errno.h>
#include <string.h>
#include <sys/statfs.h>
#include <kernel_stat.h>
#include <stddef.h>
#include <sysdep.h>
#include <kernel-features.h>
@ -72,3 +81,12 @@ __statfs64 (const char *file, struct statfs64 *buf)
#endif
}
weak_alias (__statfs64, statfs64)
#undef __statfs
#undef statfs
#if STATFS_IS_STATFS64
weak_alias (__statfs64, __statfs)
weak_alias (__statfs64, statfs)
libc_hidden_ver (__statfs64, __statfs)
#endif

View File

@ -18,3 +18,4 @@
#define STAT_IS_KERNEL_STAT 1
#define XSTAT_IS_XSTAT64 1
#define STATFS_IS_STATFS64 0