Skip to content

Commit

Permalink
Merge pull request #667 from stilor/cross-gdb-deps
Browse files Browse the repository at this point in the history
cross-gdb: account for canadian/crossnative toolchains
  • Loading branch information
stilor committed Mar 30, 2017
2 parents 54a4975 + 6af04d8 commit a7edff1
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 12 deletions.
5 changes: 3 additions & 2 deletions config/cc/gcc.in.2
Expand Up @@ -66,8 +66,9 @@ config CC_GCC_STATIC_LIBSTDCXX
bool
prompt "Link libstdc++ statically into the gcc binary"
default y
depends on CONFIGURE_has_static_link
select WANTS_STATIC_LINK
depends on CONFIGURE_has_static_link || CANADIAN || CROSS_NATIVE
select WANTS_STATIC_LINK if CROSS || NATIVE
select WANTS_STATIC_LINK_CXX if CROSS || NATIVE
help
Newer gcc versions require some c++ libraries. So statically
linking libstdc++ increases the likeliness that the gcc binary will
Expand Down
8 changes: 4 additions & 4 deletions config/debug/gdb.in.cross
Expand Up @@ -17,8 +17,8 @@ if GDB_CROSS
config GDB_CROSS_STATIC
bool
prompt "Build a static cross gdb"
depends on CONFIGURE_has_static_link
select WANTS_STATIC_LINK
depends on CONFIGURE_has_static_link || CROSS_NATIVE || CANADIAN
select WANTS_STATIC_LINK if NATIVE || CROSS
help
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.
Expand All @@ -38,8 +38,8 @@ config GDB_CROSS_PYTHON
bool
prompt "Enable python scripting"
depends on GDB_HAS_PYTHON
depends on ! GDB_CROSS_STATIC
default y
depends on !GDB_CROSS_STATIC
default y if !CROSS_NATIVE && !CANADIAN
help
Say 'y' if you want to use Python scripting inside gdb.
Say 'n' if you do not want to.
Expand Down
6 changes: 5 additions & 1 deletion config/toolchain.in
Expand Up @@ -47,14 +47,18 @@ config SYSROOT_DIR_PREFIX
In fact, the sysroot path is constructed as:
${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
bool
config WANTS_STATIC_LINK_CXX
bool

config STATIC_TOOLCHAIN
bool
prompt "Build Static Toolchain"
depends on CONFIGURE_has_static_link
select WANTS_STATIC_LINK
select WANTS_STATIC_LINK if NATIVE || CROSS
help
Build static host binaries.

Expand Down
10 changes: 5 additions & 5 deletions scripts/crosstool-NG.sh.in
Expand Up @@ -563,18 +563,18 @@ if [ -z "${CT_RESTART}" ]; then
rm -f "${gccout}"
CT_EndStep

# These tests are only enabled if we need static linking on the *build*
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_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}"
CT_EndStep
fi

if [ "${CT_CC_GCC_STATIC_LIBSTDCXX}" = "y" ]; then
CT_DoStep DEBUG "Checking that gcc can statically link libstdc++ (CT_CC_GCC_STATIC_LIBSTDCXX)"
if [ "${CT_WANTS_STATIC_LINK_CXX}" = "y" ]; then
CT_DoStep DEBUG "Checking that gcc can statically link libstdc++ (CT_WANTS_STATIC_LINK_CXX)"
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}"
CT_EndStep
fi
Expand Down

0 comments on commit a7edff1

Please sign in to comment.