pkarashchenko commented on a change in pull request #5496: URL: https://github.com/apache/incubator-nuttx/pull/5496#discussion_r806270884
########## File path: boards/arm/samv7/common/scripts/flat.memory ########## @@ -22,10 +22,6 @@ include $(TOPDIR)/.config include $(TOPDIR)/tools/Config.mk include $(TOPDIR)/arch/arm/src/armv7-m/Toolchain.defs -ifeq ($(CONFIG_CYGWIN_WINTOOL),y) - ARCHSCRIPT = -T "${shell cygpath -w $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)samv7.ld}" -else - ARCHSCRIPT = -T$(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)samv7.ld -endif +ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)samv7.ld Review comment: What about `boards/arm/samv7/common/scripts/protected.memory` and other boards protected memory options? ########## File path: tools/Config.mk ########## @@ -548,3 +548,11 @@ else ARCHXXINCLUDES += ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include$(DELIM)cxx} endif ARCHXXINCLUDES += ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include} + +# Linker Scripts + +ifeq ($(CONFIG_CYGWIN_WINTOOL),y) + ARCHSCRIPT_CLI = $(addprefix -T,$(foreach SCRIPT,$(ARCHSCRIPT),${shell cygpath -w $(SCRIPT)})) +else + ARCHSCRIPT_CLI = $(addprefix -T,$(ARCHSCRIPT)) +endif Review comment: Is it possible just ``` ifeq ($(CONFIG_CYGWIN_WINTOOL),y) LDFLAGS = $(addprefix -T,$(foreach SCRIPT,$(ARCHSCRIPT),${shell cygpath -w $(SCRIPT)})) else LDFLAGS = $(addprefix -T,$(ARCHSCRIPT)) endif ``` And drop `ARCHSCRIPT_CLI`? ########## File path: tools/Config.mk ########## @@ -548,3 +548,11 @@ else ARCHXXINCLUDES += ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include$(DELIM)cxx} endif ARCHXXINCLUDES += ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include} + +# Linker Scripts + +ifeq ($(CONFIG_CYGWIN_WINTOOL),y) + ARCHSCRIPT_CLI = $(addprefix -T,$(foreach SCRIPT,$(ARCHSCRIPT),${shell cygpath -w $(SCRIPT)})) +else + ARCHSCRIPT_CLI = $(addprefix -T,$(ARCHSCRIPT)) +endif Review comment: Is it possible just ``` ifeq ($(CONFIG_CYGWIN_WINTOOL),y) LDFLAGS += $(addprefix -T,$(foreach SCRIPT,$(ARCHSCRIPT),${shell cygpath -w $(SCRIPT)})) else LDFLAGS += $(addprefix -T,$(ARCHSCRIPT)) endif ``` And drop `ARCHSCRIPT_CLI`? ########## File path: arch/sim/src/Makefile ########## @@ -294,8 +295,8 @@ ifeq ("$(shell $(CC) --version | grep clang)","") $(Q) echo "__init_array_start = .; __init_array_end = .; __fini_array_start = .; __fini_array_end = .;" >>nuttx.ld endif $(if $(CONFIG_HAVE_CXX),\ - $(Q) "$(CXX)" $(CCLINKFLAGS) $(LIBPATHS) $(ARCHSCRIPT) -o $(TOPDIR)/$@ $(HEADOBJ) nuttx.rel $(HOSTOBJS) $(STDLIBS),\ - $(Q) "$(CC)" $(CCLINKFLAGS) $(LIBPATHS) $(ARCHSCRIPT) -o $(TOPDIR)/$@ $(HEADOBJ) nuttx.rel $(HOSTOBJS) $(STDLIBS)) + $(Q) "$(CXX)" $(CCLINKFLAGS) $(LIBPATHS) $(ARCHSCRIPT_CLI) -o $(TOPDIR)/$@ $(HEADOBJ) nuttx.rel $(HOSTOBJS) $(STDLIBS),\ Review comment: If we can use `LDFLAGS` in `tools/Config.mk` then we can `$(Q) "$(CXX)" $(CCLINKFLAGS) $(LIBPATHS) $(LDFLAGS) -o $(TOPDIR)/$@ $(HEADOBJ) nuttx.rel $(HOSTOBJS) $(STDLIBS),\` here ########## File path: tools/Config.mk ########## @@ -548,3 +548,17 @@ else ARCHXXINCLUDES += ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include$(DELIM)cxx} endif ARCHXXINCLUDES += ${shell $(INCDIR) -s "$(CC)" $(TOPDIR)$(DELIM)include} + +# Linker Scripts + +# Note: This file has the potenital to be included multiple times. To prevent duplicate linker scripts +# from being added, guard the `LDFLAGS +=` with $(ARCHSCRIPT_ALREADY_ADDED) + +ifeq ($(ARCHSCRIPT_ALREADY_ADDED),) + ifeq ($(CONFIG_CYGWIN_WINTOOL),y) + LDFLAGS += $(addprefix -T,$(foreach SCRIPT,$(ARCHSCRIPT),${shell cygpath -w $(SCRIPT)})) + else + LDFLAGS += $(addprefix -T,$(ARCHSCRIPT)) + endif + ARCHSCRIPT_ALREADY_ADDED = y +endif Review comment: Do we know the reason why linker scripts are added multiple times? Is this consistent on both native Linux and Cygwin? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org