summaryrefslogtreecommitdiff
path: root/scripts/build/debug/300-gdb.sh
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2016-12-06 02:24:05 (GMT)
committerGitHub <noreply@github.com>2016-12-06 02:24:05 (GMT)
commitf5a375e4070e484a5fc196f1cb2014f528693ed9 (patch)
treeae42cf48cac90a24dcb4d8994173ddc1974b289d /scripts/build/debug/300-gdb.sh
parent4042269de621e166235308f139e89c92e379040d (diff)
parentee1c04378c471dfea04808963db78a91fc89d62e (diff)
Merge pull request #443 from KirillSmirnov/gdb-native
debug/gdb: properly link with expat
Diffstat (limited to 'scripts/build/debug/300-gdb.sh')
-rw-r--r--scripts/build/debug/300-gdb.sh23
1 files changed, 21 insertions, 2 deletions
diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh
index 3396836..ba13591 100644
--- a/scripts/build/debug/300-gdb.sh
+++ b/scripts/build/debug/300-gdb.sh
@@ -68,12 +68,19 @@ do_debug_gdb_build() {
cd "${CT_BUILD_DIR}/build-gdb-cross"
cross_extra_config=("${extra_config[@]}")
- cross_extra_config+=("--with-expat")
+
+ # For gdb-cross this combination of flags forces
+ # gdb configure to fall back to default '-lexpat' flag
+ # which is acceptable.
+ #
# NOTE: DO NOT USE --with-libexpat-prefix (until GDB configure is smarter)!!!
# It conflicts with a static build: GDB's configure script will find the shared
# version of expat and will attempt to link that, despite the -static flag.
# The link will fail, and configure will abort with "expat missing or unusable"
# message.
+ cross_extra_config+=("--with-expat")
+ cross_extra_config+=("--without-libexpat-prefix")
+
case "${CT_THREADS}" in
none) cross_extra_config+=("--disable-threads");;
*) cross_extra_config+=("--enable-threads");;
@@ -172,12 +179,24 @@ do_debug_gdb_build() {
native_extra_config+=("--with-curses")
fi
- native_extra_config+=("--with-expat")
+ # Target libexpat resides in sysroot and does not have
+ # any dependencies, so just passing '-lexpat' to gcc is enough.
+ #
+ # By default gdb configure looks for expat in '$prefix/lib'
+ # directory. In our case '$prefix/lib' resolves to '/usr/lib'
+ # where libexpat for build platform lives, which is
+ # unacceptable for cross-compiling.
+ #
+ # To prevent this '--without-libexpat-prefix' flag must be passed.
+ # Thus configure falls back to '-lexpat', which is exactly what we want.
+ #
# NOTE: DO NOT USE --with-libexpat-prefix (until GDB configure is smarter)!!!
# It conflicts with a static build: GDB's configure script will find the shared
# version of expat and will attempt to link that, despite the -static flag.
# The link will fail, and configure will abort with "expat missing or unusable"
# message.
+ native_extra_config+=("--with-expat")
+ native_extra_config+=("--without-libexpat-prefix")
CT_DoLog EXTRA "Configuring native gdb"