hostapd: replace "argument list too long" fix with a simpler version
Less convoluted and more robust Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
6e391325af
commit
7b9996d107
2 changed files with 23 additions and 27 deletions
|
@ -0,0 +1,23 @@
|
||||||
|
From: Felix Fietkau <nbd@nbd.name>
|
||||||
|
Date: Thu, 4 Apr 2024 12:59:41 +0200
|
||||||
|
Subject: [PATCH] build: de-duplicate _DIRS before calling mkdir
|
||||||
|
|
||||||
|
If the build path is long, the contents of the _DIRS variable can be very long,
|
||||||
|
since it repeats the same directories very often.
|
||||||
|
In some cases, this has triggered an "Argument list too long" build error.
|
||||||
|
|
||||||
|
Suggested-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
|
||||||
|
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/src/build.rules
|
||||||
|
+++ b/src/build.rules
|
||||||
|
@@ -80,7 +80,7 @@ endif
|
||||||
|
_DIRS := $(BUILDDIR)/$(PROJ)
|
||||||
|
.PHONY: _make_dirs
|
||||||
|
_make_dirs:
|
||||||
|
- @mkdir -p $(_DIRS)
|
||||||
|
+ @mkdir -p $(sort $(_DIRS))
|
||||||
|
|
||||||
|
$(BUILDDIR)/$(PROJ)/src/%.o: $(ROOTDIR)src/%.c $(CONFIG_FILE) | _make_dirs
|
||||||
|
$(Q)$(CC) -c -o $@ $(CFLAGS) $<
|
|
@ -1,27 +0,0 @@
|
||||||
From beeef79701082a82b2581a674e702ea60a358ce7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Robert Marko <robimarko@gmail.com>
|
|
||||||
Date: Sun, 24 Mar 2024 20:47:06 +0100
|
|
||||||
Subject: [PATCH] build: make _make_dirs robust against too long argument error
|
|
||||||
|
|
||||||
_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@gmail.com>
|
|
||||||
---
|
|
||||||
src/build.rules | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
--- 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) $<
|
|
Loading…
Reference in a new issue