11.0-CURRENT -r300770 libc++ update vs. lang/powerpc64-xtoolchain-gcc: no go [self hosted powerpc64 context]

Mark Millard markmi at dsl-only.net
Sat May 28 22:12:40 UTC 2016


For 11.0 -r300904 using devel/powerpc64-gcc on powerpc64 (not building clang) I get the failures:

> --- all_subdir_usr.bin ---
. . . (some warnings) . . .
> stdarg.h(40): syntax error [249]
> stdarg.h(98): syntax error [249]
> llib-lposix(307): syntax error [249]
> llib-lposix(308): syntax error [249]
> llib-lposix(309): syntax error [249]
> llib-lposix(309): cannot recover from previous errors [224]
> *** [llib-lposix.ln] Error code 1
> 
> make[5]: stopped in /usr/src/usr.bin/xlint/llib
> 1 error

The 3 llib-lposix lines happen to be the lines using va_list:

> int     (vfprintf)(FILE *stream, const char *format, va_list arg);
> int     (vprintf)(const char *format, va_list arg);
> int     (vsprintf)(char *s, const char *format, va_list arg);

As for stdarg.h (va_list related text will end up being involved as well):

> # ls -l /usr/include/stdarg.h 
> lrwxr-xr-x  1 root  wheel  16 May 23 21:22 /usr/include/stdarg.h -> machine/stdarg.h

> # ls -l /usr/obj/xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/include/stdarg.h
> lrwxr-xr-x  1 root  wheel  16 May 27 16:59 /usr/obj/xtoolchain/powerpc.powerpc64/usr/src/tmp/usr/include/stdarg.h -> machine/stdarg.h

There is also:

/usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0/include/stdarg.h

(which seems to be the one in use).

The usr/include/stdarg.h line 40's in each case are the #endif in:

> #ifndef _VA_LIST_DECLARED
> #define _VA_LIST_DECLARED
> typedef __va_list       va_list;
> #endif

By contrast the 5.3.0/include/stdarg.h has the typedef below as line 40:

> #ifndef __GNUC_VA_LIST
> #define __GNUC_VA_LIST
> typedef __builtin_va_list __gnuc_va_list;
> #endif


usr/include/stdarg.h line 98 in each case is the sizeof line in:

> #define __va_longlong(type)                                             \
>         (__builtin_classify_type(*(type *)0) == __INTEGER_TYPE_CLASS && \
>          sizeof(type) == 8)

By contrast the 5.3.0/include/stdarg.h has the typedef below as line 98:

> #ifndef __va_list__
> typedef __gnuc_va_list va_list;
> #endif /* not __va_list__ */

It would appear that /usr/local/lib/gcc/powerpc64-portbld-freebsd11.0/5.3.0/include/stdarg.h is the one in use during the failure.

===
Mark Millard
markmi at dsl-only.net



More information about the freebsd-ports mailing list