Changeset View
Standalone View
sys/conf/Makefile.arm
Show First 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | |||||
# clang < 3.5.0 requires us to tell it to emit assembly with unwind information | # clang < 3.5.0 requires us to tell it to emit assembly with unwind information | ||||
CFLAGS += -mllvm -arm-enable-ehabi | CFLAGS += -mllvm -arm-enable-ehabi | ||||
.endif | .endif | ||||
.endif | .endif | ||||
# hack because genassym.c includes sys/bus.h which includes these. | # hack because genassym.c includes sys/bus.h which includes these. | ||||
genassym.o: bus_if.h device_if.h | genassym.o: bus_if.h device_if.h | ||||
SYSTEM_LD_ = ${LD} -Bdynamic -T ldscript.$M.noheader ${_LDFLAGS} \ | SYSTEM_LD_ = ${LD} -m ${LD_EMULATION} -Bdynamic -T ldscript.$M.noheader \ | ||||
-warn-common -export-dynamic -dynamic-linker /red/herring -o \ | ${_LDFLAGS} --no-warn-mismatch --warn-common --export-dynamic \ | ||||
${FULLKERNEL}.noheader -X ${SYSTEM_OBJS} vers.o | --dynamic-linker /red/herring \ | ||||
-o ${FULLKERNEL}.noheader -X ${SYSTEM_OBJS} vers.o | |||||
SYSTEM_LD_TAIL +=;sed s/" + SIZEOF_HEADERS"// ldscript.$M\ | SYSTEM_LD_TAIL +=;sed s/" + SIZEOF_HEADERS"// ldscript.$M\ | ||||
imp: This may be a good change, but it's unrelated, as do all the LD_EMULATION changes... While they… | |||||
Not Done Inline ActionsMy intention is to commit LD_EMULATION as a separate commit, but I think for review it provides better context to review the two commits together. This is the same idea as the explicit -mabi for the compiler driver. In the case of devel/mips-binutils, mips-freebsd-ld assumes o32 and requires explicit -m for n32 or n64. devel/mips64-binutils defaults to n64, but we don't have a 'mipsn32-binutils' or 'mipsn32-gcc'. Also, with these changes, you can just use mips-gcc and mips-binutils for all 3 ABIs now (so arguably we could remove the mips64-* toolchain packages). As far as the duplication of Makefile.arm vs kern.pre.mk, that doesn't seem easy to untangle. OTOH, I noticed that Makefile.arm is missing some of the recent changes to SYSTEM_LD from kern.pre.mk (which I might also commit separate from LD_EMULATION). jhb: My intention is to commit LD_EMULATION as a separate commit, but I think for review it provides… | |||||
>ldscript.$M.noheader; \ | >ldscript.$M.noheader; \ | ||||
${SYSTEM_LD_}; \ | ${SYSTEM_LD_}; \ | ||||
${OBJCOPY} -S -O binary ${FULLKERNEL}.noheader \ | ${OBJCOPY} -S -O binary ${FULLKERNEL}.noheader \ | ||||
${KERNEL_KO}.bin; \ | ${KERNEL_KO}.bin; \ | ||||
rm ${FULLKERNEL}.noheader | rm ${FULLKERNEL}.noheader | ||||
FILES_CPU_FUNC = \ | FILES_CPU_FUNC = \ | ||||
$S/$M/$M/cpufunc_asm_arm9.S \ | $S/$M/$M/cpufunc_asm_arm9.S \ | ||||
▲ Show 20 Lines • Show All 99 Lines • Show Last 20 Lines |
This may be a good change, but it's unrelated, as do all the LD_EMULATION changes... While they are similar to the MIPS stuff, perhaps they should be submitted separately.
But on the other hand, maybe it's time to take a look at the duplication between the Makefiles and see if there might be a way to do it better?