linuxboot 4.9 problems
Jason Oster <[email protected]>
| Newsgroups | gmane.comp.windows.unattended.devel |
|---|---|
| Message-ID | <[email protected]> |
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 ------------------------------------------------------------------------------ _______________________________________________ unattended-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/unattended-devel
unattended-linuxboot_crosscompile.patch
(text/x-patch, 1.2 KB)
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, \
jason_oster.vcf
(text/x-vcard, 304 B)
begin:vcard fn:Jason Oster n:Oster;Jason org:Camp Navajo;Information Technology adr:Bldg 1;;1 Hughes Ave;Bellemont;AZ;86015;USA email;internet:[email protected] title:IT Specialist III tel;work:928-773-3363 x-mozilla-html:FALSE url:http://www.campnavajo.com/ version:2.1 end:vcard