Help gcc with inlining/not inlining a little bit
Dan Kegel
dank@kegel.com
Mon Jul 19 00:02:00 GMT 2004
It looks like the hints to the inliner added by
http://sources.redhat.com/ml/libc-hacker/2003-01/msg00219.html
make gcc-3.5-20040718 unhappy. Here are some of the resulting errors:
do-rel.h: In function `_dl_relocate_object':
../sysdeps/i386/dl-machine.h:630: sorry, unimplemented: inlining failed in call to 'elf_machine_lazy_rel': function not considered for inlining
do-rel.h:69: sorry, unimplemented: called from here
../sysdeps/i386/dl-machine.h:613: sorry, unimplemented: inlining failed in call to 'elf_machine_rel_relative': function not considered for inlining
do-rel.h:105: sorry, unimplemented: called from here
../sysdeps/i386/dl-machine.h:370: sorry, unimplemented: inlining failed in call to 'elf_machine_rel': function not considered for inlining
do-rel.h:120: sorry, unimplemented: called from here
../sysdeps/i386/dl-machine.h:513: sorry, unimplemented: inlining failed in call to 'elf_machine_rela': function not considered for inlining
do-rel.h:128: sorry, unimplemented: called from here
../sysdeps/i386/dl-machine.h:622: sorry, unimplemented: inlining failed in call to 'elf_machine_rela_relative': function not considered for inlining
do-rel.h:105: sorry, unimplemented: called from here
http://gcc.gnu.org/ml/gcc-patches/2004-01/msg01243.html
suggests that this error message could be improved,
and says the problem might be that a function was
declared with two different inlining attributes.
Sure enough, the attribute used in elf/dynamic-link.h is
auto void __attribute__((always_inline))
but the one used in sysdeps/i386/dl-machine.h is
static inline void
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/i386/dl-machine.h.diff?r1=1.126&r2=1.127&cvsroot=glibc
seems to be related; it gives elf_machine_rel and elf_machine_rel_relative
the attributes
static inline void __attribute ((always_inline))
but applying it doesn't seem to help.
Has anyone looked at this yet? I imagine the fix is just to
declare these functions the same way everywhere.
Thanks,
Dan
--
My technical stuff: http://kegel.com
My politics: see http://www.misleader.org for examples of why I'm for regime change
More information about the Libc-alpha
mailing list