]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
generic: fix PATH_MAX macro redefined in exec-cmd.c on macOS 15.4 18530/head
authorGeorgi Valkov <gvalkov@gmail.com>
Fri, 18 Apr 2025 13:37:33 +0000 (16:37 +0300)
committerRobert Marko <robimarko@gmail.com>
Sat, 19 Apr 2025 10:05:42 +0000 (12:05 +0200)
Fix an error while building target/linux x64 on macOS 15.4 host,
due to the PATH_MAX macro being redefined:

mkdir -p /Volumes/test/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-6.6.86/tools/objtool && make O=/Volumes/test/openwrt/build_dir/target-x86_64_musl/linux-x86_64/linux-6.6.86 subdir=tools/objtool --no-print-directory -C objtool
exec-cmd.c:15:9: error: 'PATH_MAX' macro redefined [-Werror,-Wmacro-redefined]
   15 | #define PATH_MAX        4096
      |         ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/syslimits.h:103:9: note: previous definition is here
  103 | #define PATH_MAX                 1024   /* max bytes in pathname */
      |         ^

exec-cmd.c is compiled as part of objtool to run on the host, and
therefore host headers are used, where PATH_MAX is already defined.
Using an old OpenWRT snapshot from 2025-02-16, where linux-6.6.77
used to build correctly, does not help. Reverting from Xcode 16.3 to
16.2 does not help either.

Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18530
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/generic/hack-6.6/200-tools_portability.patch

index f016e641c63cecef995d311228b2e2b49f03ea56..e58b4db5bc1f07be8fb6d181324d9912f3f9a9f3 100644 (file)
@@ -61,6 +61,19 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #define __cold
  
  typedef __u16 __bitwise __le16;
+--- a/tools/lib/subcmd/exec-cmd.c
++++ b/tools/lib/subcmd/exec-cmd.c
+@@ -12,7 +12,10 @@
+ #include "subcmd-config.h"
+ #define MAX_ARGS      32
++
++#ifndef PATH_MAX
+ #define PATH_MAX      4096
++#endif
+ static const char *argv_exec_path;
+ static const char *argv0_path;
 --- a/tools/objtool/include/objtool/objtool.h
 +++ b/tools/objtool/include/objtool/objtool.h
 @@ -12,6 +12,7 @@