Re: getopt broken when building with glibc 2.25.90

2017-06-05 Thread Daniel P. Berrange
On Fri, Jun 02, 2017 at 11:18:04AM -0700, Paul Eggert wrote: > On 06/02/2017 09:25 AM, Daniel P. Berrange wrote: > > Fedora rawhide is now shipping with glibc 2.25.90 and when trying to > > build libvirt with gnulib's getopt module, it crashes & burns > > > >CC getopt.lo > > In file

Re: getopt broken when building with glibc 2.25.90

2017-06-02 Thread Paul Eggert
On 06/02/2017 09:25 AM, Daniel P. Berrange wrote: Fedora rawhide is now shipping with glibc 2.25.90 and when trying to build libvirt with gnulib's getopt module, it crashes & burns CC getopt.lo In file included from ./getopt.h:57:0, from

getopt broken when building with glibc 2.25.90

2017-06-02 Thread Daniel P. Berrange
Fedora rawhide is now shipping with glibc 2.25.90 and when trying to build libvirt with gnulib's getopt module, it crashes & burns CC getopt.lo In file included from ./getopt.h:57:0, from ../../../gnulib/lib/getopt.c:26: ../../config.h:2934:25: warning: 'struct

getopt broken

2009-09-26 Thread Sergey Poznyakoff
Hello, The latest changes to getopt (commit 6471b462, getopt: fix inclusion guards for cygwin) break compilation of getopt1.c on GNU/Linux: GENconfigmake.h CC getopt1.o getopt1.c:42: error: syntax error before '*' token getopt1.c: In function `getopt_long': getopt1.c:44: error: number of

Re: getopt broken

2009-09-26 Thread Eric Blake
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 According to Sergey Poznyakoff on 9/26/2009 3:24 PM: The reason is that the declarations of getopt_long and getopt_long_r both use __getopt_argv_const, which is normally defined in getopt.h. However, if the system already has getopt.h, it gets

Re: getopt broken

2009-09-26 Thread Eric Blake
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 According to Sergey Poznyakoff on 9/26/2009 3:24 PM: Hello, The latest changes to getopt (commit 6471b462, getopt: fix inclusion guards for cygwin) break compilation of getopt1.c on GNU/Linux: GENconfigmake.h CC getopt1.o Why is

Re: getopt broken

2009-09-26 Thread Sergey Poznyakoff
Eric Blake e...@byu.net ha escrit: Oh, I see. getopt in isolation passes, but getopt in combination with argp causes the failure you are seeing. I guess it's because the argp module wants to use lower-level hooks from getopt1.c than what getopt.h normally exposes. Yes, that's it. Argp uses

Re: getopt broken

2009-09-26 Thread Eric Blake
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 According to Sergey Poznyakoff on 9/26/2009 3:52 PM: Eric Blake e...@byu.net ha escrit: Oh, I see. getopt in isolation passes, but getopt in combination with argp causes the failure you are seeing. I guess it's because the argp module wants to

Re: getopt broken

2009-09-26 Thread Sergey Poznyakoff
Eric Blake e...@byu.net ha escrit: Maybe the trick is to check whether _getopt_long_only_r is present to the linker, in which case we can provide our own declaration of it Yes, but we cannot guarantee our declaration matches the actual function definition. Regards, Sergey

Re: getopt broken

2009-09-26 Thread Eric Blake
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 According to Sergey Poznyakoff on 9/26/2009 4:04 PM: Eric Blake e...@byu.net ha escrit: Maybe the trick is to check whether _getopt_long_only_r is present to the linker, in which case we can provide our own declaration of it Yes, but we cannot

Re: getopt broken

2009-09-26 Thread Sergey Poznyakoff
Eric Blake e...@byu.net ha escrit: But I doubt that interface has ever changed signature in glibc, and is not available anywhere else. There are too many possibilities here. E.g. the function takes as its last argument a struct _getopt_data, which is declared in getopt_int.h This structure in

Re: getopt broken

2009-09-26 Thread Eric Blake
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 According to Eric Blake on 9/26/2009 3:30 PM: Any ideas how to fix it? Sounds like we need to follow the pattern of other replacement headers, and use #if @REPLACE_GETOPT@ rather than #ifdef __GETOPT_PREFIX everywhere. I'll see what I can do.