You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2021/04/10 20:47:50 UTC

[GitHub] [incubator-nuttx] btashton opened a new pull request #3510: Add LTP build for sim and allow long arguments for archive

btashton opened a new pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510


   ## Summary
   This adds a build configuration for sim that includes the LTP posix tests. Because this test suite is very large there are a couple build system related changes that were also needed:
   1. Include the relative path in the archive. Without this we overwrite the files in the archive if they have two object names that are the same.  (P argument on ar)
   2. Add a `MAX_ARGS` Makefile macro that helps split up calls that include a large number of augments.  Here this is used with `ARCHIVE_ADD` so batches of 100 objects are added at a time, keeping us under the limit for max command line arguments in a normal situation.
   
   ## Impact
   The simulator can now run the LTP tests.  Note that many of the fail including causing segfaults this will need to be iterated on.
   
   ## Testing
   Local testing as well as CI
   
   NOTE:  We will need to adjust the app repo so that the expected compiler warnings are allowed for this application.  This needs to be done prior to merging this.


-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] btashton commented on pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
btashton commented on pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#issuecomment-817472909


   > We need change CSRCS=myfile.c to CSRCS=dir/1/myfile.c. Application.mk already contain the special process to ensure the unique object file name in this case. Here is the related patch:
   > [apache/incubator-nuttx-apps@e48a74f](https://github.com/apache/incubator-nuttx-apps/commit/e48a74f358f119087100cb124707e96e74f81eef)
   
   I know this. but it is not enough because $(SUFFIX) ends up just being `home.bashton.nuttx.apps.testing.ltp.o`  So in this case
   in `apps/testing/ltp/` we have  `ltp/testcases/open_posix_testsuite/conformance/interfaces/clock/1-1.c` and `ltp/testcases/open_posix_testsuite/conformance/interfaces/ctime/1-1.c`  This object will be generated `1-1.home.bashton.nuttx.apps.testing.ltp.o` for both on these files.
   So we get
   `ar rcs libapp.a ltp/testcases/open_posix_testsuite/conformance/interfaces/clock/1-1.home.bashton.nuttx.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/interfaces/ctime/1-1.home.bashton.nuttx.apps.testing.ltp.o`
   This will result in the second object overwriting the first one in the archive.
   
   I am suggesting that SUFFIX is not good enough using CWD of the Makefile.  It instead should be something like `$(CWD).$(subst $(DELIM), ., $(basename $(CSRC))).o` 


-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] btashton commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
btashton commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611148613



##########
File path: tools/Config.mk
##########
@@ -196,6 +196,26 @@ OBJPATH ?= .
 %.ddh: %.c
 	$(Q) $(MKDEP) --obj-path $(OBJPATH) --obj-suffix $(OBJEXT) $(DEPPATH) "$(CC)" -- $(HOSTCFLAGS) -- $< > $@
 
+# MAX_ARGS - Split a single command up into multiple commands based on maximum number
+#   of words in the command arguments.  This is especially useful for cases like assembling
+#   a large archive or deleting a large number of objects.  The Argument list too long error
+#   is based on the number of bytes in the argument so this is not an exact fix, but selecting
+#   a reasonable number for the maximum number of words can still allow for multiple files
+#   to be supplied to a command but also split it up in the large cases.
+# Example: @$(call MAX_ARGS,ar rcs mylib.a ,2,$(OBJS))
+
+define MAX_ARGS
+  $(eval _args:=)
+  $(foreach obj,$3,$(eval _args+=$(obj))$(if $(word $2,$(_args)),$1$(_args)$(EOL)$(eval _args:=)))

Review comment:
       Ok. I made it 100 which I think is reasonable. Also updated to changed to arg from obj.




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] btashton commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
btashton commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611148511



##########
File path: tools/mkdeps.c
##########
@@ -737,8 +737,8 @@ static void do_dependency(const char *file)
           *dotptr = '\0';
         }
 
-      snprintf(tmp, NAME_MAX + 6, " -MT %s%c%s%s ",
-               g_objpath, separator, objname, g_suffix);
+      snprintf(tmp, NAME_MAX + 6, " -MT %d-%s%c%s%s ",
+               file_idx, g_objpath, separator, objname, g_suffix);

Review comment:
       This is not needed anymore. I removed the change.




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] v01d commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
v01d commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611199036



