Comparar commits
1 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| ef430d778b |
+9
-4
@@ -76,19 +76,23 @@ GLOBAL_COMPILEFLAGS += -Wall -Wextra -Wno-multichar -Werror -Wno-unused-paramete
|
||||
ifeq ($(CLANG),1)
|
||||
GLOBAL_COMPILEFLAGS += -Wno-error
|
||||
endif
|
||||
GLOBAL_CFLAGS := --std=c11 -Werror-implicit-function-declaration -Wstrict-prototypes -Wwrite-strings
|
||||
#GLOBAL_CFLAGS := --std=c11 -Werror-implicit-function-declaration -Wstrict-prototypes -Wwrite-strings
|
||||
GLOBAL_CFLAGS := --std=c11 -Werror-implicit-function-declaration -Wstrict-prototypes -Wwrite-strings -S -emit-llvm
|
||||
|
||||
# Note: Both -fno-exceptions and -fno-asynchronous-unwind-tables is needed
|
||||
# in order to stop gcc from emitting .eh_frame (which is part of the loaded
|
||||
# image by default).
|
||||
GLOBAL_CPPFLAGS := --std=c++11 -fno-exceptions -fno-asynchronous-unwind-tables -fno-rtti -fno-threadsafe-statics -Wconversion
|
||||
GLOBAL_CPPFLAGS := --std=c++11 -fno-exceptions -fno-asynchronous-unwind-tables -fno-rtti -fno-threadsafe-statics -Wconversion -S -emit-llvm
|
||||
#GLOBAL_CPPFLAGS += -Weffc++
|
||||
GLOBAL_ASMFLAGS := -DASSEMBLY
|
||||
GLOBAL_ASMFLAGS := -DASSEMBLY -S -emit-llvm
|
||||
GLOBAL_LDFLAGS := -nostdlib $(addprefix -L,$(LKINC))
|
||||
GLOBAL_MODULE_LDFLAGS :=
|
||||
|
||||
# Kernel compile flags
|
||||
KERNEL_COMPILEFLAGS := -ffreestanding -include $(KERNEL_CONFIG_HEADER)
|
||||
#KERNEL_CFLAGS := --analyze -Xclang -analyzer-checker=security.insecureAPI.vfork
|
||||
KERNEL_CFLAGS :=
|
||||
#KERNEL_CPPFLAGS := -Xclang -analyze -Xclang -analyzer-checker=security.insecureAPI.vfork
|
||||
KERNEL_CPPFLAGS :=
|
||||
KERNEL_ASMFLAGS :=
|
||||
|
||||
@@ -303,7 +307,8 @@ else
|
||||
CC := $(CCACHE) $(TOOLCHAIN_PREFIX)gcc
|
||||
AR := $(TOOLCHAIN_PREFIX)ar
|
||||
endif
|
||||
LD := $(TOOLCHAIN_PREFIX)ld
|
||||
#LD := $(TOOLCHAIN_PREFIX)ld
|
||||
LD := true
|
||||
OBJDUMP := $(TOOLCHAIN_PREFIX)objdump
|
||||
OBJCOPY := $(TOOLCHAIN_PREFIX)objcopy
|
||||
CPPFILT := $(TOOLCHAIN_PREFIX)c++filt
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
// include the bootfs archive containing a user file system
|
||||
DATA(user_bootfs)
|
||||
.incbin USER_BOOTFS_FILENAME
|
||||
#.incbin USER_BOOTFS_FILENAME
|
||||
END(user_bootfs)
|
||||
|
||||
.Luser_bootfs_end:
|
||||
|
||||
+22
-23
@@ -24,46 +24,46 @@ endif
|
||||
|
||||
$(OUTLKBIN): $(OUTLKELF)
|
||||
@echo generating image: $@
|
||||
$(NOECHO)$(OBJCOPY) -O binary $< $@
|
||||
# $(NOECHO)$(OBJCOPY) -O binary $< $@
|
||||
|
||||
$(OUTLKELF).hex: $(OUTLKELF)
|
||||
@echo generating hex file: $@
|
||||
$(NOECHO)$(OBJCOPY) -O ihex $< $@
|
||||
# $(NOECHO)$(OBJCOPY) -O ihex $< $@
|
||||
|
||||
$(OUTLKELF): $(ALLMODULE_OBJS) $(EXTRA_OBJS) $(LINKER_SCRIPT)
|
||||
@echo linking $@
|
||||
$(NOECHO)$(LD) $(GLOBAL_LDFLAGS) -dT $(LINKER_SCRIPT) \
|
||||
# $(NOECHO)$(LD) $(GLOBAL_LDFLAGS) -dT $(LINKER_SCRIPT) \
|
||||
$(ALLMODULE_OBJS) $(EXTRA_OBJS) $(LIBGCC) -o $@
|
||||
$(NOECHO)$(SIZECMD) -t --common $(sort $(ALLMODULE_OBJS)) $(EXTRA_OBJS)
|
||||
$(NOECHO)$(SIZECMD) $@
|
||||
# $(NOECHO)$(SIZECMD) -t --common $(sort $(ALLMODULE_OBJS)) $(EXTRA_OBJS)
|
||||
# $(NOECHO)$(SIZECMD) $@
|
||||
|
||||
$(OUTLKELF).sym: $(OUTLKELF)
|
||||
@echo generating symbols: $@
|
||||
$(NOECHO)$(OBJDUMP) -t $< | $(CPPFILT) > $@
|
||||
# $(NOECHO)$(OBJDUMP) -t $< | $(CPPFILT) > $@
|
||||
|
||||
$(OUTLKELF).sym.sorted: $(OUTLKELF)
|
||||
@echo generating sorted symbols: $@
|
||||
$(NOECHO)$(OBJDUMP) -t $< | $(CPPFILT) | sort > $@
|
||||
# $(NOECHO)$(OBJDUMP) -t $< | $(CPPFILT) | sort > $@
|
||||
|
||||
$(OUTLKELF).lst: $(OUTLKELF)
|
||||
@echo generating listing: $@
|
||||
$(NOECHO)$(OBJDUMP) $(OBJDUMP_LIST_FLAGS) -d $< | $(CPPFILT) > $@
|
||||
# $(NOECHO)$(OBJDUMP) $(OBJDUMP_LIST_FLAGS) -d $< | $(CPPFILT) > $@
|
||||
|
||||
$(OUTLKELF).debug.lst: $(OUTLKELF)
|
||||
@echo generating listing: $@
|
||||
$(NOECHO)$(OBJDUMP) $(OBJDUMP_LIST_FLAGS) -S $< | $(CPPFILT) > $@
|
||||
# $(NOECHO)$(OBJDUMP) $(OBJDUMP_LIST_FLAGS) -S $< | $(CPPFILT) > $@
|
||||
|
||||
$(OUTLKELF).dump: $(OUTLKELF)
|
||||
@echo generating objdump: $@
|
||||
$(NOECHO)$(OBJDUMP) -x $< > $@
|
||||
# $(NOECHO)$(OBJDUMP) -x $< > $@
|
||||
|
||||
$(OUTLKELF).size: $(OUTLKELF)
|
||||
@echo generating size map: $@
|
||||
$(NOECHO)$(NM) -S --size-sort $< > $@
|
||||
# $(NOECHO)$(NM) -S --size-sort $< > $@
|
||||
|
||||
$(OUTLKELF)-gdb.py: scripts/$(LKNAME).elf-gdb.py
|
||||
@echo generating $@
|
||||
$(NOECHO)cp -f $< $@
|
||||
# $(NOECHO)cp -f $< $@
|
||||
|
||||
# print some information about the build
|
||||
#$(BUILDDIR)/srcfiles.txt:
|
||||
@@ -88,28 +88,27 @@ $(OUTLKELF)-gdb.py: scripts/$(LKNAME).elf-gdb.py
|
||||
# so they will be reflected in the $^ expansion of the link line
|
||||
$(BUILDDIR)/%.elf:: $(BUILDDIR)/%.mod.o $(USER_LINKER_SCRIPT)
|
||||
@echo linking $@
|
||||
$(NOECHO)$(LD) $(GLOBAL_LDFLAGS) -T $(USER_LINKER_SCRIPT) $(ARCH_LDFLAGS) \
|
||||
# $(NOECHO)$(LD) $(GLOBAL_LDFLAGS) -T $(USER_LINKER_SCRIPT) $(ARCH_LDFLAGS) \
|
||||
$(filter-out $(USER_LINKER_SCRIPT),$^) $(LIBGCC) -o $@
|
||||
|
||||
$(BUILDDIR)/%.elf.dump: $(BUILDDIR)/%.elf
|
||||
@echo generating $@
|
||||
$(NOECHO)$(OBJDUMP) -x $< > $@
|
||||
# $(NOECHO)$(OBJDUMP) -x $< > $@
|
||||
|
||||
$(BUILDDIR)/%.elf.lst: $(BUILDDIR)/%.elf
|
||||
@echo generating $@
|
||||
$(NOECHO)$(OBJDUMP) $(OBJDUMP_LIST_FLAGS) -d $< > $@
|
||||
# $(NOECHO)$(OBJDUMP) $(OBJDUMP_LIST_FLAGS) -d $< > $@
|
||||
|
||||
$(BUILDDIR)/%.elf.strip: $(BUILDDIR)/%.elf
|
||||
@echo generating $@
|
||||
$(NOECHO)$(STRIP) -d $< -o $@
|
||||
# $(NOECHO)$(STRIP) -d $< -o $@
|
||||
|
||||
# generate a new manifest and compare to see if it differs from the previous one
|
||||
.PHONY: usermanifestfile
|
||||
$(USER_MANIFEST): usermanifestfile
|
||||
@echo generating $@
|
||||
@$(MKDIR)
|
||||
$(NOECHO)echo $(USER_MANIFEST_LINES) | tr ' ' '\n' | sort > $@.tmp
|
||||
$(NOECHO)$(call TESTANDREPLACEFILE,$@.tmp,$@)
|
||||
# $(NOECHO)echo $(USER_MANIFEST_LINES) | tr ' ' '\n' | sort > $@.tmp
|
||||
# $(NOECHO)$(call TESTANDREPLACEFILE,$@.tmp,$@)
|
||||
|
||||
GENERATED += $(USER_MANIFEST)
|
||||
|
||||
@@ -132,16 +131,16 @@ USER_MANIFEST_DEPS := $(foreach x,$(USER_MANIFEST_LINES),$(lastword $(subst =,$(
|
||||
|
||||
$(USER_BOOTFS): $(MKBOOTFS) $(BOOTSERVER) $(LOGLISTENER) $(USER_MANIFEST) $(USER_MANIFEST_DEPS)
|
||||
@echo generating $@
|
||||
@$(MKDIR)
|
||||
$(NOECHO)$(MKBOOTFS) -o $(USER_BOOTFS) $(USER_MANIFEST)
|
||||
# @$(MKDIR)
|
||||
# $(NOECHO)$(MKBOOTFS) -o $(USER_BOOTFS) $(USER_MANIFEST)
|
||||
|
||||
GENERATED += $(USER_BOOTFS)
|
||||
|
||||
# build userspace filesystem image
|
||||
$(USER_FS): $(USER_BOOTFS)
|
||||
@echo generating $@
|
||||
$(NOECHO)dd if=/dev/zero of=$@ bs=1048576 count=16
|
||||
$(NOECHO)dd if=$(USER_BOOTFS) of=$@ conv=notrunc
|
||||
# $(NOECHO)dd if=/dev/zero of=$@ bs=1048576 count=16
|
||||
# $(NOECHO)dd if=$(USER_BOOTFS) of=$@ conv=notrunc
|
||||
|
||||
# add the fs image to the clean list
|
||||
GENERATED += $(USER_FS)
|
||||
|
||||
@@ -40,7 +40,7 @@ $(MODULE_OBJS): MODULE_SRCDEPS:=$(MODULE_SRCDEPS)
|
||||
|
||||
$(MODULE_COBJS): $(MODULE_BUILDDIR)/%.c.o: %.c $(MODULE_SRCDEPS)
|
||||
@$(MKDIR)
|
||||
@echo compiling $<
|
||||
@echo compilingg $<
|
||||
$(NOECHO)$(CC) $(GLOBAL_OPTFLAGS) $(MODULE_OPTFLAGS) $(GLOBAL_COMPILEFLAGS) $(KERNEL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(MODULE_COMPILEFLAGS) $(GLOBAL_CFLAGS) $(KERNEL_CFLAGS) $(ARCH_CFLAGS) $(MODULE_CFLAGS) $(GLOBAL_INCLUDES) -c $< -MD -MP -MT $@ -MF $(@:%o=%d) -o $@
|
||||
|
||||
$(MODULE_CPPOBJS): $(MODULE_BUILDDIR)/%.cpp.o: %.cpp $(MODULE_SRCDEPS)
|
||||
|
||||
@@ -131,9 +131,9 @@ endif
|
||||
# build a ld -r style combined object
|
||||
MODULE_OBJECT := $(MODULE_OUTNAME).mod.o
|
||||
$(MODULE_OBJECT): $(MODULE_OBJS) $(MODULE_EXTRA_OBJS)
|
||||
@$(MKDIR)
|
||||
# @$(MKDIR)
|
||||
@echo linking $@
|
||||
$(NOECHO)$(LD) $(GLOBAL_MODULE_LDFLAGS) -r $^ -o $@
|
||||
# $(NOECHO)$(LD) $(GLOBAL_MODULE_LDFLAGS) -r $^ -o $@
|
||||
|
||||
# track all of the source files compiled
|
||||
ALLSRCS += $(MODULE_SRCS)
|
||||
@@ -178,10 +178,10 @@ endif
|
||||
# build static library
|
||||
MODULE_STATIC_LIB := $(MODULE_LIBNAME).a
|
||||
$(MODULE_STATIC_LIB): $(MODULE_LIBRARY_OBJS)
|
||||
@$(MKDIR)
|
||||
@echo linking $@
|
||||
@rm -f $@
|
||||
$(NOECHO)$(AR) cr $@ $^
|
||||
# @$(MKDIR)
|
||||
# @echo linking $@
|
||||
# @rm -f $@
|
||||
# $(NOECHO)$(AR) cr $@ $^
|
||||
|
||||
# always build all libraries
|
||||
EXTRA_BUILDDEPS += $(MODULE_STATIC_LIB)
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
|
||||
ALL_C_OBJ := $(call rwildcard,build-magenta-qemu-x86-64/,*.c.o)
|
||||
ALL_CPP_OBJ := $(call rwildcard,build-magenta-qemu-x86-64/,*.cpp.o)
|
||||
ALL_OBJ := $(ALL_C_OBJ) $(ALL_CPP_OBJ)
|
||||
|
||||
target: FORCE
|
||||
llvm-link $(ALL_OBJ) -o all.o
|
||||
FORCE:
|
||||
@@ -44,7 +44,8 @@ $(BUILDDIR)/$(LOCAL_DIR)/$(ARCH).S.o: $(LOCAL_DIR)/$(ARCH).S
|
||||
|
||||
$(BUILDDIR)/$(LOCAL_DIR)/elf-interp-helper.so: \
|
||||
$(BUILDDIR)/$(LOCAL_DIR)/$(ARCH).S.o
|
||||
$(NOECHO)$(LD) -shared $^ -o $@
|
||||
true
|
||||
#$(NOECHO)$(LD) -shared $^ -o $@
|
||||
|
||||
USER_MANIFEST_LINES += \
|
||||
bin/elf-interp-helper.so=$(BUILDDIR)/$(LOCAL_DIR)/elf-interp-helper.so
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário