Finally fix userspace constructors

This commit is contained in:
Baptiste Wicht 2016-08-20 22:34:47 +02:00
parent 141884a79c
commit 621cbb0181
2 changed files with 7 additions and 12 deletions

5
cpp.mk
View File

@ -40,7 +40,7 @@ LIB_FLAGS=$(COMMON_CPP_FLAGS) $(FLAGS_64) $(WARNING_FLAGS) -mcmodel=small -fPIC
LIB_LINK_FLAGS=$(COMMON_CPP_FLAGS) $(FLAGS_64) $(WARNING_FLAGS) -mcmodel=small -fPIC -Wl,-gc-sections
PROGRAM_FLAGS=$(COMMON_CPP_FLAGS) $(FLAGS_64) $(WARNING_FLAGS) -I../../tlib/include/ -I../../printf/include/ -static -L../../tlib/debug/ -ltlib -mcmodel=small -fPIC
PROGRAM_LINK_FLAGS=$(COMMON_CPP_FLAGS) $(FLAGS_64) $(WARNING_FLAGS) $(COMMON_LINK_FLAGS) -static -L../../tlib/debug/ -ltlib -mcmodel=small -fPIC -z max-page-size=0x1000 -T ../linker.ld -Wl,-gc-sections
PROGRAM_LINK_FLAGS=$(COMMON_CPP_FLAGS) $(FLAGS_64) $(WARNING_FLAGS) $(COMMON_LINK_FLAGS) -static -L../../tlib/debug/ -mcmodel=small -fPIC -z max-page-size=0x1000 -T ../linker.ld
NO_COLOR=\x1b[0m
MODE_COLOR=\x1b[31;01m
@ -123,8 +123,7 @@ define program_link_executable
debug/$(1): $(O_FILES)
@ mkdir -p debug/
@ echo -e "$(MODE_COLOR)[debug]$(NO_COLOR) Link (program) $(FILE_COLOR)$$@$(NO_COLOR)"
@ $(CXX) -o debug/$(1) $(O_FILES) $(PROGRAM_LINK_FLAGS)
@ $(CXX) -o debug/$(1) $(PROGRAM_LINK_FLAGS) ../../tlib/debug/src/crti.s.o $$(shell $(CXX) -print-file-name=crtbegin.o) $(O_FILES) -ltlib $$(shell $(CXX) -print-file-name=crtend.o) ../../tlib/debug/src/crtn.s.o
link: debug/$(1)
endef

View File

@ -2,22 +2,18 @@ default: debug/libtlib.a
include ../cpp.mk
# Ask GCC for the crtbegin and crtend files
CRTBEGIN_OBJ:=$(shell $(CXX) $(LIB_FLAGS) -print-file-name=crtbegin.o)
CRTEND_OBJ:=$(shell $(CXX) $(LIB_FLAGS) -print-file-name=crtend.o)
# The files provided directly by the compiler
SPECIAL_O_FILES=$(CRTBEGIN_OBJ) $(CRTEND_OBJ)
$(eval $(call tlib_compile_cpp_folder,src))
$(eval $(call compile_assembly_folder,src))
# Compile the assembly code
debug/libtlib.a: $(SPECIAL_O_FILES) $(O_FILES)
O_FILES := $(filter-out debug/src/crti.s.o,$(O_FILES))
O_FILES := $(filter-out debug/src/crtn.s.o,$(O_FILES))
debug/libtlib.a: debug/src/crti.s.o debug/src/crtn.s.o $(O_FILES)
@ mkdir -p debug/
@ echo -e "$(MODE_COLOR)[debug]$(NO_COLOR) Link (tlib) $(FILE_COLOR)$@$(NO_COLOR)"
@ ${AR} rcs debug/libtlib.a $(SPECIAL_O_FILES) $(O_FILES)
@ ${AR} rcs debug/libtlib.a $(O_FILES)
-include $(D_FILES)