##########
File path: tools/Config.mk
##########
@@ -329,8 +349,7 @@ endef
 #   CONFIG_WINDOWS_NATIVE - Defined for a Windows native build
 
 define ARCHIVE_ADD
-	@echo "AR (add): ${shell basename $(1)} $(2)"

Review comment:
       I was thinking that it could show as "AR (add): <lib> <up to 100 objs here>". But if you think it is too complex, maybe, just leave the "AR (add): <lib>". Otherwise we can't tell when this being done.




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] btashton commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
btashton commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611148646



##########
File path: tools/Config.mk
##########
@@ -196,6 +196,26 @@ OBJPATH ?= .
 %.ddh: %.c
 	$(Q) $(MKDEP) --obj-path $(OBJPATH) --obj-suffix $(OBJEXT) $(DEPPATH) "$(CC)" -- $(HOSTCFLAGS) -- $< > $@
 
+# MAX_ARGS - Split a single command up into multiple commands based on maximum number
+#   of words in the command arguments.  This is especially useful for cases like assembling
+#   a large archive or deleting a large number of objects.  The Argument list too long error
+#   is based on the number of bytes in the argument so this is not an exact fix, but selecting
+#   a reasonable number for the maximum number of words can still allow for multiple files
+#   to be supplied to a command but also split it up in the large cases.
+# Example: @$(call MAX_ARGS,ar rcs mylib.a ,2,$(OBJS))
+
+define MAX_ARGS
+  $(eval _args:=)
+  $(foreach obj,$3,$(eval _args+=$(obj))$(if $(word $2,$(_args)),$1$(_args)$(EOL)$(eval _args:=)))
+  $(if $(_args),$1$(_args))
+endef
+define EOL
+
+
+
+
+endef

Review comment:
       Added a comment about this




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] btashton commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
btashton commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611094083



##########
File path: tools/Config.mk
##########
@@ -329,8 +349,7 @@ endef
 #   CONFIG_WINDOWS_NATIVE - Defined for a Windows native build
 
 define ARCHIVE_ADD
-	@echo "AR (add): ${shell basename $(1)} $(2)"

Review comment:
       No the argument list will be too long




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] v01d commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
v01d commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611094030



##########
File path: tools/Config.mk
##########
@@ -329,8 +349,7 @@ endef
 #   CONFIG_WINDOWS_NATIVE - Defined for a Windows native build
 
 define ARCHIVE_ADD
-	@echo "AR (add): ${shell basename $(1)} $(2)"

Review comment:
       can't we still have a print here? Otherwise nothing will be printed




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] xiaoxiang781216 commented on pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#issuecomment-817468046


   > > @btashton could you explain a little bit about the problem resolved P option?
   > 
   > Sure, the main issue is that our object files look something like `myfile.a.top.dir.o` but we have that same object name if the object is in `dir/1/myfile.c` and `dir/2/myfile.c`
   
   We need change CSRCS=myfile.c to CSRCS=dir/1/myfile.c. Application.mk already contain the special process to ensure the unique object file name in this case. Here is the related patch:
   https://github.com/apache/incubator-nuttx-apps/commit/e48a74f358f119087100cb124707e96e74f81eef
   
   > this means we overwrite the object files adding them to the archive. The P option was a ugly solution because it means that the archive has `dir/2/myfile.a.top.dir.o` and `dir/1/myfile.a.top.dir.o` instead of just `myfile.a.top.dir.o`.
   > 
   > I think the correct solution is that the `dirname()` of the object file needs to be included in the object file name not just the `CWD`.
   > 
   > This is also technically an issue in the Make.dep file that gets generated as well. I have a solution for that, but the Makefile side is a little more complicated to fix.
   
   Since all source files under apps archive into one library(libapps.a), it is very bad practice to just list the file name and supply the path by VPATH/DEPPATH.


-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] btashton commented on pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
btashton commented on pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#issuecomment-817373616


   Looks like llvm-ar does not support the `P` modifier so we will need to use a different solution here. Probably the right thing is to generate the suffix based on the source file directory instead of the makefile directory. That way we will have unique object file names. 


-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] btashton commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
btashton commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611094728



