Bug 4988

Summary: flex and m4 problems
Product: buildroot Reporter: Christoph Schulz <develop>
Component: OtherAssignee: unassigned
Status: RESOLVED FIXED    
Severity: normal CC: buildroot
Priority: P5    
Version: 2012.02   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Host: Target:
Build:
Attachments: adds BR2_PACKAGE_M4 as dependency
fixes the path to the m4 tool used to /usr/bin/m4
fixes cross-compiling issues with flex and m4

Description Christoph Schulz 2012-03-27 09:38:06 UTC
Created attachment 4196 [details]
adds BR2_PACKAGE_M4 as dependency

Hello,

there is a problem installing flex to the target area. flex ultimatively depends on m4 at run-time (see [1]), but this is not accounted for in the buildroot's flex.mk. Worse, the flex binary includes a fully qualified path to the host area's m4 (see main.c and the use of the M4 define, set in config.h). This is wrong for both flex installed to the staging area and flex installed to the target area.

I attached three patches to solve these problems. The first patch (Config.in.diff) adds BR2_PACKAGE_M4 to flex/Config.in. The second patch (flex.mk.diff) uses the M4 environment variable to force the configure script not to look for the host's m4 tool but to assume /usr/bin/m4. The last patch (flex-2.5.35-fix-cross-compiling.patch) disables checking the features of the cross m4 and it prevents the tools from being built as they reference the target m4 tool in an incompatible way.

Regards,

Christoph Schulz

[1] http://flex.sourceforge.net/manual/M4-Dependency.html
Comment 1 Christoph Schulz 2012-03-27 09:38:59 UTC
Created attachment 4202 [details]
fixes the path to the m4 tool used to /usr/bin/m4
Comment 2 Christoph Schulz 2012-03-27 09:39:35 UTC
Created attachment 4208 [details]
fixes cross-compiling issues with flex and m4
Comment 3 Thomas Petazzoni 2013-05-26 14:12:49 UTC
Thanks, I've adapted your patches 1 and 2 to the latest Buildroot (after doing some minor improvements). However, your patch 3 was not necessary here. Maybe some other change in flex had fixed the problem.

I'm marking the bug as fixed, I will send the patch later today on the mailing list.