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


Reply via email to