diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | config/binutils/binutils.in | 18 | ||||
-rw-r--r-- | config/binutils/binutils.in.2 | 3 | ||||
-rw-r--r-- | config/debug/gdb.in.gdbserver | 2 | ||||
-rw-r--r-- | config/debug/gdb.in.native | 1 | ||||
-rw-r--r-- | config/libc/glibc.in.2 | 2 | ||||
-rw-r--r-- | samples/armv6-nommu-linux-uclibcgnueabi/crosstool.config | 8 | ||||
-rw-r--r-- | scripts/build/debug/300-gdb.sh | 10 |
8 files changed, 24 insertions, 22 deletions
@@ -34,7 +34,7 @@ With crosstool-NG, you can learn precisely how each component is configured and crosstool-NG can build from generic, general purpose toolchains, to very specific and dedicated toolchains. Simply fill in specific values in the adequate options. -Of course, it doesn't prevent you from doing your home work first. You have to know with some degree of exactitude what your target is (archictecture, processor variant), what it will be used for (embedded, desktop, realtime), what degree of confidence you have with each component (stability, maintainability), and so on… +Of course, it doesn't prevent you from doing your home work first. You have to know with some degree of exactitude what your target is (architecture, processor variant), what it will be used for (embedded, desktop, realtime), what degree of confidence you have with each component (stability, maintainability), and so on… ## Features diff --git a/config/binutils/binutils.in b/config/binutils/binutils.in index e66c972f..695256aa 100644 --- a/config/binutils/binutils.in +++ b/config/binutils/binutils.in @@ -178,10 +178,14 @@ config BINUTILS_HAS_PLUGINS config BINUTILS_HAS_PKGVERSION_BUGURL bool -# Force using the BFD linker if needed -# This is the case for some C libraries (eg. glibc at least) and affected -# components can select this -config BINUTILS_FORCE_LD_BFD +# Force using the BFD linker if needed. There are two options: +# - For some C libraries (eg. glibc at least), BFD ld must be +# built and be selected by default. +# - For elf2flt, BFD ld must be the only linker built. +config BINUTILS_FORCE_LD_BFD_DEFAULT + bool + +config BINUTILS_FORCE_LD_BFD_ONLY bool choice @@ -198,7 +202,7 @@ config BINUTILS_LINKER_GOLD bool prompt "gold" depends on BINUTILS_GOLD_SUPPORT - depends on ! BINUTILS_FORCE_LD_BFD + depends on !BINUTILS_FORCE_LD_BFD_DEFAULT && !BINUTILS_FORCE_LD_BFD_ONLY select BINUTILS_GOLD_INSTALLED help gold is a new, optimised, multi-threaded linker with support @@ -209,6 +213,7 @@ config BINUTILS_LINKER_GOLD config BINUTILS_LINKER_LD_GOLD bool prompt "ld, gold" + depends on !BINUTILS_FORCE_LD_BFD_ONLY depends on BINUTILS_GOLD_SUPPORT select BINUTILS_GOLD_INSTALLED select BINUTILS_LINKER_BOTH @@ -221,10 +226,11 @@ config BINUTILS_LINKER_LD_GOLD config BINUTILS_LINKER_GOLD_LD bool prompt "gold, ld" + depends on !BINUTILS_FORCE_LD_BFD_ONLY depends on BINUTILS_GOLD_SUPPORT select BINUTILS_GOLD_INSTALLED select BINUTILS_LINKER_BOTH - select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD + select BINUTILS_LD_WRAPPER if BINUTILS_FORCE_LD_BFD_DEFAULT help Both the historical ld and the new gold linkers will be installed, with gold being the default linker used. diff --git a/config/binutils/binutils.in.2 b/config/binutils/binutils.in.2 index 78c2a885..227f3d81 100644 --- a/config/binutils/binutils.in.2 +++ b/config/binutils/binutils.in.2 @@ -2,9 +2,10 @@ if ARCH_BINFMT_FLAT -config ELF2FLT_REQUIRES_ZLIB +config ELF2FLT_REQUIRES def_bool y select ZLIB + select BINUTILS_FORCE_LD_BFD_ONLY comment "elf2flt" diff --git a/config/debug/gdb.in.gdbserver b/config/debug/gdb.in.gdbserver index feb3a0d6..2f5576b6 100644 --- a/config/debug/gdb.in.gdbserver +++ b/config/debug/gdb.in.gdbserver @@ -3,8 +3,8 @@ config GDB_GDBSERVER bool prompt "gdbserver" + default y depends on ! BARE_METAL - depends on CC_LANG_CXX || !GDB_7_12_or_later help Build and install a gdbserver for the target, to run on the target. diff --git a/config/debug/gdb.in.native b/config/debug/gdb.in.native index 634b13bd..915debd8 100644 --- a/config/debug/gdb.in.native +++ b/config/debug/gdb.in.native @@ -5,7 +5,6 @@ config GDB_NATIVE prompt "Native gdb" depends on ! BARE_METAL depends on ! BACKEND - depends on CC_LANG_CXX || !GDB_7_12_or_later select EXPAT_TARGET select NCURSES_TARGET help diff --git a/config/libc/glibc.in.2 b/config/libc/glibc.in.2 index 8c8bb82d..9d3c2e10 100644 --- a/config/libc/glibc.in.2 +++ b/config/libc/glibc.in.2 @@ -23,7 +23,7 @@ config LIBC_GLIBC_USE_PORTS config LIBC_glibc_family bool default y - select BINUTILS_FORCE_LD_BFD + select BINUTILS_FORCE_LD_BFD_DEFAULT config LIBC_GLIBC_EXTRA_CONFIG_ARRAY string diff --git a/samples/armv6-nommu-linux-uclibcgnueabi/crosstool.config b/samples/armv6-nommu-linux-uclibcgnueabi/crosstool.config index e3d625f6..398a550b 100644 --- a/samples/armv6-nommu-linux-uclibcgnueabi/crosstool.config +++ b/samples/armv6-nommu-linux-uclibcgnueabi/crosstool.config @@ -5,16 +5,10 @@ CT_TARGET_VENDOR="nommu" CT_KERNEL_linux=y # CT_SHARED_LIBS is not set # CT_KERNEL_LINUX_INSTALL_CHECK is not set -CT_BINUTILS_LINKER_LD_GOLD=y -CT_BINUTILS_GOLD_THREADS=y -CT_BINUTILS_LD_WRAPPER=y CT_BINUTILS_PLUGINS=y +CT_THREADS_NONE=y CT_CC_GCC_SHOW_LINARO=y CT_CC_GCC_DISABLE_PCH=y CT_CC_GCC_BUILD_ID=y CT_CC_GCC_LNK_HASH_STYLE_BOTH=y -CT_CC_LANG_CXX=y -CT_DEBUG_gdb=y -# CT_GDB_CROSS_PYTHON is not set -CT_GDB_GDBSERVER=y CT_GETTEXT=y diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh index 23709643..a5ac7f9d 100644 --- a/scripts/build/debug/300-gdb.sh +++ b/scripts/build/debug/300-gdb.sh @@ -1,7 +1,5 @@ # Build script for the gdb debug facility -if [ "${CT_GDB_CROSS}" = y -o "${CT_GDB_GDBSERVER}" = "y" -o "${CT_GDB_NATIVE}" = "y" ]; then - do_debug_gdb_get() { local linaro_version="" local linaro_series="" @@ -179,6 +177,9 @@ do_debug_gdb_build() { native_extra_config=("${extra_config[@]}") + # We may not have C++ language configured for target + native_extra_config+=("--disable-build-with-cxx") + # GDB on Mingw depends on PDcurses, not ncurses if [ "${CT_MINGW32}" != "y" ]; then native_extra_config+=("--with-curses") @@ -293,6 +294,9 @@ do_debug_gdb_build() { gdbserver_extra_config=("${extra_config[@]}") + # We may not have C++ language configured for target + gdbserver_extra_config+=("--disable-build-with-cxx") + if [ "${CT_GDB_GDBSERVER_HAS_IPA_LIB}" = "y" ]; then if [ "${CT_GDB_GDBSERVER_BUILD_IPA_LIB}" = "y" ]; then gdbserver_extra_config+=( --enable-inprocess-agent ) @@ -340,5 +344,3 @@ do_debug_gdb_build() { CT_EndStep fi } - -fi |