From fbedff5e909777a1d646947bd4f9beca6ddf7024 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Fri, 20 Aug 2010 18:11:26 -0500 Subject: Add linker in preparation for modules. --- config.mk | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'config.mk') diff --git a/config.mk b/config.mk index d74cd051f..5d2b2c028 100644 --- a/config.mk +++ b/config.mk @@ -7,9 +7,10 @@ CFLAGS = ${COMMONFLAGS} -mcpu=power7 -nostdinc -g -msoft-float -mno-altivec \ -Wall ASMFLAGS = ${COMMONFLAGS} -mcpu=power7 CXXFLAGS = ${CFLAGS} -nostdinc++ -fno-rtti -fno-exceptions -Wall -LDFLAGS = -static --sort-common -Map $@.map ${COMMONFLAGS} +LDFLAGS = --nostdlib --sort-common ${COMMONFLAGS} +LDMAPFLAGS = -Map $@.map -INCDIR = ${OBJDIR}/../src/include/ +INCDIR = ${ROOTPATH}/src/include/ ${OBJDIR}/%.o : %.C ${CXX} -c ${CXXFLAGS} $< -o $@ -I ${INCDIR} @@ -20,11 +21,16 @@ ${OBJDIR}/%.o : %.c ${OBJDIR}/%.o : %.S ${CC} -c ${ASMFLAGS} $< -o $@ -Wa,-I${INCDIR} -${IMGDIR}/%.elf: kernel.ld ${OBJDIR}/*.o - ${LD} ${LDFLAGS} ${OBJDIR}/*.o -T kernel.ld -o $@ +${OBJDIR}/%.so : ${OBJECTS} ${ROOTPATH}/src/module.ld + ${LD} -shared -z now --gc-sections ${LDFLAGS} $< \ + -T ${ROOTPATH}/src/module.ld -o $@ -${IMGDIR}/%.bin: kernel.ld ${OBJDIR}/*.o - ${LD} ${LDFLAGS} ${OBJDIR}/*.o --oformat=binary -T kernel.ld -o $@ +${IMGDIR}/%.elf: kernel.ld ${OBJDIR}/*.o ${ROOTPATH}/src/kernel.ld + ${LD} -static ${LDFLAGS} ${LDMAPFLAGS} ${OBJDIR}/*.o \ + -T ${ROOTPATH}/src/kernel.ld -o $@ + +${IMGDIR}/%.bin: ${IMGDIR}/%.elf $(wildcard ${IMGDIR}/*.so) + ${ROOTPATH}/src/bld/linker $@ $^ %.d: cd ${basename $@} && ${MAKE} -- cgit v1.2.1