##########
File path: tools/Config.mk
##########
@@ -467,12 +486,13 @@ define CLEAN
 	$(Q) if exist *$(LIBEXT) (del /f /q *$(LIBEXT))
 	$(Q) if exist *~ (del /f /q *~)
 	$(Q) if exist (del /f /q  .*.swp)
-	$(Q) if exist $(OBJS) (del /f /q $(OBJS))
+	$(Q) $(foreach OBJ, $(OBJS), $(if exist $(OBJS) (del /f /q $(OBJ))))
 	$(Q) if exist $(BIN) (del /f /q  $(BIN))
 endef
 else
 define CLEAN
-	$(Q) rm -f *$(OBJEXT) *$(LIBEXT) *~ .*.swp $(OBJS) $(BIN)
+	$(Q) rm -f *$(OBJEXT) *$(LIBEXT) *~ .*.swp $(BIN)
+	$(Q) $(foreach OBJ, $(OBJS), $(rm -f $(OBJ)))

Review comment:
       We could for the non windows case, but for the windows case it is not a list of files at the end as arguments we need it twice.
   The performance difference was negligible here so I went this was for consistency.




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611145072



##########
File path: tools/mkdeps.c
##########
@@ -737,8 +737,8 @@ static void do_dependency(const char *file)
           *dotptr = '\0';
         }
 
-      snprintf(tmp, NAME_MAX + 6, " -MT %s%c%s%s ",
-               g_objpath, separator, objname, g_suffix);
+      snprintf(tmp, NAME_MAX + 6, " -MT %d-%s%c%s%s ",
+               file_idx, g_objpath, separator, objname, g_suffix);

Review comment:
       why need add a index here?




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611144726



##########
File path: tools/Config.mk
##########
@@ -196,6 +196,26 @@ OBJPATH ?= .
 %.ddh: %.c
 	$(Q) $(MKDEP) --obj-path $(OBJPATH) --obj-suffix $(OBJEXT) $(DEPPATH) "$(CC)" -- $(HOSTCFLAGS) -- $< > $@
 
+# MAX_ARGS - Split a single command up into multiple commands based on maximum number
+#   of words in the command arguments.  This is especially useful for cases like assembling
+#   a large archive or deleting a large number of objects.  The Argument list too long error
+#   is based on the number of bytes in the argument so this is not an exact fix, but selecting
+#   a reasonable number for the maximum number of words can still allow for multiple files
+#   to be supplied to a command but also split it up in the large cases.
+# Example: @$(call MAX_ARGS,ar rcs mylib.a ,2,$(OBJS))
+
+define MAX_ARGS
+  $(eval _args:=)
+  $(foreach obj,$3,$(eval _args+=$(obj))$(if $(word $2,$(_args)),$1$(_args)$(EOL)$(eval _args:=)))

Review comment:
       Should we give $2 a fix number to simplify the caller a little bit? BTW, arg is better name than obj here.




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] xiaoxiang781216 commented on pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#issuecomment-817437102


   @btashton could you explain a little bit about the problem resolved P option?


-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] v01d commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
v01d commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611094007



##########
File path: tools/Config.mk
##########
@@ -467,12 +486,13 @@ define CLEAN
 	$(Q) if exist *$(LIBEXT) (del /f /q *$(LIBEXT))
 	$(Q) if exist *~ (del /f /q *~)
 	$(Q) if exist (del /f /q  .*.swp)
-	$(Q) if exist $(OBJS) (del /f /q $(OBJS))
+	$(Q) $(foreach OBJ, $(OBJS), $(if exist $(OBJS) (del /f /q $(OBJ))))
 	$(Q) if exist $(BIN) (del /f /q  $(BIN))
 endef
 else
 define CLEAN
-	$(Q) rm -f *$(OBJEXT) *$(LIBEXT) *~ .*.swp $(OBJS) $(BIN)
+	$(Q) rm -f *$(OBJEXT) *$(LIBEXT) *~ .*.swp $(BIN)
+	$(Q) $(foreach OBJ, $(OBJS), $(rm -f $(OBJ)))

Review comment:
       can't use MAX_ARGS here as well?




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] v01d commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
v01d commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611094233



##########
File path: tools/Config.mk
##########
@@ -329,8 +349,7 @@ endef
 #   CONFIG_WINDOWS_NATIVE - Defined for a Windows native build
 
 define ARCHIVE_ADD
