On 2011/4/27 07:10 PM, Andrew Stubbs wrote:
On 27/04/11 10:57, Michael Hope wrote:
Hi Andrew. I uploaded the wrong preprocessed source to the GCC bugzilla entry. It included the __attribute__((noinline)) workaround which hides the problem.
OK, I've now reproduced the problem and reduced the test case.
See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48783
Andrew
I think I've found the source of this, to summarize: during RTL expand (yes during *expand*), .global __aeabi_* directives are added to the asm output when seeing use of the libcalls. Later the calls get optimized out in some way, leaving the unused .global symbols...
I would think that, under an EABI toolchain environment, all the AAPCS defined __aeabi_* runtime functions should always be available (e.g. libgcc) Thus we should be able to skip adding these .global __aeabi_* directives completely? Ramana?