Skip to content

Commit 26a8384

Browse files
committed
resolved the "undefined reference" errors by fixing a critical object file naming collision in the build system.
1 parent 502f131 commit 26a8384

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

Makefile

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ AS := nasm
33
LD := i686-linux-gnu-gcc
44
OBJCOPY := i686-linux-gnu-objcopy
55

6-
CFLAGS := -ffreestanding -O2 -Wall -Wextra -m32 -fno-pie -fno-stack-protector -nostdlib -nostdinc -Iinclude -msse -msse2
6+
CFLAGS := -ffreestanding -O2 -Wall -Wextra -m32 -fno-pie -fno-PIC -fno-stack-protector -nostdlib -nostdinc -Iinclude -msse -msse2
77
ASFLAGS := -f elf32
8-
LDFLAGS := -T linker.ld -nostdlib -m32 -Wl,-z,noexecstack
8+
LDFLAGS := -T linker.ld -nostdlib -m32 -no-pie -Wl,-z,noexecstack
99

1010
SRC_DIR := src
1111
BUILD_DIR := build
@@ -15,10 +15,10 @@ MODEL_OBJ := $(BUILD_DIR)/model.o
1515
ASM_SRCS := $(shell find $(SRC_DIR) -name "*.s")
1616
C_SRCS := $(filter-out $(SRC_DIR)/drivers/vga.c, $(shell find $(SRC_DIR) -name "*.c"))
1717

18-
ASM_OBJS := $(patsubst $(SRC_DIR)/%.s,$(BUILD_DIR)/%.o,$(ASM_SRCS))
19-
C_OBJS := $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(C_SRCS))
18+
ASM_OBJS := $(patsubst $(SRC_DIR)/%.s,$(BUILD_DIR)/%.s.o,$(ASM_SRCS))
19+
C_OBJS := $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.c.o,$(C_SRCS))
2020

21-
BOOT_OBJ := $(BUILD_DIR)/boot.o
21+
BOOT_OBJ := $(BUILD_DIR)/boot.s.o
2222
OTHER_OBJS := $(sort $(filter-out $(BOOT_OBJ),$(ASM_OBJS) $(C_OBJS)))
2323
OBJS := $(BOOT_OBJ) $(OTHER_OBJS)
2424

@@ -31,11 +31,11 @@ all: $(BUILD_DIR) kernel.bin
3131
$(BUILD_DIR):
3232
mkdir -p $(BUILD_DIR)
3333

34-
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.s
34+
$(BUILD_DIR)/%.s.o: $(SRC_DIR)/%.s
3535
mkdir -p $(dir $@)
3636
$(AS) $(ASFLAGS) $< -o $@
3737

38-
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
38+
$(BUILD_DIR)/%.c.o: $(SRC_DIR)/%.c
3939
mkdir -p $(dir $@)
4040
$(CC) $(CFLAGS) -c $< -o $@
4141

0 commit comments

Comments
 (0)