Hi,

I had to jump through some strange hoops in order to get elilo built on an x86 embedded build.

This is what got it to build:

1. there is a dependency, elilo needs gnu-efi, this should be added to the T2 package documentation on the website. and also to the internal dependencies.

2. gnu-efi does not build under ia32/x86 arch in the current svn trunk. there is a linker error:


make[1]: Entering directory `/opt/T2/t2-trunk/src.gnu-efi.GW_5.20090716.190157.17660.loadgen1/gnu-efi-3.0/apps' i686-t2-linux-gnu-gcc -I./../apps -I./../apps/../inc -I./../apps/../inc/ia32 -I./../apps/../inc/protocol -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -DCONFIG_ia32 -D__KERNEL__ -I/usr/src/sys/build/include -c t.c -o t.o i686-t2-linux-gnu-ld -nostdlib -T ./../apps/../gnuefi/elf_ia32_efi.lds -shared -Bsymbolic -L../lib -L../gnuefi ../gnuefi/crt0-efi-ia32.o t.o -o t.so -lefi -lgnuefi /opt/T2/t2-trunk/build/GW_5-8.0-trunk-embedded-adax-gw-x86-pentium-m-cross/TOOLCHAIN/tools.cross/crosscc/../lib/gcc/i686-t2-linux-gnu/4.3.2/libgcc.a i686-t2-linux-gnu-ld: section .data [00000000 -> 00002183] overlaps section .hash [00000000 -> 0000065b] i686-t2-linux-gnu-ld: section .text [00001000 -> 00004b0c] overlaps section .data [00000000 -> 00002183] i686-t2-linux-gnu-ld: section .dynamic [00003000 -> 00003077] overlaps section .text [00001000 -> 00004b0c]
i686-t2-linux-gnu-ld: t.so: section .data vma 0x0 overlaps previous sections
i686-t2-linux-gnu-ld: t.so: section .text vma 0x1000 overlaps previous sections i686-t2-linux-gnu-ld: t.so: section .dynamic vma 0x3000 overlaps previous sections i686-t2-linux-gnu-ld: t.so: section .rel vma 0x4000 overlaps previous sections i686-t2-linux-gnu-ld: t.so: section .dynsym vma 0x5000 overlaps previous sections i686-t2-linux-gnu-ld: t.so: section .dynstr vma 0x6000 overlaps previous sections
make[1]: *** [t.so] Error 1
rm t.o
make[1]: Leaving directory `/opt/T2/t2-trunk/src.gnu-efi.GW_5.20090716.190157.17660.loadgen1/gnu-efi-3.0/apps'
make: *** [apps] Error 2
Due to previous errors, no 1-gnu-efi.log file!
(Try enabling xtrace in the config to track an error inside the build system.)
--- BUILD ERROR ---

Found  a fix for this on the RedHat website, it is described here:
https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=492183

A corrected lds file for ia32 was posted here:
https://bugzilla.redhat.com/attachment.cgi?id=337523

I Made a patch for this which is attached.
It now links OK.

Jan
diff -aur gnu-efi-3.0/gnuefi/elf_ia32_efi.lds gnu-efi-3.0-fix/gnuefi/elf_ia32_efi.lds
--- gnu-efi-3.0/gnuefi/elf_ia32_efi.lds	2008-09-18 12:52:58.000000000 -0400
+++ gnu-efi-3.0-fix/gnuefi/elf_ia32_efi.lds	2009-07-16 19:15:14.658001000 -0400
@@ -13,9 +13,15 @@
    *(.text.*)
    *(.gnu.linkonce.t.*)
   }
-  .reloc :
+  . = ALIGN(4096);
+  .sdata :
   {
-   *(.reloc)
+   *(.got.plt)
+   *(.got)
+   *(.srodata)
+   *(.sdata)
+   *(.sbss)
+   *(.scommon)
   }
   . = ALIGN(4096);
   .data :
@@ -50,6 +56,11 @@
     *(.data.rel*)
   }
   . = ALIGN(4096);
+  .reloc :		/* This is the PECOFF .reloc section! */
+  {
+    *(.reloc)
+  }
+  . = ALIGN(4096);
   .dynsym   : { *(.dynsym) }
   . = ALIGN(4096);
   .dynstr   : { *(.dynstr) }
@@ -58,5 +69,8 @@
   {
     *(.rel.reloc)
     *(.eh_frame)
+    *(.note.GNU-stack)
   }
+  .comment 0 : { *(.comment) }
 }
+
----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[email protected] with a subject of: unsubscribe t2

Reply via email to