-	@echo "AR (add): ${shell basename $(1)} $(2)"

Review comment:
       But maybe the print can be done in batches as well




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] v01d commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
v01d commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611094046



##########
File path: tools/Config.mk
##########
@@ -196,6 +196,26 @@ OBJPATH ?= .
 %.ddh: %.c
 	$(Q) $(MKDEP) --obj-path $(OBJPATH) --obj-suffix $(OBJEXT) $(DEPPATH) "$(CC)" -- $(HOSTCFLAGS) -- $< > $@
 
+# MAX_ARGS - Split a single command up into multiple commands based on maximum number
+#   of words in the command arguments.  This is especially useful for cases like assembling
+#   a large archive or deleting a large number of objects.  The Argument list too long error
+#   is based on the number of bytes in the argument so this is not an exact fix, but selecting
+#   a reasonable number for the maximum number of words can still allow for multiple files
+#   to be supplied to a command but also split it up in the large cases.
+# Example: @$(call MAX_ARGS,ar rcs mylib.a ,2,$(OBJS))
+
+define MAX_ARGS
+  $(eval _args:=)
+  $(foreach obj,$3,$(eval _args+=$(obj))$(if $(word $2,$(_args)),$1$(_args)$(EOL)$(eval _args:=)))
+  $(if $(_args),$1$(_args))
+endef
+define EOL
+
+
+
+
+endef

Review comment:
       I'm not following the purpose of this




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] btashton commented on pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
btashton commented on pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#issuecomment-817441498


   > @btashton could you explain a little bit about the problem resolved P option?
   
   Sure, the main issue is that our object files look something like `myfile.a.top.dir.o` but we have that same object name if the object is in `dir/1/myfile.c` and `dir/2/myfile.c` this means we overwrite the object files adding them to the archive.  The P option was a ugly solution because it means that the archive has `dir/2/myfile.a.top.dir.o` and `dir/1/myfile.a.top.dir.o` instead of just `myfile.a.top.dir.o`.
   
   I think the correct solution is that the `dirname()` of the object file needs to be included in the object file name not just the `CWD`.
   
   This is also technically an issue in the Make.dep file that gets generated as well.  I have a solution for that, but the Makefile side is a little more complicated to fix.


-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] v01d commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
v01d commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611094725



##########
File path: tools/Config.mk
##########
@@ -196,6 +196,26 @@ OBJPATH ?= .
 %.ddh: %.c
 	$(Q) $(MKDEP) --obj-path $(OBJPATH) --obj-suffix $(OBJEXT) $(DEPPATH) "$(CC)" -- $(HOSTCFLAGS) -- $< > $@
 
+# MAX_ARGS - Split a single command up into multiple commands based on maximum number
+#   of words in the command arguments.  This is especially useful for cases like assembling
+#   a large archive or deleting a large number of objects.  The Argument list too long error
+#   is based on the number of bytes in the argument so this is not an exact fix, but selecting
+#   a reasonable number for the maximum number of words can still allow for multiple files
+#   to be supplied to a command but also split it up in the large cases.
+# Example: @$(call MAX_ARGS,ar rcs mylib.a ,2,$(OBJS))
+
+define MAX_ARGS
+  $(eval _args:=)
+  $(foreach obj,$3,$(eval _args+=$(obj))$(if $(word $2,$(_args)),$1$(_args)$(EOL)$(eval _args:=)))
+  $(if $(_args),$1$(_args))
+endef
+define EOL
+
+
+
+
+endef

Review comment:
       oh ok. maybe add a comment to explain the apparently empty macro?




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611144726



##########
File path: tools/Config.mk
##########
@@ -196,6 +196,26 @@ OBJPATH ?= .
 %.ddh: %.c
 	$(Q) $(MKDEP) --obj-path $(OBJPATH) --obj-suffix $(OBJEXT) $(DEPPATH) "$(CC)" -- $(HOSTCFLAGS) -- $< > $@
 
+# MAX_ARGS - Split a single command up into multiple commands based on maximum number
+#   of words in the command arguments.  This is especially useful for cases like assembling
+#   a large archive or deleting a large number of objects.  The Argument list too long error
+#   is based on the number of bytes in the argument so this is not an exact fix, but selecting
+#   a reasonable number for the maximum number of words can still allow for multiple files
+#   to be supplied to a command but also split it up in the large cases.
+# Example: @$(call MAX_ARGS,ar rcs mylib.a ,2,$(OBJS))
+
+define MAX_ARGS
+  $(eval _args:=)
+  $(foreach obj,$3,$(eval _args+=$(obj))$(if $(word $2,$(_args)),$1$(_args)$(EOL)$(eval _args:=)))

