Hi Mark, Am 03.03.2014 19:08, schrieb Mark Cave-Ayland: > On 02/03/14 20:41, Andreas Färber wrote: > >> [1] Using `make CROSS_COMPILE=powerpc-elf-` works for GCC 4.8.2 and >> binutils 2.24; I did not find a solution for my identically versioned >> CROSS_COMPILE=powerpc-eabi- setup (that I had been successfully using >> for OpenBIOS), lacking an __eabi symbol on final ld. > > Hi Andreas, > > This is great news! FWIW I've just tried building a clone of the > repository at git://git.qemu-project.org/openhackware.git and it looks > good until the final link stage: > > > powerpc-elf-ld -m elf32ppc -O2 -g -nostdlib -T src/main.ld -o > .objs/main.out .objs/main.o .objs/bootinfos.o .objs/bloc.o .objs/pci.o > .objs/of.o .objs/start.o .objs/nvram.o .objs/vga.o .objs/mm.o > .objs/char.o .objs/malloc.o .objs/errno.o .objs/_vprintf.o > .objs/printf.o .objs/sprintf.o .objs/snprintf.o .objs/vprintf.o > .objs/vsprintf.o .objs/vsnprintf.o .objs/dprintf.o .objs/vdprintf.o > .objs/memcpy.o .objs/memccpy.o .objs/mempcpy.o .objs/memmove.o > .objs/memcmove.o .objs/mempmove.o .objs/memset.o .objs/memcmp.o > .objs/memchr.o .objs/rawmemchr.o .objs/memrchr.o .objs/memmem.o > .objs/strcpy.o .objs/strdup.o .objs/strndup.o .objs/stpcpy.o > .objs/stpncpy.o .objs/strcat.o .objs/strncat.o .objs/strcmp.o > .objs/strcasecmp.o .objs/strncmp.o .objs/strncasecmp.o .objs/strchr.o > .objs/strchrnul.o .objs/strrchr.o .objs/basename.o .objs/dirname.o > .objs/strlen.o .objs/strnlen.o .objs/exec_core.o .objs/exec_elf.o > .objs/exec_xcoff.o .objs/exec_macho.o .objs/exec_chrp.o > .objs/exec_prep.o .objs/exec_pef.o .objs/fs_core.o .objs/fs_raw.o > .objs/fs_ext2.o .objs/fs_isofs.o .objs/fs_hfs.o .objs/part_core.o > .objs/part_apple.o .objs/part_isofs.o .objs/part_prep.o > .objs/dev_char_pckbd.o .objs/dev_char_kbdadb.o .objs/dev_char_kbd.o > 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: section .rodata.str1.4 [00000000058006d8 -> > 0000000005804cdb] overlaps section .text [0000000005800400 -> > 0000000005812e23] > powerpc-elf-ld: region start overflowed by 18668 bytes > make: *** [.objs/main.out] Error 1 > > build@kentang:~/src/ohw/openhackware$ powerpc-elf-gcc -v > Using built-in specs. > COLLECT_GCC=powerpc-elf-gcc > COLLECT_LTO_WRAPPER=/home/build/ppc-cross/libexec/gcc/powerpc-elf/4.8.2/lto-wrapper > > Target: powerpc-elf > Configured with: ../gcc-4.8.2/configure --prefix=/home/build/ppc-cross > --enable-languages=c --target=powerpc-elf --disable-libssp > Thread model: single > gcc version 4.8.2 (GCC) > build@kentang:~/src/ohw/openhackware$ > > > 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