diff options
author | Richard Braun <rbraun@sceen.net> | 2018-01-28 16:27:27 +0100 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2018-02-04 20:37:04 +0100 |
commit | ef888871e0d2e03e59652c22e2431f571067184c (patch) | |
tree | eb163312195469f2d068149931c63865325ad37e | |
parent | b174f7fb7f936ca0365a851d3fd486e6baba357e (diff) |
Preprocess the linker script
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | src/kernel.lds.S (renamed from src/kernel.lds) | 0 |
3 files changed, 9 insertions, 6 deletions
@@ -1,4 +1,5 @@ .* *.o +*.lds x1 cscope.out @@ -159,9 +159,6 @@ X1_LDFLAGS += -nostdlib # disabling it makes the linker script simpler. X1_LDFLAGS += -Xlinker --build-id=none -# Pass the linker script path to the linker. -X1_LDFLAGS += -Xlinker -T src/kernel.lds - # Append user-provided linker flags, if any. X1_LDFLAGS += $(LDFLAGS) @@ -173,6 +170,8 @@ LIBS = -lgcc BINARY = x1 +LDS = src/kernel.lds + SOURCES = \ src/boot.c \ src/boot_asm.S \ @@ -199,8 +198,8 @@ SOURCES += \ OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(SOURCES))) -$(BINARY): $(OBJECTS) - $(CC) -o $@ $(X1_LDFLAGS) $^ $(LIBS) +$(BINARY): $(LDS) $(OBJECTS) + $(CC) -o $@ $(X1_LDFLAGS) -Xlinker -T $(LDS) $(OBJECTS) $(LIBS) %.o: %.c $(CC) $(X1_CPPFLAGS) $(X1_CFLAGS) -c -o $@ $< @@ -208,6 +207,9 @@ $(BINARY): $(OBJECTS) %.o: %.S $(CC) $(X1_CPPFLAGS) $(X1_CFLAGS) -c -o $@ $< +%.lds: %.lds.S + $(CC) -E -P $(X1_CPPFLAGS) -o $@ $< + clean: rm -f $(BINARY) $(OBJECTS) @@ -223,4 +225,4 @@ clean: # technique. # # [1] https://git.sceen.net/rbraun/x15.git/ -.PHONY: clean $(SOURCES) +.PHONY: clean $(SOURCES) $(LDS).S diff --git a/src/kernel.lds b/src/kernel.lds.S index 3872a87..3872a87 100644 --- a/src/kernel.lds +++ b/src/kernel.lds.S |