Skip to content

Commit

Permalink
tools/flex: respect STAGING_DIR_HOST
Browse files Browse the repository at this point in the history
flex currently leaks the path of m4 as found on the build host.
While it is possible to override this using the M4 environment
variable (which we always did for autotools based builds) when
using CMake or Ninja the M4 variable is not set.
One easy fix is to make flex take STAGING_DIR_HOST into account
and expect m4 there if that variable is set in the environment.

Signed-off-by: Daniel Golle <[email protected]>
  • Loading branch information
dangowrt committed Sep 24, 2024
1 parent d84fecf commit 72accd0
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions tools/flex/patches/300-m4-path.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
--- a/src/main.c
+++ b/src/main.c
@@ -213,6 +213,8 @@ int main (int argc, char *argv[])

void check_options (void)
{
+ const char * staging_dir = NULL;
+ char * m4_staging = NULL;
int i;
const char * m4 = NULL;

@@ -341,7 +343,10 @@ void check_options (void)

/* Setup the filter chain. */
output_chain = filter_create_int(NULL, filter_tee_header, headerfilename);
- if ( !(m4 = getenv("M4"))) {
+ if ( (staging_dir = getenv("STAGING_DIR_HOST"))) {
+ asprintf(&m4_staging, "%s/bin/m4", staging_dir);
+ m4 = m4_staging;
+ } else if ( !(m4 = getenv("M4"))) {
char *slash;
m4 = M4;
if ((slash = strrchr(M4, '/')) != NULL) {

0 comments on commit 72accd0

Please sign in to comment.