From bcddbcbea47660e03d2a48d6483665286ed1963e Mon Sep 17 00:00:00 2001 From: Minecon724 Date: Sat, 19 Oct 2024 17:16:36 +0200 Subject: [PATCH] asd --- .forgejo/workflows/build.yml | 1 + Makefile | 36 ++++++++++++++++++++++++++++++++---- src/cpu.c | 1 - 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 5968711..284c3f5 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -13,6 +13,7 @@ jobs: run: apt install -y libelf-dev - name: Clone repository run: git clone https://git.m724.eu/Minecon724/criscv.git . + - run: make libinfo - name: Package for x86_64 run: LD_LIBRARY_PATH=/usr/include CC=x86_64-linux-gnu-gcc PROGRAM_NAME=crisc-x86_64 make - name: Package for aarch64 diff --git a/Makefile b/Makefile index 8ea4801..7f6c2fb 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,20 @@ # Compiler to use CC ?= gcc -CFLAGS = -Wall -Wextra -std=gnu23 -I include -lelf +# Add debugging output +$(info CC is set to $(CC)) + +# Separate CFLAGS and LDFLAGS +CFLAGS = -Wall -Wextra -std=gnu23 -I include +LDFLAGS = -lelf + +# Add potential additional library path (update this path if needed) +LIBRARY_PATH := /usr/lib/x86_64-linux-gnu +LDFLAGS += -L$(LIBRARY_PATH) + +# Add debugging output +$(info CFLAGS is set to $(CFLAGS)) +$(info LDFLAGS is set to $(LDFLAGS)) # Directory for build outputs BUILD_DIR := build @@ -18,7 +31,6 @@ OBJS := $(patsubst src/%.c,$(BUILD_DIR)/obj/%.o,$(SRCS)) # Name of the final executable TARGET := $(BUILD_DIR)/$(PROGRAM_NAME) - # Default target: build the executable all: CFLAGS += -O3 all: $(TARGET) @@ -32,12 +44,18 @@ debug: $(TARGET) # Rule to link object files into the final executable $(TARGET): $(OBJS) | $(BUILD_DIR) - $(CC) $(CFLAGS) $^ -o $@ + @echo "Linking $(TARGET)" + @echo "Command: $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)" + $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) + @echo "Linking complete" du -b $(TARGET) # Size of the executable in bytes # Rule to compile source files into object files $(BUILD_DIR)/obj/%.o: src/%.c | $(BUILD_DIR)/obj + @echo "Compiling $<" + @echo "Command: $(CC) $(CFLAGS) -c $< -o $@" $(CC) $(CFLAGS) -c $< -o $@ + @echo "Compilation complete" # Create build directories if they don't exist $(BUILD_DIR) $(BUILD_DIR)/obj: @@ -45,4 +63,14 @@ $(BUILD_DIR) $(BUILD_DIR)/obj: # Clean target: remove the build directory clean: - rm -rf $(BUILD_DIR) \ No newline at end of file + rm -rf $(BUILD_DIR) + +# Add a new target to print library information +.PHONY: libinfo +libinfo: + @echo "Searching for libelf..." + @find /usr -name "libelf.so*" 2>/dev/null || echo "libelf not found in /usr" + @echo "Library search path:" + @echo $(LD_LIBRARY_PATH) + @echo "Compiler search path:" + $(CC) -print-search-dirs \ No newline at end of file diff --git a/src/cpu.c b/src/cpu.c index 206fd13..6903aeb 100644 --- a/src/cpu.c +++ b/src/cpu.c @@ -1,7 +1,6 @@ #include #include -#include "cpu.h" // for structs #include "address_space.h" #include "instruction_executor.h"