Only use _FILE_OFFSET_BITS with __GLIBC__
diff mbox series

Message ID 20190307202606.1488-1-heirecka@exherbo.org
State New
Headers show
Series
  • Only use _FILE_OFFSET_BITS with __GLIBC__
Related show

Commit Message

Heiko Becker March 7, 2019, 8:26 p.m. UTC
It's a glibc specific macro. With the musl libc {,l}stat64 are just
a macro defined for compatibility and off_t is always 64bit. The
former's expansion causes a build error though:
"...testsuite/path.c:191:21: error: redefinition of 'stat'".
---
 testsuite/path.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Lucas De Marchi March 8, 2019, 5:16 p.m. UTC | #1
On Thu, Mar 7, 2019 at 12:32 PM Heiko Becker <heirecka@exherbo.org> wrote:
>
> It's a glibc specific macro. With the musl libc {,l}stat64 are just

Is it really glibc-specific? Just grepping uClibc for example returns
the macro there - this would probably break this libc. Do we have a
macro like this to test for musl? Another options would be to check if
these "functions" are implemented like macros and avoid the wrappers
in this case.

Lucas De Marchi

> a macro defined for compatibility and off_t is always 64bit. The
> former's expansion causes a build error though:
> "...testsuite/path.c:191:21: error: redefinition of 'stat'".
> ---
>  testsuite/path.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/testsuite/path.c b/testsuite/path.c
> index fa5fceb..74db898 100644
> --- a/testsuite/path.c
> +++ b/testsuite/path.c
> @@ -187,7 +187,7 @@ WRAP_2ARGS(int, -1, mkdir, mode_t);
>  WRAP_2ARGS(int, -1, access, int);
>  WRAP_2ARGS(int, -1, stat, struct stat*);
>  WRAP_2ARGS(int, -1, lstat, struct stat*);
> -#ifndef _FILE_OFFSET_BITS
> +#if defined(__GLIBC__) && !defined(_FILE_OFFSET_BITS)
>  WRAP_2ARGS(int, -1, stat64, struct stat64*);
>  WRAP_2ARGS(int, -1, lstat64, struct stat64*);
>  WRAP_OPEN(64);
> @@ -198,7 +198,7 @@ WRAP_OPEN();
>  #ifdef HAVE___XSTAT
>  WRAP_VERSTAT(__x,);
>  WRAP_VERSTAT(__lx,);
> -#ifndef _FILE_OFFSET_BITS
> +#if defined(__GLIBC__) && !defined(_FILE_OFFSET_BITS)
>  WRAP_VERSTAT(__x,64);
>  WRAP_VERSTAT(__lx,64);
>  #endif
> --
> 2.21.0
>

Patch
diff mbox series

diff --git a/testsuite/path.c b/testsuite/path.c
index fa5fceb..74db898 100644
--- a/testsuite/path.c
+++ b/testsuite/path.c
@@ -187,7 +187,7 @@  WRAP_2ARGS(int, -1, mkdir, mode_t);
 WRAP_2ARGS(int, -1, access, int);
 WRAP_2ARGS(int, -1, stat, struct stat*);
 WRAP_2ARGS(int, -1, lstat, struct stat*);
-#ifndef _FILE_OFFSET_BITS
+#if defined(__GLIBC__) && !defined(_FILE_OFFSET_BITS)
 WRAP_2ARGS(int, -1, stat64, struct stat64*);
 WRAP_2ARGS(int, -1, lstat64, struct stat64*);
 WRAP_OPEN(64);
@@ -198,7 +198,7 @@  WRAP_OPEN();
 #ifdef HAVE___XSTAT
 WRAP_VERSTAT(__x,);
 WRAP_VERSTAT(__lx,);
-#ifndef _FILE_OFFSET_BITS
+#if defined(__GLIBC__) && !defined(_FILE_OFFSET_BITS)
 WRAP_VERSTAT(__x,64);
 WRAP_VERSTAT(__lx,64);
 #endif