rom_link_v 1.45 KB
Newer Older
Stewart Brodie's avatar
Stewart Brodie committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
#
# BBE Makefile fragment for rom_link for the C library
#
XTENT   = perl build:xtentries >
LD      = link
LDFLAGS = -linkversion 519
ABSSYM    = RISC_OSLib:o.abssym
C_ABSSYM  = RISC_OSLib:o.c_abssym
A_ABSSYM  = RISC_OSLib:o.a_abssym

#
# Final link for the ROM Image {using given base address}
#
rom_link_Entries:
        ${XTENT} syms.C_Entries kernel.s.k_entries clib.s.cl_entries
        print rlib.swi { >> syms.C_Entries }
        | C_Entries *currently* only adds _swi/_swix to RO2 symbols.
        egrep -v "^(0x00000000 . )?_swix?$" < syms.C_Entries > syms.A_Entries

rom_link_RISC_OSLib:
        ${XTENT} syms.Entries kernel.s.k_entries clib.s.cl_entries rlib.s.rl_entries
        print rlib.swi { >> syms.Entries }

rom_link_CLib:
        ${XTENT} syms.Entries kernel.s.k_entries clib.s.cl_entries
        print rlib.swi { >> syms.Entries }

rom_link: rom_link_${TARGET} rom_link_Entries
        ${LD} ${LDFLAGS} -o linked.${TARGET} aof.${TARGET} \
              -symdefs syms.C_Entries \
              -symdefs syms.A_Entries \
              -symdefs syms.Entries \
              -symbols syms.${TARGET} \
              -bin -base ${ADDRESS} \
              -map > map.${TARGET}
        |
        ${CP} linked.${TARGET} ${LINKDIR}.${TARGET} ${CPFLAGS}
        |
        ${CP} syms.Entries ${ABSSYM} ${CPFLAGS}
        ${CP} syms.C_Entries ${C_ABSSYM} ${CPFLAGS}
        ${CP} syms.A_Entries ${A_ABSSYM} ${CPFLAGS}
        |
        @echo ${COMPONENT}: rom_link complete