Hi,
thanks for the notes and the patch.
Committed revision 33649.
There are also pending updates for booth gnu-efi and elilo, but as
they did neither not yet just build on our continuous integration test
server they are not yet in trunk. I try to take a look on the updates
soon, likewise.
Have fun,
René
On 17.07.2009, at 01:57, Jan Rovins wrote:
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
--
René Rebe - ExactCODE GmbH - Europe, Germany, Berlin
http://exactcode.de | http://t2-project.org | http://rene.rebe.name
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[email protected] with a subject of: unsubscribe t2