在 2019/8/28 2:38, Christian Franke 写道: > These warnings are not printed for calls of the v*printf() functions, > only for the non-v variants. Delegating to non-v variants always > requires __builtin_va_arg_pack() which is not used in the existing code. >
Adding the pragmas back only when GCC starts to warn about something doesn't seem a good idea. Actually, it is the inconsistency that concerns me so I'd remove them if I were you. > > > The original mempcpy() and possibly other GNU extensions are also not > guarded by _GNU_SOURCE in the current string.h. Should possibly be fixed > first independently, then I'm happy to adjust the patch. > Probably I can do this later. > >> Also be advised that those `__builtin___*_chk()` things are only >> available since GCC 4.9. > > These are possibly available since 4.1: > https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Object-Size-Checking.html > Actually there is not much difference (except section number) to current > documentation: > https://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html > > I revived a 2012 Debian wheezy from my VM-graveyard for a quick test: > It provides gcc 4.7.0 and *-w64-mingw32 4.6.3. Both support > __buildin__*_chk() and a runtime with the required __*_chk() functions. > The Linux glibc includes actually use these, the code is guarded with > __GNU_PREREQ(4,1). > > Sorry my bad. I tried compiling a simple function which attempted to call `__builtin___memcpy_chk()`, using a series of compilers, without checking the reason. I noticed that the tests prior to 4.9 failed but it was actually owing to command line options. This part looks good to me except the `mempcpy` thing. -- Best regards, LH_Mouse _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
