This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH][COMMITTED] Fix pr 17367
- From: Doug Evans <xdje42 at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Tue, 09 Sep 2014 21:22:27 -0700
- Subject: [PATCH][COMMITTED] Fix pr 17367
- Authentication-results: sourceware.org; auth=none
Hi.
This patch fixes PR 17367.
https://sourceware.org/bugzilla/show_bug.cgi?id=17367
Guile 2.2 now compiles to ELF files, and I was noticing gdb complaining
when starting up.
Exception caught while booting Guile.
Error in function "load-thunk-from-memory":
not an ELF file
./gdb: warning: Could not complete Guile gdb module initialization from:
/hack/gnu/sourceware/gdb-guile/b-sigchld-prep-git-guile-gc74/gdb/data-directory/guile/gdb/boot.scm.
I traced this to the wrong guild program being used.
guild should come from the specified guile distribution,
but /bin/guild was being used instead (which is guile 2.0).
Regression tested on amd64-linux with guile 2.0.11 and guile trunk.
2014-09-09 Doug Evans <xdje42@gmail.com>
PR guile/17367
* acinclude.m4 (GDB_GUILE_PROGRAM_NAMES): Pass guile version as
last parameter to pkg-config, not first.
* configure.ac: Pass --with-guile provided pkg-config path to
GDB_GUILE_PROGRAM_NAMES.
* configure: Regenerate.
diff --git a/gdb/acinclude.m4 b/gdb/acinclude.m4
index 2b46f73..3ff5155 100644
--- a/gdb/acinclude.m4
+++ b/gdb/acinclude.m4
@@ -478,14 +478,14 @@ dnl similar to Guile's 'GUILE_PROGS' macro.)
AC_DEFUN([GDB_GUILE_PROGRAM_NAMES], [
AC_CACHE_CHECK([for the absolute file name of the 'guild' command],
[ac_cv_guild_program_name],
- [ac_cv_guild_program_name="`$1 $2 --variable guild`"
+ [ac_cv_guild_program_name="`$1 --variable guild $2`"
# In Guile up to 2.0.11 included, guile-2.0.pc would not define
# the 'guild' and 'bindir' variables. In that case, try to guess
# what the program name is, at the risk of getting it wrong if
# Guile was configured with '--program-suffix' or similar.
if test "x$ac_cv_guild_program_name" = "x"; then
- guile_exec_prefix="`$1 $2 --variable exec_prefix`"
+ guile_exec_prefix="`$1 --variable exec_prefix $2`"
ac_cv_guild_program_name="$guile_exec_prefix/bin/guild"
fi
])
diff --git a/gdb/configure.ac b/gdb/configure.ac
index ab7b1c2..4f5fb7b 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1143,8 +1143,9 @@ dnl It could be a shell script. It is invoked as:
dnl pkg-config --exists $version
dnl pkg-config --cflags $version
dnl pkg-config --libs $version
-dnl $version will be the default guile version (currently guile-2.0),
-dnl but the program is free to ignore this.
+dnl pkg-config --variable guild $version
+dnl The script will be called with $version having each value in
+dnl $try_guile_versions until --exists indicates success.
AC_ARG_WITH(guile,
AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]),
@@ -1196,7 +1197,14 @@ esac
if test "${have_libguile}" != no; then
dnl Get the name of the 'guild' program.
- GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
+ case "${with_guile}" in
+ [[\\/]]* | ?:[[\\/]]*)
+ GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"])
+ ;;
+ *)
+ GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
+ ;;
+ esac
dnl Make sure guild can handle this host.
GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm])