Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@
*.pyc
*.mapfile
*.SystemMap
*.ld.tmp
*.script.tmp
*.linkcmd.tmp
*~
\#*\#
.\#*
Expand Down
15 changes: 9 additions & 6 deletions arch/arm/src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,8 @@ VPATH += chip
VPATH += common
VPATH += $(ARCH_SUBDIR)

vpath nuttx$(EXEEXT) $(TOPDIR)

ifeq ($(CONFIG_ARM_TOOLCHAIN_IAR),y)
VPATH += common$(DELIM)iar
else # ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
Expand All @@ -170,8 +172,6 @@ endif

all: $(HEAD_OBJ) $(BIN)

.PHONY: board$(DELIM)libboard$(LIBEXT)

$(AOBJS) $(UAOBJS) $(HEAD_OBJ): %$(OBJEXT): %.S
$(call ASSEMBLE, $<, $@)

Expand All @@ -192,9 +192,13 @@ endif
$(KBIN): $(OBJS)
$(call ARCHIVE, $@, $(OBJS))

board$(DELIM)libboard$(LIBEXT):
board$(DELIM)libboard$(LIBEXT): FORCE
$(Q) $(MAKE) -C board libboard$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)"

.PHONY: FORCE

FORCE:

# When multiple linking, these two additional linking objects will be included

ifeq ($(CONFIG_MM_KASAN_GLOBAL),y)
Expand All @@ -218,10 +222,10 @@ define LINK_ALLSYMS_KASAN
$(LDSTARTGROUP) $(LDLIBS) $(EXTRA_LIBS) $(LDENDGROUP)
endef

$(addsuffix .tmp,$(ARCHSCRIPT)): $(ARCHSCRIPT)
$(addsuffix .tmp,$(ARCHSCRIPT)): $(ARCHSCRIPT) $(TOPDIR)$(DELIM).config
$(call PREPROCESS, $(patsubst %.tmp,%,$@), $@)

nuttx$(EXEEXT): $(HEAD_OBJ) board$(DELIM)libboard$(LIBEXT) $(addsuffix .tmp,$(ARCHSCRIPT))
nuttx$(EXEEXT): $(HEAD_OBJ) board$(DELIM)libboard$(LIBEXT) $(addsuffix .tmp,$(ARCHSCRIPT)) $(addprefix $(TOPDIR)$(DELIM)staging$(DELIM),$(LINKLIBS))
$(Q) echo "LD: nuttx"
ifeq ($(CONFIG_ALLSYMS)$(CONFIG_MM_KASAN_GLOBAL),)
$(Q) $(LD) $(LDFLAGS) $(LIBPATHS) $(EXTRA_LIBPATHS) \
Expand All @@ -242,7 +246,6 @@ ifneq ($(CONFIG_WINDOWS_NATIVE),y)
grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
sort > $(TOPDIR)$(DELIM)System.map
endif
$(Q) $(call DELFILE, $(addsuffix .tmp,$(ARCHSCRIPT)))

# This is part of the top-level export target
# Note that there may not be a head object if layout is handled
Expand Down
15 changes: 9 additions & 6 deletions arch/arm64/src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -132,9 +132,9 @@ VPATH += chip
VPATH += common
VPATH += $(ARCH_SUBDIR)

all: $(HEAD_OBJ) $(BIN)
vpath nuttx$(EXEEXT) $(TOPDIR)

.PHONY: board$(DELIM)libboard$(LIBEXT)
all: $(HEAD_OBJ) $(BIN)

$(AOBJS) $(UAOBJS) $(HEAD_OBJ): %$(OBJEXT): %.S
$(call ASSEMBLE, $<, $@)
Expand All @@ -156,9 +156,13 @@ endif
$(KBIN): $(OBJS)
$(call ARCHIVE, $@, $(OBJS))

board$(DELIM)libboard$(LIBEXT):
board$(DELIM)libboard$(LIBEXT): FORCE
$(Q) $(MAKE) -C board libboard$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)"

.PHONY: FORCE

FORCE:

# When multiple linking, these two additional linking objects will be included

ifeq ($(CONFIG_MM_KASAN_GLOBAL),y)
Expand All @@ -182,10 +186,10 @@ define LINK_ALLSYMS_KASAN
$(LDSTARTGROUP) $(LDLIBS) $(EXTRA_LIBS) $(LDENDGROUP)
endef

$(addsuffix .tmp,$(ARCHSCRIPT)): $(ARCHSCRIPT)
$(addsuffix .tmp,$(ARCHSCRIPT)): $(ARCHSCRIPT) $(TOPDIR)$(DELIM).config
$(call PREPROCESS, $(patsubst %.tmp,%,$@), $@)

nuttx$(EXEEXT): $(HEAD_OBJ) board$(DELIM)libboard$(LIBEXT) $(addsuffix .tmp,$(ARCHSCRIPT))
nuttx$(EXEEXT): $(HEAD_OBJ) board$(DELIM)libboard$(LIBEXT) $(addsuffix .tmp,$(ARCHSCRIPT)) $(addprefix $(TOPDIR)$(DELIM)staging$(DELIM),$(LINKLIBS))
$(Q) echo "LD: nuttx"
ifeq ($(CONFIG_ALLSYMS)$(CONFIG_MM_KASAN_GLOBAL),)
$(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) $(EXTRA_LIBPATHS) \
Expand All @@ -206,7 +210,6 @@ ifneq ($(CONFIG_WINDOWS_NATIVE),y)
grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
sort > $(TOPDIR)$(DELIM)System.map
endif
$(Q) $(call DELFILE, $(addsuffix .tmp,$(ARCHSCRIPT)))

# This is part of the top-level export target
# Note that there may not be a head object if layout is handled
Expand Down
15 changes: 9 additions & 6 deletions arch/risc-v/src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -133,9 +133,9 @@ VPATH += $(SBI_DIR)
VPATH += $(ARCH_SUBDIR)
VPATH += $(CHIP_DIR)

all: $(HEAD_OBJ) $(BIN)
vpath nuttx$(EXEEXT) $(TOPDIR)

.PHONY: board/libboard$(LIBEXT)
all: $(HEAD_OBJ) $(BIN)

$(AOBJS) $(UAOBJS) $(HEAD_OBJ): %$(OBJEXT): %.S
$(call ASSEMBLE, $<, $@)
Expand All @@ -157,9 +157,13 @@ endif
$(KBIN): $(OBJS)
$(call ARCHIVE, $@, $(OBJS))

board/libboard$(LIBEXT):
board/libboard$(LIBEXT): FORCE
$(Q) $(MAKE) -C board libboard$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)"

.PHONY: FORCE

FORCE:

# When multiple linking, these two additional linking objects will be included

ifeq ($(CONFIG_MM_KASAN_GLOBAL),y)
Expand All @@ -183,10 +187,10 @@ define LINK_ALLSYMS_KASAN
$(LDSTARTGROUP) $(LDLIBS) $(EXTRA_LIBS) $(LDENDGROUP)
endef

$(addsuffix .tmp,$(ARCHSCRIPT)): $(ARCHSCRIPT)
$(addsuffix .tmp,$(ARCHSCRIPT)): $(ARCHSCRIPT) $(TOPDIR)$(DELIM).config
$(call PREPROCESS, $(patsubst %.tmp,%,$@), $@)

nuttx$(EXEEXT): $(HEAD_OBJ) board/libboard$(LIBEXT) $(addsuffix .tmp,$(ARCHSCRIPT))
nuttx$(EXEEXT): $(HEAD_OBJ) board/libboard$(LIBEXT) $(addsuffix .tmp,$(ARCHSCRIPT)) $(addprefix $(TOPDIR)$(DELIM)staging$(DELIM),$(LINKLIBS))
$(Q) echo "LD: nuttx"
ifeq ($(CONFIG_ALLSYMS)$(CONFIG_MM_KASAN_GLOBAL),)
$(Q) $(LD) $(LDENTRY) $(LDFLAGS) $(LIBPATHS) $(EXTRA_LIBPATHS) \
Expand All @@ -207,7 +211,6 @@ ifneq ($(CONFIG_WINDOWS_NATIVE),y)
grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
sort > $(TOPDIR)/System.map
endif
$(Q) $(call DELFILE, $(addsuffix .tmp,$(ARCHSCRIPT)))

# This is part of the top-level export target
# Note that there may not be a head object if layout is handled
Expand Down
8 changes: 6 additions & 2 deletions arch/sim/src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,8 @@ else
endif
DEPPATH = $(patsubst %,--dep-path %,$(subst :, ,$(VPATH)))

vpath nuttx$(EXEEXT) $(TOPDIR)

CFLAGS += -fvisibility=default
HOSTCFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
$(ARCHCFLAGS) $(HOSTINCLUDES) $(EXTRAFLAGS) -D__SIM__ \
Expand Down Expand Up @@ -372,7 +374,7 @@ RELLIBS += -lboard

all: sim_head$(OBJEXT) libarch$(LIBEXT)

.PHONY: export_startup clean distclean cleanrel depend board/libboard$(LIBEXT)
.PHONY: export_startup clean distclean cleanrel depend FORCE

$(AOBJS): %$(OBJEXT): %.S
$(call ASSEMBLE, $<, $@)
Expand All @@ -394,9 +396,11 @@ libarch$(LIBEXT): $(NUTTXOBJS)
# the simulation. However, this is a good place to keep parts of the simulation
# that are not hardware-related.

board/libboard$(LIBEXT):
board/libboard$(LIBEXT): FORCE
$(Q) $(MAKE) -C board libboard$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)"

FORCE:

# A partially linked object containing only NuttX code (no interface to host OS)
# Change the names of most symbols that conflict with libc symbols.
# Generate the final NuttX binary by linking the host-specific objects with the NuttX
Expand Down
16 changes: 10 additions & 6 deletions arch/x86_64/src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,9 @@ endif

VPATH = chip:common:$(ARCH_SUBDIR)

all: libarch$(LIBEXT)
vpath nuttx$(EXEEXT) $(TOPDIR)

.PHONY: board/libboard$(LIBEXT)
all: libarch$(LIBEXT)

$(AOBJS): %$(OBJEXT): %.S
$(call ASSEMBLE, $<, $@)
Expand All @@ -129,9 +129,13 @@ endif
$(KBIN): $(OBJS)
$(call ARCHIVE, $@, $(OBJS))

board/libboard$(LIBEXT):
board/libboard$(LIBEXT): FORCE
$(Q) $(MAKE) -C board libboard$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)"

.PHONY: FORCE

FORCE:

ifeq ($(CONFIG_ALLSYMS),y)
EXTRA_LIBS += allsyms$(OBJEXT)
endif
Expand All @@ -154,10 +158,10 @@ define LINK_ALLSYMS_KASAN
$(LDSTARTGROUP) $(EXTRA_LIBS) --no-relax $(LDLIBS) $(LDENDGROUP)
endef

$(addsuffix .tmp,$(ARCHSCRIPT)): $(ARCHSCRIPT)
$(addsuffix .tmp,$(ARCHSCRIPT)): $(ARCHSCRIPT) $(TOPDIR)$(DELIM).config
$(call PREPROCESS, $(patsubst %.tmp,%,$@), $@)

nuttx$(EXEEXT): $(HEAD_OBJ) board/libboard$(LIBEXT) $(addsuffix .tmp,$(ARCHSCRIPT))
nuttx$(EXEEXT): $(HEAD_OBJ) board/libboard$(LIBEXT) $(addsuffix .tmp,$(ARCHSCRIPT)) $(addprefix $(TOPDIR)$(DELIM)staging$(DELIM),$(LINKLIBS))
@echo "LD: nuttx$(EXEEXT)"

ifeq ($(CONFIG_ALLSYMS)$(CONFIG_MM_KASAN_GLOBAL),)
Expand All @@ -170,7 +174,6 @@ else
$(Q) $(call LINK_ALLSYMS_KASAN)
$(Q) $(call LINK_ALLSYMS_KASAN)
endif
$(Q) $(call DELFILE, $(addsuffix .tmp,$(ARCHSCRIPT)))

ifneq ($(CONFIG_WINDOWS_NATIVE),y)
$(Q) $(NM) $(NUTTX) | \
Expand Down Expand Up @@ -217,6 +220,7 @@ clean:
ifeq ($(BOARDMAKE),y)
$(Q) $(MAKE) -C board clean
endif
$(call DELFILE, $(addsuffix .tmp,$(ARCHSCRIPT)))
$(call DELFILE, libarch$(LIBEXT))
$(call CLEAN)

Expand Down
15 changes: 9 additions & 6 deletions arch/xtensa/src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,9 @@ VPATH += common/espressif
VPATH += $(ARCH_SUBDIR)
VPATH += $(CHIP_DIR)

all: $(STARTUP_OBJS) libarch$(LIBEXT)
vpath nuttx$(EXEEXT) $(TOPDIR)

.PHONY: board/libboard$(LIBEXT)
all: $(STARTUP_OBJS) libarch$(LIBEXT)