Review comment:
       Should we give a fix number of $2 to simplify the caller a little bit?




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] btashton commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
btashton commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611098248



##########
File path: tools/Config.mk
##########
@@ -329,8 +349,7 @@ endef
 #   CONFIG_WINDOWS_NATIVE - Defined for a Windows native build
 
 define ARCHIVE_ADD
-	@echo "AR (add): ${shell basename $(1)} $(2)"

Review comment:
       I'm not really sure how that would work, if I wrap the echo with max args then it will split differently.




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] btashton commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
btashton commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611094423



##########
File path: tools/Config.mk
##########
@@ -196,6 +196,26 @@ OBJPATH ?= .
 %.ddh: %.c
 	$(Q) $(MKDEP) --obj-path $(OBJPATH) --obj-suffix $(OBJEXT) $(DEPPATH) "$(CC)" -- $(HOSTCFLAGS) -- $< > $@
 
+# MAX_ARGS - Split a single command up into multiple commands based on maximum number
+#   of words in the command arguments.  This is especially useful for cases like assembling
+#   a large archive or deleting a large number of objects.  The Argument list too long error
+#   is based on the number of bytes in the argument so this is not an exact fix, but selecting
+#   a reasonable number for the maximum number of words can still allow for multiple files
+#   to be supplied to a command but also split it up in the large cases.
+# Example: @$(call MAX_ARGS,ar rcs mylib.a ,2,$(OBJS))
+
+define MAX_ARGS
+  $(eval _args:=)
+  $(foreach obj,$3,$(eval _args+=$(obj))$(if $(word $2,$(_args)),$1$(_args)$(EOL)$(eval _args:=)))
+  $(if $(_args),$1$(_args))
+endef
+define EOL
+
+
+
+
+endef

Review comment:
       This is a macro so you need to have the EOL or this will be resolved as 
   `ar rcSP fooo.a obj1.o obj2.o ar rcSP fooo.a obj3.o obj4.o` instead of
   ```
   ar rcSP fooo.a obj1.o obj2.o
   ar rcSP fooo.a obj3.o obj4.o
   ```




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] btashton commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
btashton commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611232204



##########
File path: tools/Config.mk
##########
@@ -329,8 +349,7 @@ endef
 #   CONFIG_WINDOWS_NATIVE - Defined for a Windows native build
 
 define ARCHIVE_ADD
-	@echo "AR (add): ${shell basename $(1)} $(2)"

