Commit a2cfc45f authored by Timothy E Baldwin's avatar Timothy E Baldwin
Browse files

Only relink module if required, reduce a lot of unneeded linking.

The module is only relinked if either its component
files have changed or the address is changed.

!NoTag
parent 57282c86
...@@ -485,6 +485,7 @@ clean_all: ...@@ -485,6 +485,7 @@ clean_all:
${RM} s.abssym ${RM} s.abssym
${RM} s.c_abssym ${RM} s.c_abssym
${RM} s.a_abssym ${RM} s.a_abssym
${RM} rom_link_Entries
${XWIPE} lib.* ${WFLAGS} ${XWIPE} lib.* ${WFLAGS}
@echo ${COMPONENT}: cleaned @echo ${COMPONENT}: cleaned
...@@ -543,14 +544,25 @@ aof.CLib: ${CLIB_ROM_OBJS} ...@@ -543,14 +544,25 @@ aof.CLib: ${CLIB_ROM_OBJS}
# #
# Final link for the ROM Image {using given base address} # Final link for the ROM Image {using given base address}
# #
rom_link_Entries:
include $(wildcard linked.${TARGET}_address)
ifneq (${ADDRESS},${OLD_ADDRESS})
FORCEROMLINK = FORCE
endif
FORCE: ; ${NOP}
rom_link_Entries: rlib.swi kernel.s.k_entries kernel.s.k_entries2 clib.s.cl_entries clib.s.cl_entry2
${XTENT} syms.C_Entries kernel.s.k_entries kernel.s.k_entries2 clib.s.cl_entries clib.s.cl_entry2 ${XTENT} syms.C_Entries kernel.s.k_entries kernel.s.k_entries2 clib.s.cl_entries clib.s.cl_entry2
print rlib.swi { >> syms.C_Entries } print rlib.swi { >> syms.C_Entries }
${XTENT} syms.A_Entries1 kernel.s.k_entries clib.s.cl_entries ${XTENT} syms.A_Entries1 kernel.s.k_entries clib.s.cl_entries
egrep -v "^(0x00000000 . )?_swix?$" < syms.A_Entries1 > syms.A_Entries egrep -v "^(0x00000000 . )?_swix?$" < syms.A_Entries1 > syms.A_Entries
${RM} syms.A_Entries1 ${RM} syms.A_Entries1
${TOUCH} rom_link_Entries
rom_link_RISC_OSLib: ${ROM_OBJS} rom_link_Entries linked.RISC_OSLib: ${ROM_OBJS} rom_link_Entries rlib.s.rl_entries ${FORCEROMLINK}
${RM} $@
${XTENT} syms.Entries kernel.s.k_entries kernel.s.k_entries2 clib.s.cl_entries clib.s.cl_entry2 rlib.s.rl_entries ${XTENT} syms.Entries kernel.s.k_entries kernel.s.k_entries2 clib.s.cl_entries clib.s.cl_entry2 rlib.s.rl_entries
print rlib.swi { >> syms.Entries } print rlib.swi { >> syms.Entries }
${LD} ${LDFLAGS} -o linked.RISC_OSLib ${ROM_OBJS} \ ${LD} ${LDFLAGS} -o linked.RISC_OSLib ${ROM_OBJS} \
...@@ -560,8 +572,10 @@ rom_link_RISC_OSLib: ${ROM_OBJS} rom_link_Entries ...@@ -560,8 +572,10 @@ rom_link_RISC_OSLib: ${ROM_OBJS} rom_link_Entries
-symbols syms.${TARGET} \ -symbols syms.${TARGET} \
-bin -base ${ADDRESS} \ -bin -base ${ADDRESS} \
-map > map.${TARGET} -map > map.${TARGET}
Echo OLD_ADDRESS=${ADDRESS} { > linked.RISC_OSLib_address }
rom_link_CLib: ${CLIB_ROM_OBJS} rom_link_Entries linked.CLib: ${CLIB_ROM_OBJS} rom_link_Entries ${FORCEROMLINK}
${RM} $@
${XTENT} syms.Entries kernel.s.k_entries kernel.s.k_entries2 clib.s.cl_entries clib.s.cl_entry2 ${XTENT} syms.Entries kernel.s.k_entries kernel.s.k_entries2 clib.s.cl_entries clib.s.cl_entry2
print rlib.swi { >> syms.Entries } print rlib.swi { >> syms.Entries }
${LD} ${LDFLAGS} -o linked.CLib ${CLIB_ROM_OBJS} \ ${LD} ${LDFLAGS} -o linked.CLib ${CLIB_ROM_OBJS} \
...@@ -571,8 +585,9 @@ rom_link_CLib: ${CLIB_ROM_OBJS} rom_link_Entries ...@@ -571,8 +585,9 @@ rom_link_CLib: ${CLIB_ROM_OBJS} rom_link_Entries
-symbols syms.${TARGET} \ -symbols syms.${TARGET} \
-bin -base ${ADDRESS} \ -bin -base ${ADDRESS} \
-map > map.${TARGET} -map > map.${TARGET}
Echo OLD_ADDRESS=${ADDRESS} { > linked.CLib_address }
rom_link: rom_link_${TARGET} rom_link: linked.${TARGET}
${CP} linked.${TARGET} ${LINKDIR}.${TARGET} ${CPFLAGS} ${CP} linked.${TARGET} ${LINKDIR}.${TARGET} ${CPFLAGS}
${CP} syms.${TARGET} ${LINKDIR}.${TARGET}_sym ${CPFLAGS} ${CP} syms.${TARGET} ${LINKDIR}.${TARGET}_sym ${CPFLAGS}
| |
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment