------- Comment #84 from aldot at gcc dot gnu dot org 2008-09-24 09:51 ------- The fix doesn't seem to work for me on arm: $ cat pr-weak.c /* tell the compiler that the count isn't in the small data section if the arch * has one (eg: FRV) */ extern const unsigned long kallsyms_num_syms __attribute__((weak, section(".rodata")));
int main(void) { return !!kallsyms_num_syms; } $ /there.arm/usr/bin/arm-linux-uclibcgnueabi-gcc -Os -S -o - pr-weak.c -v Using built-in specs. Target: arm-linux-uclibcgnueabi Configured with: /srcs/toolchain_build_arm_nofpu/gcc-4.4.0/configure --prefix=/usr --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu --target=arm-linux-uclibcgnueabi --enable-languages=c,fortran --with-sysroot=/there.arm --with-build-time-tools=/there.arm/usr/arm-linux-uclibcgnueabi/bin --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --enable-shared --with-gmp=/srcs/toolchain_build_arm_nofpu/gmp --with-mpfr=/srcs/toolchain_build_arm_nofpu/mpfr --disable-nls --enable-threads --disable-multilib --with-float=soft --with-abi=aapcs-linux --disable-libssp --disable-libssp --disable-libmudflap --disable-libgomp --enable-decimal-float=no Thread model: posix gcc version 4.4.0 20080923 (experimental) [trunk revision 140602] (GCC) COLLECT_GCC_OPTIONS='-Os' '-S' '-o' '-' '-v' '-mfloat-abi=soft' '-mabi=aapcs-linux' /there.arm/usr/bin/../libexec/gcc/arm-linux-uclibcgnueabi/4.4.0/cc1 -quiet -v -iprefix /there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/ pr-weak.c -quiet -dumpbase pr-weak.c -mfloat-abi=soft -mabi=aapcs-linux -auxbase-strip - -Os -version -o - ignoring nonexistent directory "/there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/../../../../arm-linux-uclibcgnueabi/include" ignoring nonexistent directory "/there.arm/usr/local/include" ignoring duplicate directory "/there.arm/usr/bin/../lib/gcc/../../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/include" ignoring duplicate directory "/there.arm/usr/bin/../lib/gcc/../../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/include-fixed" ignoring nonexistent directory "/there.arm/usr/bin/../lib/gcc/../../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/../../../../arm-linux-uclibcgnueabi/include" #include "..." search starts here: #include <...> search starts here: /there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/include /there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/include-fixed /there.arm/usr/include End of search list. GNU C (GCC) version 4.4.0 20080923 (experimental) [trunk revision 140602] (arm-linux-uclibcgnueabi) compiled by GNU C version 4.3.2, GMP version 4.2.2, MPFR version 2.3.1. GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 071bc0f306e6057c8a651fee23ec8dfa .cpu arm10tdmi .fpu softvfp .eabi_attribute 20, 1 .eabi_attribute 21, 1 .eabi_attribute 23, 3 .eabi_attribute 24, 1 .eabi_attribute 25, 1 .eabi_attribute 26, 2 .eabi_attribute 30, 4 .eabi_attribute 18, 4 .file "pr-weak.c" .text .align 2 .global main .type main, %function main: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. ldr r3, .L3 ldr r0, [r3, #0] subs r0, r0, #0 movne r0, #1 bx lr .L4: .align 2 .L3: .word kallsyms_num_syms .size main, .-main .ident "GCC: (GNU) 4.4.0 20080923 (experimental) [trunk revision 140602]" .section .note.GNU-stack,"",%progbits COMPILER_PATH=/there.arm/usr/bin/../libexec/gcc/arm-linux-uclibcgnueabi/4.4.0/:/there.arm/usr/bin/../libexec/gcc/:/there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/../../../../arm-linux-uclibcgnueabi/bin/ LIBRARY_PATH=/there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/:/there.arm/usr/bin/../lib/gcc/:/there.arm/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.4.0/../../../../arm-linux-uclibcgnueabi/lib/:/there.arm/lib/:/there.arm/usr/lib/ COLLECT_GCC_OPTIONS='-Os' '-S' '-o' '-' '-v' '-mfloat-abi=soft' '-mabi=aapcs-linux' works with 4.3.2 configured in the same way. -- aldot at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37170