Review comment:
       Ok I reworked the function a bit so it can take a functions as an argument.  This means we can retain something like the original functionality even with it split. Here is an output, we see both the split and not split versions:
   ```
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/netutils/ftpc'
   AR (add): libapps.a ftpc_connect.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_disconnect.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_cdup.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_chdir.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_chmod.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_filesize.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_filetime.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_help.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_idle.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_listdir.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_login.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_mkdir.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_noop.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_rpwd.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_quit.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_rename.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_rmdir.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_unlink.home.bashton.nuttx
 .wrk.apps.netutils.ftpc.o ftpc_cmd.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_getfile.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_putfile.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_transfer.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_response.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_getreply.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_utils.home.bashton.nuttx.wrk.apps.netutils.ftpc.o ftpc_socket.home.bashton.nuttx.wrk.apps.netutils.ftpc.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/netutils/ftpc'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/netutils/netinit'
   AR (add): libapps.a netinit.home.bashton.nuttx.wrk.apps.netutils.netinit.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/netutils/netinit'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/netutils/netlib'
   AR (add): libapps.a netlib_ipv4addrconv.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_ethaddrconv.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_parsehttpurl.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_setifstatus.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_getifstatus.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_parseurl.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_setipv4addr.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_getipv4addr.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_setdripv4addr.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_setipv4netmask.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_getdripv4addr.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_getipv4netmask.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_ipv4adaptor.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_getarp.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_setarp.home.bashton.nuttx.wrk.apps.netutils.netlib.o n
 etlib_delarp.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_getarptab.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_setipv4dnsaddr.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_setipv6addr.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_getipv6addr.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_setdripv6addr.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_setipv6netmask.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_prefix2ipv6netmask.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_ipv6netmask2prefix.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_ipv6adaptor.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_autoconfig.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_getnbtab.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_getdevs.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_server.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_listenon.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_setmacaddr.home.b
 ashton.nuttx.wrk.apps.netutils.netlib.o netlib_getmacaddr.home.bashton.nuttx.wrk.apps.netutils.netlib.o netlib_ipmsfilter.home.bashton.nuttx.wrk.apps.netutils.netlib.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/netutils/netlib'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/netutils/ping'
   AR (add): libapps.a icmp_ping.home.bashton.nuttx.wrk.apps.netutils.ping.o icmpv6_ping.home.bashton.nuttx.wrk.apps.netutils.ping.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/netutils/ping'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/netutils/telnetc'
   AR (add): libapps.a telnetc.home.bashton.nuttx.wrk.apps.netutils.telnetc.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/netutils/telnetc'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/netutils/telnetd'
   AR (add): libapps.a telnetd_daemon.home.bashton.nuttx.wrk.apps.netutils.telnetd.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/netutils/telnetd'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/netutils/tftpc'
   AR (add): libapps.a tftpc_get.home.bashton.nuttx.wrk.apps.netutils.tftpc.o tftpc_put.home.bashton.nuttx.wrk.apps.netutils.tftpc.o tftpc_packets.home.bashton.nuttx.wrk.apps.netutils.tftpc.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/netutils/tftpc'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/netutils/webclient'
   AR (add): libapps.a webclient.home.bashton.nuttx.wrk.apps.netutils.webclient.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/netutils/webclient'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/nshlib'
   AR (add): libapps.a nsh_init.home.bashton.nuttx.wrk.apps.nshlib.o nsh_parse.home.bashton.nuttx.wrk.apps.nshlib.o nsh_console.home.bashton.nuttx.wrk.apps.nshlib.o nsh_script.home.bashton.nuttx.wrk.apps.nshlib.o nsh_system.home.bashton.nuttx.wrk.apps.nshlib.o nsh_command.home.bashton.nuttx.wrk.apps.nshlib.o nsh_fscmds.home.bashton.nuttx.wrk.apps.nshlib.o nsh_ddcmd.home.bashton.nuttx.wrk.apps.nshlib.o nsh_proccmds.home.bashton.nuttx.wrk.apps.nshlib.o nsh_mmcmds.home.bashton.nuttx.wrk.apps.nshlib.o nsh_timcmds.home.bashton.nuttx.wrk.apps.nshlib.o nsh_envcmds.home.bashton.nuttx.wrk.apps.nshlib.o nsh_syscmds.home.bashton.nuttx.wrk.apps.nshlib.o nsh_dbgcmds.home.bashton.nuttx.wrk.apps.nshlib.o nsh_session.home.bashton.nuttx.wrk.apps.nshlib.o nsh_fsutils.home.bashton.nuttx.wrk.apps.nshlib.o nsh_builtin.home.bashton.nuttx.wrk.apps.nshlib.o nsh_fileapps.home.bashton.nuttx.wrk.apps.nshlib.o nsh_romfsetc.home.bashton.nuttx.wrk.apps.nshlib.o nsh_netcmds.home.bashton.nuttx.wrk.apps.nshlib.o nsh
 _mntcmds.home.bashton.nuttx.wrk.apps.nshlib.o nsh_consolemain.home.bashton.nuttx.wrk.apps.nshlib.o nsh_telnetd.home.bashton.nuttx.wrk.apps.nshlib.o nsh_test.home.bashton.nuttx.wrk.apps.nshlib.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/nshlib'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/platform'
   AR (add): libapps.a dummy.home.bashton.nuttx.wrk.apps.platform.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/platform'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/system/cle'
   AR (add): libapps.a cle.home.bashton.nuttx.wrk.apps.system.cle.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/system/cle'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/system/nsh'
   AR (add): libapps.a nsh_main.home.bashton.nuttx.wrk.apps.system.nsh.o sh_main.home.bashton.nuttx.wrk.apps.system.nsh.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/system/nsh'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/system/ping6'
   AR (add): libapps.a ping6.home.bashton.nuttx.wrk.apps.system.ping6.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/system/ping6'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/system/ping'
   AR (add): libapps.a ping.home.bashton.nuttx.wrk.apps.system.ping.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/system/ping'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/system/popen'
   AR (add): libapps.a popen.home.bashton.nuttx.wrk.apps.system.popen.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/system/popen'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/system/readline'
   AR (add): libapps.a readline.home.bashton.nuttx.wrk.apps.system.readline.o readline_common.home.bashton.nuttx.wrk.apps.system.readline.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/system/readline'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/system/system'
   AR (add): libapps.a system.home.bashton.nuttx.wrk.apps.system.system.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/system/system'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/system/telnet'
   AR (add): libapps.a telnet_client.home.bashton.nuttx.wrk.apps.system.telnet.o
   make[3]: Leaving directory '/home/bashton/nuttx/wrk/apps/system/telnet'
   make[3]: Entering directory '/home/bashton/nuttx/wrk/apps/testing/ltp'
   AR (add): libapps.a ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/5-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/16-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/15-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/3-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/24-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/3-3-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/8-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/13-1-buildonly.home.
 bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/2-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/14-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/9-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/4-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/20-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/4-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/2-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/5-1-bu
 ildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/7-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/3-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/23-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/2-4-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/1-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/7-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/22-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/
 mman_h/6-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/8-3-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/8-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/10-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/2-3-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/12-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/18-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/4-3-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/de
 finitions/sys/mman_h/9-3-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/9-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/8-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/2-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/4-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/2-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/5-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/7-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conforman
 ce/definitions/sys/shm_h/3-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/1-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/7-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/12-3-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/6-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/12-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/10-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sys/shm_h/12-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/co
 nformance/definitions/sys/shm_h/9-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/mqueue_h/8-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/mqueue_h/2-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/mqueue_h/4-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/mqueue_h/5-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/mqueue_h/7-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/mqueue_h/3-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/mqueue_h/6-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/confor
 mance/definitions/mqueue_h/10-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/mqueue_h/9-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/46-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/15-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/34-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/28-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/24-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/41-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conf
 ormance/definitions/signal_h/22-40-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/47-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/44-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/2-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/32-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/22-25-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/22-37-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/22-39-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuit
 e/conformance/definitions/signal_h/4-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/48-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/2-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/29-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/5-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/22-29-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/3-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/2-4-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite
 /conformance/definitions/signal_h/50-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/1-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/22-24-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/30-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/36-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/40-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/39-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/38-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsu
 ite/conformance/definitions/signal_h/33-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/45-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/22-27-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/22-38-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/2-3-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/22-26-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/43-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/49-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_t
 estsuite/conformance/definitions/signal_h/22-28-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/42-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/22-36-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/unistd_h/2-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/unistd_h/1-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o
   AR (add): libapps.a ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/16-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/15-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/8-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/13-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/2-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/14-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/4-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/3-1-buildonly.home.bashton.nuttx.wrk.apps.t
 esting.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/1-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/8-3-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/8-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/12-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/8-4-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/18-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/errno_h/2-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/errno_h/3-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.
 o ltp/testcases/open_posix_testsuite/conformance/definitions/errno_h/1-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/16-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/15-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/31-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/34-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/3-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/28-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/24-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcase
 s/open_posix_testsuite/conformance/definitions/time_h/26-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/8-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/13-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/2-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/32-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/14-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/20-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/4-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_tes
 tsuite/conformance/definitions/time_h/29-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/5-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/7-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/3-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/23-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/6-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/1-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/30-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance
 /definitions/time_h/7-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/22-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/33-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/6-3-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/6-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/10-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/12-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/18-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/tim
 e_h/35-3-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/time_h/9-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/16-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/3-11-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/15-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/3-12-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/3-2-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/3-13-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/
 pthread_h/3-3-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/8-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/13-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/2-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/3-8-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/14-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/10-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/20-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definit
 ions/pthread_h/4-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/5-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/7-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/3-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/1-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/3-9-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/3-4-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/6-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/defi
 nitions/pthread_h/3-5-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/3-10-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/12-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/3-6-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/18-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/3-7-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/pthread_h/9-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/interfaces/pthread_once/4-1-buildonly.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/t
 hreads/sem_open/s-c1.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/threads/sem_init/s-c1.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/threads/pthread_cancel/stress.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/threads/pthread_mutex_init/stress.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/threads/pthread_mutex_init/s-c.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/threads/pthread_mutex_lock/s-c1.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/threads/pthread_mutex_lock/stress.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/threads/pthread_mutex_lock/s-c2.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/threads/pthread_once/stress.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_
 posix_testsuite/stress/threads/pthread_getschedparam/stress.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/threads/sem_getvalue/stress.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/threads/pthread_mutex_trylock/stress.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/mqueues/multi_send_rev_2.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/mqueues/multi_send_rev_1.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/signals/sigismember_stress_1.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/stress/semaphores/multi_con_pro.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/mqueue_h/1-1.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/signal_h/26-1.home.bashton.nuttx.wrk.apps.testing
 .ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/sched_h/10-1.home.bashton.nuttx.wrk.apps.testing.ltp.o ltp/testcases/open_posix_testsuite/conformance/definitions/errno_h/4-1.home.bashton.nuttx.wrk.apps.testing.ltp.o
   ```




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] v01d commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
v01d commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611199036



