summaryrefslogtreecommitdiffstats
path: root/config.mk
diff options
context:
space:
mode:
Diffstat (limited to 'config.mk')
-rw-r--r--config.mk18
1 files changed, 12 insertions, 6 deletions
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}
OpenPOWER on IntegriCloud