On 03/03/14 18:31, Andreas Färber wrote:
Am I missing something from the build in order for the final link to
complete correctly?
Hm, repository looks okay, and I didn't run into this yet. Possibly you
are using different binutils?
Presumably you did try make clean CROSS_COMPILE=... :)
I chose not to apply one hunk from Rene Rebe since not needed here.
Maybe the above .rodata.str1.4 would end up in .rodata this way?
Make it link at al.
- Rene Rebe<r...@exactcode.de>
--- OpenHackWare-release-0.4/src/main.ld 2005-03-31
09:23:33.000000000 +0200
+++ OpenHackWare-release-0.4-hacked/src/main.ld 2008-05-06
11:23:29.000000000 +0200
@@ -49,7 +49,7 @@
_sdata_end = . ;
. = ALIGN(4) ;
_ro_start = . ;
- .rodata : { *(.rodata) }> bios
+ .rodata : { *(.rodata*) }> bios
_ro_end = . ;
. = ALIGN(4) ;
_RTAS_start = .;
Cheers,
Andreas
Hi Andreas,
That patch definitely helps as it reduces the error to just:
powerpc-elf-ld: .objs/main.out section .text.startup will not fit in
region start
powerpc-elf-ld: section .text [0000000005800400 -> 0000000005812e23]
overlaps section .text.startup [0000000005800054 -> 00000000058006d7]
powerpc-elf-ld: region start overflowed by 728 bytes
So if I then apply the same trick to the .text section (patch attached)
then I get a successful link and an output image. The output image does
execute under QEMU, although for all of the CD images I have it reports
"ERROR: Found no boot partition!". Do you have pointers to any ISOs that
can boot from the resulting image?
FWIW my cross-compile setup is based upon binutils 2.19.
ATB,
Mark.
diff --git a/Makefile b/Makefile
index c0213b2..c4bf5ea 100644
--- a/Makefile
+++ b/Makefile
@@ -21,7 +21,7 @@
#DEBUG=1
-CROSS_COMPILE?=powerpc-linux-
+CROSS_COMPILE?=powerpc-elf-
CC:= $(CROSS_COMPILE)gcc -m32
LD:= $(CROSS_COMPILE)ld -m elf32ppc
OBJCOPY:= $(CROSS_COMPILE)objcopy
diff --git a/src/main.ld b/src/main.ld
index f689f72..7a4f9aa 100644
--- a/src/main.ld
+++ b/src/main.ld
@@ -30,7 +30,7 @@ SECTIONS
{
.start : { *(.start) } > start
. = ALIGN(4) ;
- .text : { *(.text) } > bios
+ .text : { *(.text*) } > bios
. = ALIGN(4) ;
.OpenFirmware : { *(.OpenFirmware) } > bios
. = ALIGN(4) ;
@@ -49,7 +49,7 @@ SECTIONS
_sdata_end = . ;
. = ALIGN(4) ;
_ro_start = . ;
- .rodata : { *(.rodata) } > bios
+ .rodata : { *(.rodata*) } > bios
_ro_end = . ;
. = ALIGN(4) ;
_RTAS_start = .;