##########
File path: tools/Config.mk
##########
@@ -329,8 +349,7 @@ endef
 #   CONFIG_WINDOWS_NATIVE - Defined for a Windows native build
 
 define ARCHIVE_ADD
-	@echo "AR (add): ${shell basename $(1)} $(2)"

Review comment:
       I was thinking that it could show as `AR (add): <lib> <up to 100 objs here>`. But if you think it is too complex, maybe, just leave the `AR (add): <lib>`. Otherwise we can't tell when this being done.




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a change in pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on a change in pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#discussion_r611144726



##########
File path: tools/Config.mk
##########
@@ -196,6 +196,26 @@ OBJPATH ?= .
 %.ddh: %.c
 	$(Q) $(MKDEP) --obj-path $(OBJPATH) --obj-suffix $(OBJEXT) $(DEPPATH) "$(CC)" -- $(HOSTCFLAGS) -- $< > $@
 
+# MAX_ARGS - Split a single command up into multiple commands based on maximum number
+#   of words in the command arguments.  This is especially useful for cases like assembling
+#   a large archive or deleting a large number of objects.  The Argument list too long error
+#   is based on the number of bytes in the argument so this is not an exact fix, but selecting
+#   a reasonable number for the maximum number of words can still allow for multiple files
+#   to be supplied to a command but also split it up in the large cases.
+# Example: @$(call MAX_ARGS,ar rcs mylib.a ,2,$(OBJS))
+
+define MAX_ARGS
+  $(eval _args:=)
+  $(foreach obj,$3,$(eval _args+=$(obj))$(if $(word $2,$(_args)),$1$(_args)$(EOL)$(eval _args:=)))

