[openwrt/openwrt] tools/bison: hardcode path to m4 with STAGING_DIR_HOST

LEDE Commits lede-commits at lists.infradead.org
Thu Apr 25 14:10:30 PDT 2024


robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/41bc16dcc4594cd85fb87942032dcbec0ade7068

commit 41bc16dcc4594cd85fb87942032dcbec0ade7068
Author: Michael Pratt <mcpratt at pm.me>
AuthorDate: Mon Apr 1 15:51:16 2024 -0400

    tools/bison: hardcode path to m4 with STAGING_DIR_HOST
    
    Force bison to ignore the M4 environment variable and hardcode it to the
    locally built m4 during build operations using the relocatable path
    variable STAGING_DIR_HOST.
    
    This allows bison to continue to function while we are forcefully avoiding
    autoreconf and other autoconf and automake-like operations by giving a
    fake path to m4 with the M4 environment variable.
    
    The specific path can still be overridden independently from the
    environment within the line of invocation that runs bison by setting
    STAGING_DIR_HOST within the command, so document this in the help printout.
    
    Tested-by: Georgi Valkov <gvalkov at gmail.com> # MacOS
    Signed-off-by: Michael Pratt <mcpratt at pm.me>
    Signed-off-by: Tony Ambardar <itugrok at yahoo.com>
---
 tools/bison/patches/000-relocatable.patch | 43 +++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/tools/bison/patches/000-relocatable.patch b/tools/bison/patches/000-relocatable.patch
new file mode 100644
index 0000000000..b98d7a86dc
--- /dev/null
+++ b/tools/bison/patches/000-relocatable.patch
@@ -0,0 +1,43 @@
+--- a/src/files.c
++++ b/src/files.c
+@@ -560,9 +560,9 @@ pkgdatadir (void)
+ char const *
+ m4path (void)
+ {
+-  char const *m4 = getenv ("M4");
++  char const *m4 = getenv ("STAGING_DIR_HOST");
+   if (m4)
+-    return m4;
++    return strcat(getenv ("STAGING_DIR_HOST"), "/bin/m4");
+ 
+   /* We don't use relocate2() to store the temporary buffer and re-use
+      it, because m4path() is only called once.  */
+--- a/src/getargs.c
++++ b/src/getargs.c
+@@ -373,11 +373,13 @@ usage (int status)
+          A --long option is required.
+          Otherwise, add exceptions to ../build-aux/cross-options.pl.  */
+ 
+-      printf (_("Usage: %s [OPTION]... FILE\n"), program_name);
++      printf (_("Usage: STAGING_DIR_HOST=... %s [OPTION]... FILE\n"), program_name);
+       fputs (_("\
+ Generate a deterministic LR or generalized LR (GLR) parser employing\n\
+ LALR(1), IELR(1), or canonical LR(1) parser tables.\n\
+ \n\
++Environment Variable STAGING_DIR_HOST controls path to m4\n\
++\n\
+ "), stdout);
+ 
+       fputs (_("\
+@@ -450,6 +452,11 @@ Output Files:\n\
+   -M, --file-prefix-map=OLD=NEW replace prefix OLD with NEW when writing file paths\n\
+                                 in output files\n\
+ "), stdout);
++
++      fputs (_("\
++Environment Variables:\n\
++  STAGING_DIR_HOST              Path to m4 is [STAGING_DIR_HOST]/bin/m4\n\
++"), stdout);
+       putc ('\n', stdout);
+ 
+       argmatch_report_usage (stdout);




More information about the lede-commits mailing list