Subject: Re: bug#13495: Compilation fails on Mac OS X 10.8.0

From: Assaf Gordon <[email-masked]>
Date: Sat, 19 Jan 2013 23:07:07 -0500

On 01/19/13 22:31, Paul Eggert wrote:
>
> Could you please try this:
>
> ./configure
> make clean
> make V=1
>
> I'm interested in the last (failing) command executed by the last 'make'.
> Suppose it is like this:
>
> gcc -std=gnu99  -I. -I./lib  -Ilib ... -o lib/stpncpy.o lib/stpncpy.c
>
> Please send the relevant part of the preprocessed output for that command,
> i.e., the output of
>
> gcc -E -std=gnu99 -I. -I./lib  -Ilib ... lib/stpncpy.c
>

The failed command was:
===
depbase=`echo lib/stpncpy.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'` ; \
gcc -std=gnu99  -I. -I./lib  -Ilib -I./lib -Isrc -I./src    -g -O2 -MT lib/stpncpy.o -MD -MP -MF $depbase.Tpo -c -o lib/stpncpy.o lib/stpncpy.c
===

Attached is the output of:
===
gcc -E -std=gnu99  -I. -I./lib  -Ilib -I./lib -Isrc -I./src    -g -O2 -MT lib/stpncpy.o -MD -MP -MF lib/.deps/stpncpy.Tpo lib/stpncpy.c > stnpcpy.E.txt
===

I don't know exactly why, but it seems the definition of "stpncpy" is replaced

From:
===
char *
__stpncpy (char *dest, const char *src, size_t n)
{
   char c;
   char *s = dest;
===

To:
===
char *
((__builtin_object_size (char *dest, 0) != (size_t) -1) ? __builtin___stpncpy_chk (char *dest, const char *src, size_t n, __builtin_object_size (char *dest, 2 > 1)) : __inline_stpncpy_chk (char *dest, const char *src, size_t n))
{
   char c;
   char *s = dest;
===

Which looks like some macro expansion, but I couldn't find the declaration of this macro.

-gordon