On Thu, 2009-10-15 at 13:58 +0200, Vladimir 'phcoder' Serbinenko wrote: > The methods discussed in this thread are good but aren't for release. So > I just reverted Pavel's commit
My cross-build for sparc64 fails now: __bswapsi2 in fat is not defined This can be traced to the following part of config.log: configure:7314: checking for __bswapsi2 configure:7370: sparc64-linux-uclibc-gcc -o conftest -Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g -Os -m64 -fno-stack-protector -Werror -nostdlib -Wl,--defsym,___main=0x8100 -m64 conftest.c >&5 In file included from /opt/sparc/usr/lib/gcc/sparc64-linux-uclibc/4.3.3/include-fixed/syslimits.h:7, from /opt/sparc/usr/lib/gcc/sparc64-linux-uclibc/4.3.3/include-fixed/limits.h:11, from conftest.c:38: /opt/sparc/usr/lib/gcc/sparc64-linux-uclibc/4.3.3/include-fixed/limits.h:122:61: error: no include path in which to search for limits.h cc1: warnings being treated as errors conftest.c:51: error: function declaration isn't a prototype configure:7377: $? = 1 The reason limits.h is missing is because I failed to compile uClibc for sparc64 using buildroot. But even if I create an empty /opt/sparc/usr/include/limits.h, the test fails: configure:7314: checking for __bswapsi2 configure:7370: gcc -o conftest -Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g -Os -fno-dwarf2-cfi-asm -m64 -fno-stack-protector -mno-stack-arg-probe -Werror -nostdlib -Wl,--defsym,___main=0x8100 -m64 conftest.c >&5 cc1: warnings being treated as errors conftest.c:51: error: function declaration isn't a prototype configure:7377: $? = 1 I'm afraid it's a real bug that would affect native compilation. We should move adding -Werror to TARGET_CFLAGS after all checks. Even after I do that, I still get: configure:7305: checking for __bswapsi2 configure:7361: gcc -o conftest -Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g -Os -fno-dwarf2-cfi-asm -m64 -fno-stack-protector -mno-stack-arg-probe -nostdlib -Wl,--defsym,___main=0x8100 -m64 conftest.c >&5 conftest.c:51: warning: function declaration isn't a prototype /usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400144 /tmp/ccoCvQMe.o: In function `main': /home/proski/src/grub2.git/build-ieee1275-sparc64-linux-uclibc/conftest.c:62: undefined reference to `__bswapsi2' collect2: ld returned 1 exit status configure:7368: $? = 1 That may or may not be due to the lack of the libc. I tried checking for __ashldi3, which is exported unconditionally on PowerPC, and the check fails, even though I have libc for PowerPC. That's also a cross-compiler, but I can test it on a PowerMac if necessary. This makes me think that checks for __bswapsi2 and __bswapdi2 will fail on Sparc64, even if those functions are present and even if --disable-werror is used. -- Regards, Pavel Roskin _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel