[PATCH] binutils: put DEBUGINFOD_CFLAGS in AM_CFLAGS

Simon Marchi simon.marchi@efficios.com
Tue Nov 2 18:35:05 GMT 2021


I build debuginfod manually and install it under /opt/debuginfod, then
use:

    $ export PKG_CONFIG_PATH=/opt/debuginfod/lib/pkgconfig

... to have the build system find the library.  It finds it fine, but
then DEBUGINFOD_CFLAGS is not passed anywhere, which results in:

    $ make V=1 dwarf.o
    depbase=`echo dwarf.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    ccache gcc-11 -DHAVE_CONFIG_H -I. -I/home/smarchi/src/binutils-gdb/binutils  -I. -I/home/smarchi/src/binutils-gdb/binutils -I../bfd -I/home/smarchi/src/binutils-gdb/binutils/../bfd -I/home/smarchi/src/binutils-gdb/binutils/../include -DLOCALEDIR="\"/usr/share/locale\"" -Dbin_dummy_emulation=bin_vanilla_emulation  -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wstack-usage=262144 -Werror -I/home/smarchi/src/binutils-gdb/binutils/../zlib -g3 -O0 -fdiagnostics-color=always -fmax-errors=1 -fsanitize=address   -MT dwarf.o -MD -MP -MF $depbase.Tpo -c -o dwarf.o /home/smarchi/src/binutils-gdb/binutils/dwarf.c &&\
    mv -f $depbase.Tpo $depbase.Po
    /home/smarchi/src/binutils-gdb/binutils/dwarf.c:36:10: fatal error: elfutils/debuginfod.h: No such file or directory
       36 | #include <elfutils/debuginfod.h>
          |          ^~~~~~~~~~~~~~~~~~~~~~~

I presume that everybody using debuginfod has it in a default include
path, or puts the right -I in CFLAGS.  But that should not be necessary
with pkg-config.

Fix this by putting DEBUGINFOD_CFLAGS in AM_CFLAGS.  I think it would be
a bit better to only include DEBUGINFOD_CFLAGS in readelf's and
objdump's CFLAGS, but I couldn't get that to work, because of the
special build rule for objdump.c (if somebody wants to try it, please go
ahead).

binutils/ChangeLog:

	* Makefile.am (DEBUGINFOD_CFLAGS): New.
	(DEBUGINFOD_LIBS): Move up.
	(AM_CFLAGS): Add DEBUGINFOD_CFLAGS.

Change-Id: Ic92eeb3277e51f3b4ce650750d3fe4c10e097a15
---
 binutils/Makefile.am | 7 ++++---
 binutils/Makefile.in | 2 +-
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/binutils/Makefile.am b/binutils/Makefile.am
index 00416cb635e..93cf85a9034 100644
--- a/binutils/Makefile.am
+++ b/binutils/Makefile.am
@@ -46,15 +46,16 @@ am__skipyacc =
 ZLIB = @zlibdir@ -lz
 ZLIBINC = @zlibinc@
 
+DEBUGINFOD_CFLAGS = @DEBUGINFOD_CFLAGS@
+DEBUGINFOD_LIBS = @DEBUGINFOD_LIBS@
+
 WARN_CFLAGS = @WARN_CFLAGS@
 WARN_CFLAGS_FOR_BUILD = @WARN_CFLAGS_FOR_BUILD@
 NO_WERROR = @NO_WERROR@
-AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
+AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) $(DEBUGINFOD_CFLAGS)
 AM_CFLAGS_FOR_BUILD = $(WARN_CFLAGS_FOR_BUILD) $(ZLIBINC)
 LIBICONV = @LIBICONV@
 
-DEBUGINFOD_LIBS = @DEBUGINFOD_LIBS@
-
 # these two are almost the same program
 AR_PROG=ar
 RANLIB_PROG=ranlib
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index bed8fef64d8..5664d65078c 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -582,7 +582,7 @@ am__skipyacc =
 # case both are empty.
 ZLIB = @zlibdir@ -lz
 ZLIBINC = @zlibinc@
-AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC)
+AM_CFLAGS = $(WARN_CFLAGS) $(ZLIBINC) $(DEBUGINFOD_CFLAGS)
 AM_CFLAGS_FOR_BUILD = $(WARN_CFLAGS_FOR_BUILD) $(ZLIBINC)
 
 # these two are almost the same program
-- 
2.33.0



More information about the Binutils mailing list