Hi list,

I tried building linuxboot from SVN, and "make iso" stops during glibc build, because TLS support is "missing". Here's some relevant info from config.log:


configure:7: checking for i386 TLS support
configure:29: gcc -c -g -O2 conftest.s 1>&5
conftest.s: Assembler messages:
conftest.s:8: Error: @TLSLDM reloc is not supported with 64-bit output format
conftest.s:8: Error: junk `...@tlsldm' after expression
conftest.s:9: Error: relocated field and relocation type differ in signedness conftest.s:10: Error: relocated field and relocation type differ in signedness conftest.s:11: Error: relocated field and relocation type differ in signedness conftest.s:12: Error: @GOTNTPOFF reloc is not supported with 64-bit output format
conftest.s:12: Error: junk `...@gotntpoff' after expression
conftest.s:14: Error: @NTPOFF reloc is not supported with 64-bit output format
conftest.s:14: Error: junk `...@ntpoff' after expression
configure:32: $? = 1
configure:40: result: no


The only thing I could find on Google referencing this error is: http://bugs.gentoo.org/show_bug.cgi?id=266172 ... Which doesn't help me at all. The suggestion is to update to glibc 2.9 and we already use 2.11.1.

This is my build system:


uname -a
Linux cn212570 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:28:05 UTC 2010 x86_64 GNU/Linux


Seems like a cross-compiling problem! According to [1] "If you specify just ‘--build’, |configure| will get confused." So I changed it to use --host in the Makefile. To cross-compile gclibc properly, the -m32 argument must be passed to gcc. After that, I hit another problem [2]. Finally, I came up with the attached patch. (Yeah, it's ugly ... I tried setting those options in CFLAGS and CXXFLAGS where they belong, but it doesn't work ... ?!)

I'm curious what else needs some similar cross-compiler fixes to get linuxboot to build properly?


Finally, I tried the linuxboot-4.9 iso from SF. The kernel won't boot from the CD on a Dell Inspiron 400 (Zino HD); it says "cannot find `image`" or some similar error. That's why I was trying to build my own. ;(

[1] http://www.gnu.org/s/libc/manual/html_node/Configuring-and-compiling.html
[2] http://ubuntuforums.org/showthread.php?t=1001811
diff --git a/trunk/linuxboot/Makefile b/trunk/linuxboot/Makefile
--- a/trunk/linuxboot/Makefile
+++ b/trunk/linuxboot/Makefile
@@ -306,25 +306,26 @@ stage1 += stage1/lib/libuuid.so
 	touch $@
 
 ## glibc
 # Configure switches cheerfully stolen from LFS project
 # (http://www.linuxfromscratch.org/lfs/view/development/chapter05/glibc.html).
 build-$(glibc)/libc.so: $(linux)/arch/x86/boot/bzImage	\
 			$(glibc)/.stamp-glibc-gen-translit.pl-patch
 	mkdir -p build-$(glibc)
-	cd build-$(glibc) && CC=$(CC) $(cwd)/$(glibc)/configure	\
+	cd build-$(glibc) && CC="$(CC) -m32 -O2 -U_FORTIFY_SOURCE -fno-stack-protector"	\
+		$(cwd)/$(glibc)/configure	\
 	    --prefix=/usr					\
 	    --disable-profile  --enable-add-ons			\
             --enable-kernel=2.6.18				\
 	    --without-gd --without-cvs				\
             --without-selinux					\
 	    --includedir=$(cwd)/$(linux)/dest/include		\
 	    --with-headers=$(cwd)/$(linux)/dest/include		\
-	    --build=i586-linux					\
+	    --host=i586-linux					\
 	&& find . -name \*.d -print0 | xargs -0 -r rm -f	\
 	&& $(MAKE)
 	touch -c $@
 
 $(call copy_lib, build-$(glibc)/libc.so, stage1/lib/libc.so)
 
 # "Fake" library to link against
 $(call copy_file, build-$(glibc)/libc_nonshared.a, \

<<attachment: jason_oster.vcf>>

------------------------------------------------------------------------------

_______________________________________________
unattended-devel mailing list
unattended-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unattended-devel

Reply via email to