mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-24 06:56:40 +00:00
binutils: Allow gold to be statically linked
gold uses g++ to link which doesn't recognise -all-static. It appears as if -static should work for both libtool and g++ but for some reason it doesn't. Remove the restriction that gold can't be included in a static toolchain. When a static toolchain is requested pass --with-gold-ldflags=--static to configure. Finally build gold separately so it does not get the extra_make_flags which may contain -all-static. Signed-off-by: Chris Packham <judge.packham@gmail.com>
This commit is contained in:
parent
5d2b316093
commit
b6a4766d22
@ -17,7 +17,6 @@ config BINUTILS_GOLD_SUPPORT
|
|||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
depends on BINUTILS_GOLD_SUPPORTS_ARCH
|
depends on BINUTILS_GOLD_SUPPORTS_ARCH
|
||||||
depends on ! STATIC_TOOLCHAIN
|
|
||||||
|
|
||||||
# Force using the BFD linker if needed. There are two options:
|
# Force using the BFD linker if needed. There are two options:
|
||||||
# - For some C libraries (eg. glibc at least), BFD ld must be
|
# - For some C libraries (eg. glibc at least), BFD ld must be
|
||||||
|
@ -182,6 +182,16 @@ do_binutils_backend() {
|
|||||||
extra_config+=("--without-zstd")
|
extra_config+=("--without-zstd")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# gold links with CXXLINK/g++, not libtool, and does not understand
|
||||||
|
# -all-static
|
||||||
|
if [ "${static_build}" = "y" ]; then
|
||||||
|
case "${CT_BINUTILS_LINKERS_LIST}" in
|
||||||
|
*gold*)
|
||||||
|
extra_config+=("--with-gold-ldflags=--static")
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
|
CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
|
||||||
|
|
||||||
CT_DoExecLog CFG \
|
CT_DoExecLog CFG \
|
||||||
@ -211,6 +221,13 @@ do_binutils_backend() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
CT_DoLog EXTRA "Building binutils"
|
CT_DoLog EXTRA "Building binutils"
|
||||||
|
if [ "${static_build}" = "y" ]; then
|
||||||
|
case "${CT_BINUTILS_LINKERS_LIST}" in
|
||||||
|
*gold*)
|
||||||
|
CT_DoExecLog ALL make -C gold ${CT_JOBSFLAGS}
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
CT_DoExecLog ALL make "${extra_make_flags[@]}" ${CT_JOBSFLAGS}
|
CT_DoExecLog ALL make "${extra_make_flags[@]}" ${CT_JOBSFLAGS}
|
||||||
|
|
||||||
CT_DoLog EXTRA "Installing binutils"
|
CT_DoLog EXTRA "Installing binutils"
|
||||||
|
Loading…
Reference in New Issue
Block a user