Review comment:
       Should we give $2 a fix number to simplify the caller a little bit?




-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-nuttx] xiaoxiang781216 edited a comment on pull request #3510: Add LTP build for sim and allow long arguments for archive

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 edited a comment on pull request #3510:
URL: https://github.com/apache/incubator-nuttx/pull/3510#issuecomment-817468046


   > > @btashton could you explain a little bit about the problem resolved P option?
   > 
   > Sure, the main issue is that our object files look something like `myfile.a.top.dir.o` but we have that same object name if the object is in `dir/1/myfile.c` and `dir/2/myfile.c`
   
   We need change CSRCS=myfile.c to CSRCS=dir/1/myfile.c. Application.mk already contain the special process to ensure the unique object file name in this case. Here is the related patch:
   https://github.com/apache/incubator-nuttx-apps/commit/e48a74f358f119087100cb124707e96e74f81eef
   
   > this means we overwrite the object files adding them to the archive. The P option was a ugly solution because it means that the archive has `dir/2/myfile.a.top.dir.o` and `dir/1/myfile.a.top.dir.o` instead of just `myfile.a.top.dir.o`.
   > 
   > I think the correct solution is that the `dirname()` of the object file needs to be included in the object file name not just the `CWD`.
   > 
   > This is also technically an issue in the Make.dep file that gets generated as well. I have a solution for that, but the Makefile side is a little more complicated to fix.
   
   Since all source files under apps archive into one library(libapps.a), it is very bad practice to just list the file name and supply the path prefix by VPATH/DEPPATH.


-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org