This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: wrong bfd recognized


On 02/07/2012 08:15 PM, Pedro Alves wrote:
> On 12/13/2011 03:13 PM, Luca Pizzamiglio wrote:
>> +++ gdb/configure.ac	2011-12-13 15:34:08.559285673 +0100
>> @@ -1854,7 +1854,7 @@
>>  OLD_LDFLAGS=$LDFLAGS
>>  OLD_LIBS=$LIBS
>>  CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
>> -LDFLAGS="$LDFLAGS -L../bfd -L../libiberty"
>> +LDFLAGS="-L../bfd -L../libiberty $LDFLAGS"
> 
> If you set LDFLAGS to -L/foo/lib , you presumably also set
> CFLAGS to -I/foo/include .  In that case, after the patch, if there's a libbfd
> in /foo/, you'll run the test with gdb's bfd, but compile it against e.g., the
> bfd.h from /foo/include.  You may not see this happen with /usr/local/include
> because gcc usually ignores -I/usr/local/include as being a duplicate of a
> system header path.
> 
> IOW, it'd make sense to also do:
> 
> - CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
> + CFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CFLAGS"
> 

I'm applying this.

2012-02-10  Pedro Alves  <palves@redhat.com>

	* configure.ac (HAVE_ELF test): Put the old CFLAGS at the end of
	the test CFLAGS.
	* configure: Regenerate.

---

 gdb/configure    |    5 ++++-
 gdb/configure.ac |    5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/gdb/configure b/gdb/configure
index 11c044c..2566410 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -15320,7 +15320,10 @@ esac
 OLD_CFLAGS=$CFLAGS
 OLD_LDFLAGS=$LDFLAGS
 OLD_LIBS=$LIBS
-CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
+# Put the old CFLAGS/LDFLAGS last, in case the user's (C|LD)FLAGS
+# points somewhere with bfd, with -I/foo/lib and -L/foo/lib.  We
+# always want our bfd.
+CFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CFLAGS"
 LDFLAGS="-L../bfd -L../libiberty $LDFLAGS"
 intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 36da463..1b11adb 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1908,7 +1908,10 @@ AC_SUBST(WIN32LIBS)
 OLD_CFLAGS=$CFLAGS
 OLD_LDFLAGS=$LDFLAGS
 OLD_LIBS=$LIBS
-CFLAGS="$CFLAGS -I${srcdir}/../include -I../bfd -I${srcdir}/../bfd"
+# Put the old CFLAGS/LDFLAGS last, in case the user's (C|LD)FLAGS
+# points somewhere with bfd, with -I/foo/lib and -L/foo/lib.  We
+# always want our bfd.
+CFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CFLAGS"
 LDFLAGS="-L../bfd -L../libiberty $LDFLAGS"
 intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
 # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]