mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-04-19 00:26:55 +00:00
Merge pull request #443 from KirillSmirnov/gdb-native
debug/gdb: properly link with expat
This commit is contained in:
commit
f5a375e407
@ -69,13 +69,24 @@ if [ "${CT_LIBELF_TARGET}" = "y" ]; then
|
||||
|
||||
do_libelf_for_target() {
|
||||
local -a libelf_opts
|
||||
local prefix
|
||||
|
||||
CT_DoStep INFO "Installing libelf for the target"
|
||||
CT_mkdir_pushd "${CT_BUILD_DIR}/build-libelf-target-${CT_TARGET}"
|
||||
|
||||
case "${CT_TARGET}" in
|
||||
*-*-mingw*)
|
||||
prefix="/mingw"
|
||||
;;
|
||||
*)
|
||||
prefix="/usr"
|
||||
;;
|
||||
esac
|
||||
|
||||
libelf_opts+=( "destdir=${CT_SYSROOT_DIR}" )
|
||||
libelf_opts+=( "host=${CT_TARGET}" )
|
||||
libelf_opts+=( "prefix=/usr" )
|
||||
|
||||
libelf_opts+=( "prefix=${prefix}" )
|
||||
libelf_opts+=( "shared=y" )
|
||||
do_libelf_backend "${libelf_opts[@]}"
|
||||
|
||||
|
@ -43,12 +43,21 @@ fi
|
||||
if [ "${CT_EXPAT_TARGET}" = "y" ]; then
|
||||
do_expat_for_target() {
|
||||
local -a expat_opts
|
||||
local prefix
|
||||
|
||||
CT_DoStep INFO "Installing expat for target"
|
||||
CT_mkdir_pushd "${CT_BUILD_DIR}/build-expat-target-${CT_TARGET}"
|
||||
|
||||
expat_opts+=( "host=${CT_TARGET}" )
|
||||
expat_opts+=( "prefix=/usr" )
|
||||
case "${CT_TARGET}" in
|
||||
*-*-mingw*)
|
||||
prefix="/mingw"
|
||||
;;
|
||||
*)
|
||||
prefix="/usr"
|
||||
;;
|
||||
esac
|
||||
expat_opts+=( "prefix=${prefix}" )
|
||||
expat_opts+=( "destdir=${CT_SYSROOT_DIR}" )
|
||||
expat_opts+=( "static_build=y" )
|
||||
|
||||
|
@ -72,13 +72,23 @@ fi
|
||||
|
||||
if [ "${CT_NCURSES_TARGET}" = "y" ]; then
|
||||
do_ncurses_for_target() {
|
||||
local prefix
|
||||
|
||||
CT_DoStep INFO "Installing ncurses for target"
|
||||
CT_mkdir_pushd "${CT_BUILD_DIR}/build-ncurses-target-${CT_TARGET}"
|
||||
opts=("--without-sysmouse")
|
||||
[ "${CT_CC_LANG_CXX}" = "y" ] || opts+=("--without-cxx" "--without-cxx-binding")
|
||||
[ "${CT_CC_LANG_ADA}" = "y" ] || opts+=("--without-ada")
|
||||
case "${CT_TARGET}" in
|
||||
*-*-mingw*)
|
||||
prefix="/mingw"
|
||||
;;
|
||||
*)
|
||||
prefix="/usr"
|
||||
;;
|
||||
esac
|
||||
do_ncurses_backend host="${CT_TARGET}" \
|
||||
prefix="/usr" \
|
||||
prefix="${prefix}" \
|
||||
destdir="${CT_SYSROOT_DIR}" \
|
||||
"${opts[@]}"
|
||||
CT_Popd
|
||||
|
@ -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"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user