Merge pull request #667 from stilor/cross-gdb-deps

cross-gdb: account for canadian/crossnative toolchains
This commit is contained in:
Alexey Neyman 2017-03-29 23:13:08 -07:00 committed by GitHub
commit a7edff1820
4 changed files with 17 additions and 12 deletions

View File

@ -66,8 +66,9 @@ config CC_GCC_STATIC_LIBSTDCXX
bool bool
prompt "Link libstdc++ statically into the gcc binary" prompt "Link libstdc++ statically into the gcc binary"
default y default y
depends on CONFIGURE_has_static_link depends on CONFIGURE_has_static_link || CANADIAN || CROSS_NATIVE
select WANTS_STATIC_LINK select WANTS_STATIC_LINK if CROSS || NATIVE
select WANTS_STATIC_LINK_CXX if CROSS || NATIVE
help help
Newer gcc versions require some c++ libraries. So statically Newer gcc versions require some c++ libraries. So statically
linking libstdc++ increases the likeliness that the gcc binary will linking libstdc++ increases the likeliness that the gcc binary will

View File

@ -17,8 +17,8 @@ if GDB_CROSS
config GDB_CROSS_STATIC config GDB_CROSS_STATIC
bool bool
prompt "Build a static cross gdb" prompt "Build a static cross gdb"
depends on CONFIGURE_has_static_link depends on CONFIGURE_has_static_link || CROSS_NATIVE || CANADIAN
select WANTS_STATIC_LINK select WANTS_STATIC_LINK if NATIVE || CROSS
help help
A static cross gdb can be useful if you debug on a machine that is A static cross gdb can be useful if you debug on a machine that is
not the one that is used to compile the toolchain. not the one that is used to compile the toolchain.
@ -38,8 +38,8 @@ config GDB_CROSS_PYTHON
bool bool
prompt "Enable python scripting" prompt "Enable python scripting"
depends on GDB_HAS_PYTHON depends on GDB_HAS_PYTHON
depends on ! GDB_CROSS_STATIC depends on !GDB_CROSS_STATIC
default y default y if !CROSS_NATIVE && !CANADIAN
help help
Say 'y' if you want to use Python scripting inside gdb. Say 'y' if you want to use Python scripting inside gdb.
Say 'n' if you do not want to. Say 'n' if you do not want to.

View File

@ -47,14 +47,18 @@ config SYSROOT_DIR_PREFIX
In fact, the sysroot path is constructed as: In fact, the sysroot path is constructed as:
${CT_PREFIX_DIR}/${CT_TARGET}/${CT_SYSROOT_DIR_PREFIX}/${CT_SYSROOT_NAME} ${CT_PREFIX_DIR}/${CT_TARGET}/${CT_SYSROOT_DIR_PREFIX}/${CT_SYSROOT_NAME}
# FIXME: the name is misleading, it is only checking if we want the build machine
# to support static linking.
config WANTS_STATIC_LINK config WANTS_STATIC_LINK
bool bool
config WANTS_STATIC_LINK_CXX
bool
config STATIC_TOOLCHAIN config STATIC_TOOLCHAIN
bool bool
prompt "Build Static Toolchain" prompt "Build Static Toolchain"
depends on CONFIGURE_has_static_link depends on CONFIGURE_has_static_link
select WANTS_STATIC_LINK select WANTS_STATIC_LINK if NATIVE || CROSS
help help
Build static host binaries. Build static host binaries.

View File

@ -563,18 +563,18 @@ if [ -z "${CT_RESTART}" ]; then
rm -f "${gccout}" rm -f "${gccout}"
CT_EndStep CT_EndStep
# These tests are only enabled if we need static linking on the *build*
if [ "${CT_WANTS_STATIC_LINK}" = "y" ]; then if [ "${CT_WANTS_STATIC_LINK}" = "y" ]; then
CT_DoStep DEBUG "Checking that gcc can compile a trivial statically linked program (CT_WANTS_STATIC_LINK)" CT_DoStep DEBUG "Checking that gcc can compile a trivial statically linked program (CT_WANTS_STATIC_LINK)"
CT_DoLog DEBUG "You may need to ensure that static libraries such as libc.a are installed on your system" CT_DoLog DEBUG "You may need to ensure that static libraries such as libc.a are installed on your system"
CT_DoExecLog DEBUG "${CT_HOST}-gcc" ${CT_CFLAGS_FOR_HOST} ${CT_LDFLAGS_FOR_HOST} "${testc}" -static -o "${gccout}" CT_DoExecLog DEBUG "${CT_HOST}-gcc" ${CT_CFLAGS_FOR_BUILD} ${CT_LDFLAGS_FOR_BUILD} "${testc}" -static -o "${gccout}"
rm -f "${gccout}" rm -f "${gccout}"
CT_EndStep CT_EndStep
fi fi
if [ "${CT_WANTS_STATIC_LINK_CXX}" = "y" ]; then
if [ "${CT_CC_GCC_STATIC_LIBSTDCXX}" = "y" ]; then CT_DoStep DEBUG "Checking that gcc can statically link libstdc++ (CT_WANTS_STATIC_LINK_CXX)"
CT_DoStep DEBUG "Checking that gcc can statically link libstdc++ (CT_CC_GCC_STATIC_LIBSTDCXX)"
CT_DoLog DEBUG "You may need to ensure that libstdc++.a is installed on your system" CT_DoLog DEBUG "You may need to ensure that libstdc++.a is installed on your system"
CT_DoExecLog DEBUG "${CT_HOST}-gcc" ${CT_CFLAGS_FOR_HOST} ${CT_LDFLAGS_FOR_HOST} "${testc}" -static -lstdc++ -o "${gccout}" CT_DoExecLog DEBUG "${CT_HOST}-gcc" ${CT_CFLAGS_FOR_BUILD} ${CT_LDFLAGS_FOR_BUILD} "${testc}" -static -lstdc++ -o "${gccout}"
rm -f "${gccout}" rm -f "${gccout}"
CT_EndStep CT_EndStep
fi fi