diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2020-07-22 11:31:40 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2020-07-24 11:01:47 -0400 |
commit | 699a4e5d6919cc8eae5342443025ceb6909dc276 (patch) | |
tree | ca68ff30f3fd220c61290e9ac8d9e93afed2eae6 /Makefile | |
parent | 6ada2285d9918859699c92e09540e023e0a16054 (diff) | |
download | seabios-699a4e5d6919cc8eae5342443025ceb6909dc276.tar.gz |
ldnoexec: Add script to remove ET_EXEC flag from intermediate build objects
Add a script to remove the ET_EXEC flag from the 16bit and "32bit
segmented" intermediate objects. This avoids build failures with some
linkers that will not allow linking these objects again.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -127,9 +127,10 @@ $(Q)printf '$(foreach i,$2,#include "$i"\n)' > $3.tmp.c $(Q)$(CC) -I. $1 $(CFLAGSWHOLE) -c $3.tmp.c -o $3 endef -%.strip.o: %.o +%.noexec.o: %.o @echo " Stripping $@" - $(Q)$(STRIP) $< -o $@ + $(Q)$(STRIP) $< -o $<.strip.o + $(Q)$(PYTHON) ./scripts/ldnoexec.py $<.strip.o $@ $(OUT)%.s: %.c @echo " Compiling to assembler $@" @@ -185,9 +186,9 @@ $(OUT)rom32seg.o: $(OUT)code32seg.o $(OUT)romlayout32seg.lds @echo " Linking $@" $(Q)$(LD) -T $(OUT)romlayout32seg.lds $< -o $@ -$(OUT)rom.o: $(OUT)rom16.strip.o $(OUT)rom32seg.strip.o $(OUT)code32flat.o $(OUT)romlayout32flat.lds +$(OUT)rom.o: $(OUT)rom16.noexec.o $(OUT)rom32seg.noexec.o $(OUT)code32flat.o $(OUT)romlayout32flat.lds @echo " Linking $@" - $(Q)$(LD) -N -T $(OUT)romlayout32flat.lds $(OUT)rom16.strip.o $(OUT)rom32seg.strip.o $(OUT)code32flat.o -o $@ + $(Q)$(LD) -N -T $(OUT)romlayout32flat.lds $(OUT)rom16.noexec.o $(OUT)rom32seg.noexec.o $(OUT)code32flat.o -o $@ $(OUT)bios.bin.prep: $(OUT)rom.o scripts/checkrom.py @echo " Prepping $@" |