[PATCH] build: make _make_dirs robust against too long argument error

Robert Marko robimarko at gmail.com
Mon Mar 25 02:51:45 PDT 2024


_make_dirs currently can fail as _DIRS can be really long and thus go over
the MAX_ARG_STRLEN limit so it will fail with:
/bin/sh: Argument list too long

Lets avoid this by stripping the $(BUILDDIR) prefix and then restoring it.

Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 src/build.rules | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/build.rules b/src/build.rules
index acda88472..497580d88 100644
--- a/src/build.rules
+++ b/src/build.rules
@@ -80,7 +80,7 @@ endif
 _DIRS := $(BUILDDIR)/$(PROJ)
 .PHONY: _make_dirs
 _make_dirs:
-	@mkdir -p $(_DIRS)
+	@printf '$(BUILDDIR)/%s ' $(patsubst $(BUILDDIR)/%,%,$(_DIRS)) | xargs mkdir -p
 
 $(BUILDDIR)/$(PROJ)/src/%.o: $(ROOTDIR)src/%.c $(CONFIG_FILE) | _make_dirs
 	$(Q)$(CC) -c -o $@ $(CFLAGS) $<
-- 
2.44.0




More information about the Hostap mailing list