diff options
author | Ruslan Kabatsayev <b7.10110111@gmail.com> | 2022-02-11 20:10:23 +0300 |
---|---|---|
committer | Andrew Burgess <aburgess@redhat.com> | 2022-02-22 14:42:06 +0000 |
commit | 6a8fe63330c922255a4ced4b6491d35f6c384bba (patch) | |
tree | f6f67d0c007e6659d1a17586ca80525c47dcc7a4 | |
parent | 955b0ef98ea757bad1b9be429e4b8d13689da13b (diff) | |
download | gdb-6a8fe63330c922255a4ced4b6491d35f6c384bba.zip gdb-6a8fe63330c922255a4ced4b6491d35f6c384bba.tar.gz gdb-6a8fe63330c922255a4ced4b6491d35f6c384bba.tar.bz2 |
gdb: fix detection of compilation and linking flags for source-highlight
Currently there are two problems with the detection of
source-highlight via pkg-config in GDB's configure script:
1. The LDFLAGS variable is used to pass the 'pkg-config --libs' output
to AC_LINK_IFELSE, which results in the "-L/some/path
-lsource-highlight" preceding the conftest.cpp, which can result in a
failure to find symbols referenced in conftest.cpp, if the linker is
using --as-needed by default.
2. The CFLAGS variable is used to pass the 'pkg-config --cflags'
output to AC_LINK_IFELSE. However, as the current language is C++,
AC_LINK_IFELSE will actuall use CXXFLAGS, not CFLAGS, so any flags
returned from pkg-config will not be seen.
This patch fixes both of these mistakes, allowing GDB to correctly
configure and build using source-highlight installed into a custom
prefix, e.g. ~/opt/gdb-git (because the system version of
source-highlight is too old).
-rwxr-xr-x | gdb/configure | 12 | ||||
-rw-r--r-- | gdb/configure.ac | 12 |
2 files changed, 12 insertions, 12 deletions
diff --git a/gdb/configure b/gdb/configure index e751edc..425bdb0 100755 --- a/gdb/configure +++ b/gdb/configure @@ -12148,10 +12148,10 @@ ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - save_CFLAGS="$CFLAGS" - save_LDFLAGS="$LDFLAGS" - CFLAGS="$CFLAGS $srchigh_pkg_cflags" - LDFLAGS="$LDFLAGS $srchigh_pkg_libs" + save_CXXFLAGS="$CXXFLAGS" + save_LIBS="$LIBS" + CXXFLAGS="$CXXFLAGS $srchigh_pkg_cflags" + LIBS="$LIBS $srchigh_pkg_libs" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <srchilite/sourcehighlight.h> @@ -12173,8 +12173,8 @@ else fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - CFLAGS="$save_CFLAGS" - LDFLAGS="$save_LDFLAGS" + CXXFLAGS="$save_CXXFLAGS" + LIBS="$save_LIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' diff --git a/gdb/configure.ac b/gdb/configure.ac index 5a380ce..c6fa19b 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -1242,10 +1242,10 @@ either use --disable-source-highlight or dnl # This situation can occur for instance when using a source highlight # library compiled with g++ 7.5.0 while building gdb with g++ 4.8.5. AC_LANG_PUSH(C++) - save_CFLAGS="$CFLAGS" - save_LDFLAGS="$LDFLAGS" - CFLAGS="$CFLAGS $srchigh_pkg_cflags" - LDFLAGS="$LDFLAGS $srchigh_pkg_libs" + save_CXXFLAGS="$CXXFLAGS" + save_LIBS="$LIBS" + CXXFLAGS="$CXXFLAGS $srchigh_pkg_cflags" + LIBS="$LIBS $srchigh_pkg_libs" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [#include <srchilite/sourcehighlight.h>], @@ -1255,8 +1255,8 @@ either use --disable-source-highlight or dnl [have_usable_source_highlight=yes], [have_usable_source_highlight=no] ) - CFLAGS="$save_CFLAGS" - LDFLAGS="$save_LDFLAGS" + CXXFLAGS="$save_CXXFLAGS" + LIBS="$save_LIBS" AC_LANG_POP(C++) if test "${have_usable_source_highlight}" = "yes"; then |