-
Notifications
You must be signed in to change notification settings - Fork 2
config_pass_vars_to_children_1
- Status: Merged for Binutils 2.40
- Branch:
config-pass-vars-to-children-1 - Tracking PR: #55 (view Pull Request and Diff)
- Mailing List:
- PATCH v1 (2022-09-15)
While investigating previous -Wstack-usage=262144 removal (on Clang) patch, I found something intresting.
Here's some excerpt from $(builddir)/bfd/config.log:
gcc: warning: @CPPFLAGS_FOR_BUILD@: linker input file unused because linking not done
gcc: error: @CPPFLAGS_FOR_BUILD@: linker input file not found: No such file or directory
gcc: warning: @CPPFLAGS_FOR_BUILD@: linker input file unused because linking not done
gcc: error: @CPPFLAGS_FOR_BUILD@: linker input file not found: No such file or directory
gcc: warning: @CPPFLAGS_FOR_BUILD@: linker input file unused because linking not done
gcc: error: @CPPFLAGS_FOR_BUILD@: linker input file not found: No such file or directory
This is because command like this is called:
gcc -E @CPPFLAGS_FOR_BUILD@ conftest.c
I found that this is because $(build)/Makefile passes CPPFLAGS_FOR_BUILD environment variable without substituting with AC_SUBST (should be placed in $(srcdir)/configure.ac).
Here's excerpt from $(builddir)/Makefile:
CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
THIS IS NOT $(srcdir)/Makefile.in (it's normal in Makefile.in but should be substituted while generating $(builddir)/Makefile).
I searched similar examples and found that following environment variables are unsubstituted in $(builddir)/Makefile and possibly used in subdirectories:
CPPFLAGS_FOR_BUILDDSYMUTILDSYMUTIL_FOR_BUILDDSYMUTIL_FOR_TARGETOTOOLOTOOL_FOR_TARGET
Note: There are other unsubstituted variables but I think they are not used by any subdirectories.
At least, CPPFLAGS_FOR_BUILD can be tested on my own.
For that, I think this simple patch would work.