summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/comp_tools/bison.in1
-rw-r--r--config/comp_tools/make.in7
-rw-r--r--config/configure.in.in15
-rw-r--r--config/debug/gdb.in18
-rw-r--r--config/debug/gdb.in.gdbserver71
-rw-r--r--config/debug/gdb.in.native46
-rw-r--r--config/libc/glibc.in31
7 files changed, 108 insertions, 81 deletions
diff --git a/config/comp_tools/bison.in b/config/comp_tools/bison.in
new file mode 100644
index 0000000..b0dc9e1
--- /dev/null
+++ b/config/comp_tools/bison.in
@@ -0,0 +1 @@
+# GNU bison
diff --git a/config/comp_tools/make.in b/config/comp_tools/make.in
index 8d0ac29..ca7996b 100644
--- a/config/comp_tools/make.in
+++ b/config/comp_tools/make.in
@@ -3,6 +3,7 @@
## default y if !CONFIGURE_has_make_3_81_or_newer
config MAKE_GMAKE_SYMLINK
- bool
- prompt "Add gmake symlink to companion gnu/make"
- depends on COMP_TOOLS_MAKE
+ bool "Create 'gmake' symlink"
+
+config MAKE_GNUMAKE_SYMLINK
+ bool "Create 'gnumake' symlink"
diff --git a/config/configure.in.in b/config/configure.in.in
index 49fdb2e..e042019 100644
--- a/config/configure.in.in
+++ b/config/configure.in.in
@@ -3,6 +3,9 @@
config CONFIGURE_has_static_link
@KCONFIG_static_link@
+config CONFIGURE_has_cxx11
+ @KCONFIG_has_cxx11@
+
config CONFIGURE_has_lzip
@KCONFIG_lzip@
@@ -15,6 +18,9 @@ config CONFIGURE_has_curl
config CONFIGURE_has_make_3_81_or_newer
@KCONFIG_make_3_81_or_newer@
+config CONFIGURE_has_make_4_0_or_newer
+ @KCONFIG_make_4_0_or_newer@
+
config CONFIGURE_has_libtool_2_4_or_newer
@KCONFIG_libtool_2_4_or_newer@
@@ -33,6 +39,15 @@ config CONFIGURE_has_automake_1_15_or_newer
config CONFIGURE_has_gnu_m4_1_4_12_or_newer
@KCONFIG_gnu_m4_1_4_12_or_newer@
+config CONFIGURE_has_python_3_4_or_newer
+ @KCONFIG_python_3_4_or_newer@
+
+config CONFIGURE_has_bison_2_7_or_newer
+ @KCONFIG_bison_2_7_or_newer@
+
+config CONFIGURE_has_python
+ @KCONFIG_python@
+
config CONFIGURE_has_dtc
@KCONFIG_dtc@
diff --git a/config/debug/gdb.in b/config/debug/gdb.in
index a9fab10..7fc539e 100644
--- a/config/debug/gdb.in
+++ b/config/debug/gdb.in
@@ -4,7 +4,6 @@
source "config/debug/gdb.in.cross"
source "config/debug/gdb.in.native"
-source "config/debug/gdb.in.gdbserver"
config GDB_HAS_PKGVERSION_BUGURL
bool
@@ -24,3 +23,20 @@ config GDB_INSTALL_GDBINIT
config GDB_HAS_DISABLE_CXX_BUILD
def_bool y
depends on GDB_7_12_or_later && !GDB_8_0_or_later
+
+# GDB 8.0 requires not just any C++, but recent enough to support C++11.
+# Yes, in 2019 there are still LTS systems still lacking such support.
+# I am looking at you, CentOS 6: no cookie for you, use an older GDB.
+config GDB_DEP_CXX11
+ def_bool y
+ depends on !CONFIGURE_has_cxx11
+ select GDB_REQUIRE_older_than_8_0
+
+config GDB_HAS_IPA_LIB
+ def_bool y
+ depends on GDB_7_2_or_later
+
+# Does GDB need ps_get_thread_area with const qualifier?
+config GDB_CONST_GET_THREAD_AREA
+ bool
+ default y if GDB_older_than_7_12
diff --git a/config/debug/gdb.in.gdbserver b/config/debug/gdb.in.gdbserver
deleted file mode 100644
index d7f1bb8..0000000
--- a/config/debug/gdb.in.gdbserver
+++ /dev/null
@@ -1,71 +0,0 @@
-# Menu for the native gdbserver
-
-config GDB_GDBSERVER
- bool
- prompt "gdbserver"
- default y
- depends on ! BARE_METAL
- select LIBC_UCLIBC_WCHAR if LIBC_UCLIBC && GDB_8_0_or_later
- help
- Build and install a gdbserver for the target, to run on the target.
-
-if GDB_GDBSERVER
-
-config GDB_GDBSERVER_HAS_IPA_LIB
- bool
- depends on GDB_7_2_or_later
- default y
-
-config GDB_GDBSERVER_STATIC
- bool
- prompt "Build a static gdbserver"
- depends on EXPERIMENTAL
- help
- In case you have trouble with dynamic loading of shared libraries,
- you will find that a static gdbserver comes in handy.
-
- However, it has been noticed at least on x86 that enabling this
- option produces an invalid gdbserver binary. It is linked with
- "-static -Wl,--dynamic-list=..." which
- # (a) requests invalid program interpreter
- # (b) crashes glibc/uClibc-ng and does not work with musl
- # See https://sourceware.org/ml/libc-alpha/2017-03/msg00267.html
-
- It is possible it would work with other architectures, hence it is
- not completely removed. Use with care and report to the mailing list
- if the resulting gdbserver works.
-
- For further details, see:
- https://sourceware.org/bugzilla/show_bug.cgi?id=19617
- https://sourceware.org/bugzilla/show_bug.cgi?id=21086
-
-config GDB_GDBSERVER_STATIC_LIBSTDCXX
- bool
- prompt "Link against static libstdc+++"
- depends on !GDB_GDBSERVER_STATIC
- default n
- help
- Say 'y' if you do not want gdbserver to require libstdc++.so on the
- target.
-
-config GDB_GDBSERVER_BUILD_IPA_LIB
- bool
- prompt "Build the IPA library"
- depends on GDB_GDBSERVER_HAS_IPA_LIB && !GDB_GDBSERVER_STATIC
- help
- gdbserver >= 7.2 comes with an optional library to use tracepoints,
- the In Process Agent (IPA) library, libinproctrace.so.
-
- Say 'y' if you indend to use tracepoints when debugging your
- programs with gdbserver.
-
- Note: Currently, building this library is not possible when the
- gdbserver is built statically. This is a limitation in
- crosstool-NG, so do not bug upstream about it...
-
-endif # GDB_GDBSERVER
-
-if BARE_METAL
-comment "In bare-metal, you'll need to "
-comment "provide your own gdbserver stub."
-endif # BARE_METAL
diff --git a/config/debug/gdb.in.native b/config/debug/gdb.in.native
index 48c8575..1ee8ad1 100644
--- a/config/debug/gdb.in.native
+++ b/config/debug/gdb.in.native
@@ -1,4 +1,4 @@
-# Menu for the native GDB
+# Menu for the native GDB binaries (GDB itself and gdbserver)
config GDB_NATIVE
bool
@@ -12,11 +12,35 @@ config GDB_NATIVE
help
Build and install a native gdb for the target, to run on the target.
-if GDB_NATIVE
+config GDB_GDBSERVER
+ bool
+ prompt "gdbserver"
+ default y
+ depends on ! BARE_METAL
+ select LIBC_UCLIBC_WCHAR if LIBC_UCLIBC && GDB_8_0_or_later
+ help
+ Build and install a gdbserver for the target, to run on the target.
+
+if GDB_NATIVE || GDB_GDBSERVER
+
+config GDB_NATIVE_BUILD_IPA_LIB
+ bool
+ prompt "Build the IPA library"
+ depends on GDB_HAS_IPA_LIB && !GDB_NATIVE_STATIC
+ help
+ gdbserver >= 7.2 comes with an optional library to use tracepoints,
+ the In Process Agent (IPA) library, libinproctrace.so.
+
+ Say 'y' if you intend to use tracepoints when debugging your
+ programs with gdbserver.
+
+ Note: Currently, building this library is not possible when the
+ gdbserver is built statically. This is a limitation in
+ crosstool-NG, so do not bug upstream about it...
config GDB_NATIVE_STATIC
bool
- prompt "Build a static native gdb"
+ prompt "Build a static gdb binaries"
depends on EXPERIMENTAL
help
In case you have trouble with dynamic loading of shared libraries,
@@ -31,10 +55,24 @@ config GDB_NATIVE_STATIC
It is possible it would work with other architectures, hence it is
not completely removed. Use with care and report to the mailing list
- if the resulting gdbserver works.
+ if the resulting binaries work.
For further details, see:
https://sourceware.org/bugzilla/show_bug.cgi?id=19617
https://sourceware.org/bugzilla/show_bug.cgi?id=21086
+config GDB_NATIVE_STATIC_LIBSTDCXX
+ bool
+ prompt "Link against static libstdc+++"
+ depends on !GDB_NATIVE_STATIC
+ default n
+ help
+ Say 'y' if you do not want gdbserver to require libstdc++.so on the
+ target.
+
endif # GDB_NATIVE
+
+if BARE_METAL
+comment "In bare-metal, you'll need to "
+comment "provide your own gdbserver stub."
+endif # BARE_METAL
diff --git a/config/libc/glibc.in b/config/libc/glibc.in
index 6598c31..4138707 100644
--- a/config/libc/glibc.in
+++ b/config/libc/glibc.in
@@ -23,8 +23,8 @@ endif
# Glibc has some dependencies on the kernel headers:
config GLIBC_DEP_KERNEL_HEADERS_VERSION
- def_bool y
- select LINUX_REQUIRE_3_2_or_later if GLIBC_2_24_or_later
+ def_bool y
+ select LINUX_REQUIRE_3_2_or_later if GLIBC_2_24_or_later
# Glibc 2.26 requires at least binutils 2.25.
# Also, binutils 2.30 fail while compiling aarch64 glibc; fixed in 2.27
@@ -35,6 +35,33 @@ config GLIBC_DEP_BINUTILS
select BINUTILS_REQUIRE_2_25_or_later if GLIBC_2_26_or_later
select BINUTILS_REQUIRE_older_than_2_30 if GLIBC_older_than_2_26 && ARCH_ARM && ARCH_64
+# Glibc 2.29 requires GCC5+ or, for ppc64le, GCC6.2+. We only support the latest
+# release on GCC6 branch, so just assume it is newer than 6.2
+config GLIBC_DEP_GCC
+ def_bool y
+ select GCC_REQUIRE_5_or_later if GLIBC_2_29_or_later
+ select GCC_REQUIRE_6_or_later if GLIBC_2_29_or_later && ARCH_POWERPC && ARCH_64 && ARCH_LE
+
+# Glibc 2.29 requires bison 2.7 or later. All versions in ct-ng satisfy that
+# version requirement.
+config GLIBC_DEP_BISON
+ def_bool y
+ depends on GLIBC_2_29_or_later && !CONFIGURE_has_bison_2_7_or_newer
+ select COMP_TOOLS_BISON
+
+# Glibc 2.29 now requires Python 3.4 or later, and make 4.0 or later. Ensure
+# we build 'make' as a companion tool if host's make isn't new enough.
+config GLIBC_DEP_PYTHON
+ def_bool y
+ select GLIBC_REQUIRE_older_than_2_29 if !CONFIGURE_has_python_3_4_or_newer
+
+config GLIBC_DEP_MAKE_4_0
+ def_bool y
+ depends on GLIBC_2_29_or_later && !CONFIGURE_has_make_4_0_or_newer
+ select COMP_TOOLS_MAKE
+ select MAKE_REQUIRE_4_0_or_later
+ select MAKE_GNUMAKE_SYMLINK # Override old host make in .build/tools/bin
+
config GLIBC_DEP_GCC
def_bool y
select GCC_REQUIRE_4_9_or_later if GLIBC_2_26_or_later