Paul Eggert wrote, On 01/25/2013 05:18 PM: > On 01/25/2013 11:25 AM, Assaf Gordon wrote: > >> So I'm guessing that even though gnulib's stpncpy code is used, >> because the MacOS's native declaration of stpncpy is included, it >> causes problems when the macro is expanded to use "__stpncpy_chk". > > Does the following patch fix things for you? It attempts to change > the substitute string.h to inhibit that macro expansion. >
No, doesn't work, on two levels: 1. This code isn't used - due to the combination of #if's. The resulting "lib/string.h" contains: /* Copy no more than N bytes of SRC to DST, returning a pointer past the last non-NUL byte written into DST. */ #if 1 # if 0 || (!0 && defined stpncpy) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef stpncpy # define stpncpy rpl_stpncpy # endif # endif And this isn't used. I checked by adding an "#error" above the "#undef" - and it didn't trigger an error. 2. I took the two lines (undef+defined) and put them outside the #if's (and verified they were processed, using #error) - but they still did not fix the compilation error.