Use compiler driver to link BERI boot loaders
Do not hardcode elf64-tradbigmips as output format in BERI linker scrips. Unfortunately, in-tree toolchain and external newer versions of binutils mean two different things under that. When creating elf binaries using external toolchain, gcc uses elf64-tradbigmips-freebsd and so linker script file has to match in order for ld to be able to create the final loader binary. Rather than trying to guess, remove hardcoded output format directive from the linker directive files and use CC to invoke the linker instead. Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D9050
This commit is contained in:
parent
2833497cae
commit
f20a27e327
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=311458
@ -71,7 +71,7 @@ LDFLAGS= -nostdlib \
|
||||
CFLAGS+= -I${.CURDIR}/../common
|
||||
|
||||
flashboot.elf: relocate.o start.o boot2.o altera_jtag_uart.o cfi.o sdcard.o
|
||||
${LD} ${_LDFLAGS} -T ${.CURDIR}/flashboot.ldscript -o ${.TARGET} \
|
||||
${CC} ${_LDFLAGS} -T ${.CURDIR}/flashboot.ldscript -o ${.TARGET} \
|
||||
${.ALLSRC} ${LIBSTAND}
|
||||
flashboot: flashboot.elf
|
||||
${OBJCOPY} -S -O binary ${.TARGET}.elf ${.TARGET}
|
||||
@ -79,7 +79,7 @@ flashboot.md5: flashboot
|
||||
md5 flashboot > flashboot.md5
|
||||
|
||||
jtagboot: start.o boot2.o altera_jtag_uart.o cfi.o sdcard.o
|
||||
${LD} ${_LDFLAGS} -T ${.CURDIR}/jtagboot.ldscript -o ${.TARGET} \
|
||||
${CC} ${_LDFLAGS} -T ${.CURDIR}/jtagboot.ldscript -o ${.TARGET} \
|
||||
${.ALLSRC} ${LIBSTAND}
|
||||
jtagboot.md5: jtagboot
|
||||
md5 jtagboot > jtagboot.md5
|
||||
|
@ -73,5 +73,4 @@ __cheri_sdcard_vaddr__ = __mips64_xkphys_uncached__ + __cheri_sdcard_base__;
|
||||
__kernel_base__ = 0x100000;
|
||||
__kernel_vaddr__ = __mips64_xkphys_cached__ + __kernel_base__;
|
||||
|
||||
OUTPUT_FORMAT("elf64-tradbigmips");
|
||||
OUTPUT_ARCH(mips)
|
||||
|
@ -44,7 +44,6 @@ __loader_base_vaddr__ = __mips64_xkphys_cached__ + __loader_base__;
|
||||
__loader_end__ = 0x100000;
|
||||
__loader_end_vaddr__ = __mips64_xkphys_cached__ + __loader_end__;
|
||||
|
||||
OUTPUT_FORMAT("elf64-tradbigmips");
|
||||
OUTPUT_ARCH(mips)
|
||||
ENTRY(start)
|
||||
SECTIONS
|
||||
|
Loading…
Reference in New Issue
Block a user