Today's glibc/nptl failed to build on ia64 with gcc 3.4
Dwayne Grant McConnell
dgm69@us.ibm.com
Thu Jul 8 18:52:00 GMT 2004
On Thu, 8 Jul 2004, H. J. Lu wrote:
> I got
>
> ../sysdeps/unix/sysv/linux/fcntl.c:33: warning: static declaration of
> '__fcntl_nocancel' follows non-static declaration
> ../include/fcntl.h:12: warning: previous declaration of '__fcntl_nocancel' was
> here
> ../sysdeps/unix/sysv/linux/fcntl.c: In function `__fcntl_nocancel':
> ../sysdeps/unix/sysv/linux/fcntl.c:33: sorry, unimplemented: function
> '__fcntl_nocancel' can never be inlined because it uses variable argument lists
> make[4]: ***
> [/export/build/gnu/glibc-nptl-3.4/build-ia64-linux/io/rtld-fcntl.os] Error 1
This happens with ppc64 too. The error is triggered by.
int
#ifdef NO_CANCELLATION
static inline __attribute ((always_inline))
#endif
__fcntl_nocancel (int fd, int cmd, ...)
I played around with a small testcase to discover that gcc 3.3 hammer does
not object to this code but gcc 3.4 does. If "__attribute
((always_inline))" is removed gcc 3.4 is happy. I noticed that between gcc
3.3 hammer and 3.4 the code which prevents inlining has changed. In 3.3
hammer this code was located in c-objc-common.c:inline_forbidden_p() but
was not being triggered. In 3.4 this code is located in
tree-inline.c:inline_forbidden_p_1() and is being triggered. I have not
tracked down what exact changes caused it though.
--
Dwayne Grant McConnell <dgm69@us.ibm.com>
Lotus Notes: Dwayne McConnell/Austin/IBM@IBMUS
More information about the Libc-alpha
mailing list