$(AOBJS) $(UAOBJS) $(HEAD_AOBJ): %$(OBJEXT): %.S
$(call ASSEMBLE, $<, $@)
Expand All @@ -159,9 +159,13 @@ endif
$(KBIN): $(OBJS)
$(call ARCHIVE, $@, $(OBJS))

board/libboard$(LIBEXT):
board/libboard$(LIBEXT): FORCE
$(Q) $(MAKE) -C board libboard$(LIBEXT) EXTRAFLAGS="$(EXTRAFLAGS)"

.PHONY: FORCE

FORCE:

define LINK_ALLSYMS
$(Q) $(TOPDIR)/tools/mkallsyms.py $(NUTTX) allsyms.tmp --orderbyname $(CONFIG_SYMTAB_ORDEREDBYNAME)
$(Q) $(call COMPILE, allsyms.tmp, allsyms$(OBJEXT), -x c)
Expand All @@ -171,10 +175,10 @@ define LINK_ALLSYMS
$(Q) $(call DELFILE, allsyms.tmp allsyms$(OBJEXT))
endef

$(addsuffix .tmp,$(ARCHSCRIPT)): $(ARCHSCRIPT)
$(addsuffix .tmp,$(ARCHSCRIPT)): $(ARCHSCRIPT) $(TOPDIR)$(DELIM).config
$(call PREPROCESS, $(patsubst %.tmp,%,$@), $@)

nuttx$(EXEEXT): $(STARTUP_OBJS) board/libboard$(LIBEXT) $(addsuffix .tmp,$(ARCHSCRIPT))
nuttx$(EXEEXT): $(STARTUP_OBJS) board/libboard$(LIBEXT) $(addsuffix .tmp,$(ARCHSCRIPT)) $(addprefix $(TOPDIR)$(DELIM)staging$(DELIM),$(LINKLIBS))
$(Q) echo "LD: nuttx"
ifneq ($(CONFIG_ALLSYMS),y)
$(Q) $(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) $(EXTRA_LIBPATHS) \
Expand All @@ -193,7 +197,6 @@ ifneq ($(CONFIG_WINDOWS_NATIVE),y)
grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
sort > $(TOPDIR)/System.map
endif
$(Q) $(call DELFILE, $(addsuffix .tmp,$(ARCHSCRIPT)))

# This is part of the top-level export target

Expand Down
4 changes: 2 additions & 2 deletions libs/libc/misc/Make.defs
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,9 @@ endif
# To ensure uname information is newest,
# add lib_utsname.o to phony target for force rebuild

#if !defined(CONFIG_LIBC_UNAME_DISABLE_TIMESTAMP)
ifeq ($(CONFIG_LIBC_UNAME_DISABLE_TIMESTAMP),)
.PHONY: bin$(DELIM)lib_utsname$(OBJEXT) kbin$(DELIM)lib_utsname$(OBJEXT)
#endif
endif

# Add the misc directory to the build

Expand Down
7 changes: 4 additions & 3 deletions tools/Unix.mk
Original file line number Diff line number Diff line change
Expand Up @@ -266,11 +266,12 @@ tools/mkconfig$(HOSTEXEEXT): prebuild
include/nuttx/config.h: $(TOPDIR)/.config tools/mkconfig$(HOSTEXEEXT)
$(Q) grep -v "CONFIG_BASE_DEFCONFIG" "$(TOPDIR)/.config" > "$(TOPDIR)/.config.tmp"
$(Q) if ! cmp -s "$(TOPDIR)/.config.tmp" "$(TOPDIR)/.config.orig" ; then \
sed -i.bak -e "/CONFIG_BASE_DEFCONFIG/ { /-dirty/! s/\"$$/-dirty\"/; }" "$(TOPDIR)/.config" ; \
sed -e "/CONFIG_BASE_DEFCONFIG/ { /-dirty/! s/\"$$/-dirty\"/; }" "$(TOPDIR)/.config" > "$(TOPDIR)/.config.dirty" ; \
else \
sed -i.bak "s/-dirty//g" "$(TOPDIR)/.config"; \
sed "s/-dirty//g" "$(TOPDIR)/.config" > "$(TOPDIR)/.config.dirty"; \
fi
$(Q) rm -f "$(TOPDIR)/.config.tmp" "$(TOPDIR)/.config.bak"
$(Q) rm -f "$(TOPDIR)/.config.tmp"
$(Q) $(call TESTANDREPLACEFILE, $(TOPDIR)/.config.dirty, $(TOPDIR)/.config)
$(Q) tools/mkconfig $(TOPDIR) > $@.tmp
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)

Expand Down
Loading