summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2017-03-19 07:34:51 (GMT)
committerGitHub <noreply@github.com>2017-03-19 07:34:51 (GMT)
commit89f0971391fa26c442ce9bfb055c55e5cae2d0d1 (patch)
treeb82d03ad78739881aa8e4993e0dcf8d290e14c30 /config
parenta3dd55b96409922a416c05ab053569ec4f91126b (diff)
parent63b2a19de4b33f304b236850028b6c6f32ce51e2 (diff)
Merge pull request #639 from stilor/tweak-gcc-movelibs
When moving gcc libs, prefer the same directory as libc
Diffstat (limited to 'config')
-rw-r--r--config/debug/gdb.in.gdbserver19
-rw-r--r--config/debug/gdb.in.native17
-rw-r--r--config/target.in23
3 files changed, 56 insertions, 3 deletions
diff --git a/config/debug/gdb.in.gdbserver b/config/debug/gdb.in.gdbserver
index 2f5576b..07e6e13 100644
--- a/config/debug/gdb.in.gdbserver
+++ b/config/debug/gdb.in.gdbserver
@@ -15,15 +15,30 @@ config GDB_GDBSERVER_HAS_IPA_LIB
depends on GDB_7_2_or_later
default y
+# gdbserver is then linked with "-static -Wl,--dynamic-list=..." which
config GDB_GDBSERVER_STATIC
bool
prompt "Build a static gdbserver"
- depends on CONFIGURE_has_static_link
- default y
+ 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_BUILD_IPA_LIB
bool
prompt "Build the IPA library"
diff --git a/config/debug/gdb.in.native b/config/debug/gdb.in.native
index 915debd..8684c05 100644
--- a/config/debug/gdb.in.native
+++ b/config/debug/gdb.in.native
@@ -15,9 +15,24 @@ if GDB_NATIVE
config GDB_NATIVE_STATIC
bool
prompt "Build a static native gdb"
- depends on CONFIGURE_has_static_link
+ depends on EXPERIMENTAL
help
In case you have trouble with dynamic loading of shared libraries,
you will find that a static gdb comes in handy.
+ However, it has been noticed at least on x86 that enabling this
+ option produces an invalid gdb 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
+
endif # GDB_NATIVE
diff --git a/config/target.in b/config/target.in
index a905b23..485c587 100644
--- a/config/target.in
+++ b/config/target.in
@@ -51,6 +51,29 @@ config MULTILIB
NOTE: The multilib feature in crosstool-NG is not well-tested.
Use at your own risk, and report success and/or failure.
+config DEMULTILIB
+ bool "Attempt to combine libraries into a single directory"
+ default y if !MULTILIB
+ depends on !MULTILIB || EXPERIMENTAL
+ help
+ Normally, Crosstool-NG installs the libraries into the directories
+ as the configure for these libraries determines appropriate. For
+ example, for AArch64 glibc wants to install the libraries into
+ /lib64 but the default dynamic linker path is /lib/ld-linux-aarch64.so.1
+ (which is installed as a symlink to ../lib64/ld-VER.so).
+
+ However, not all consumers of the toolchain can handle the libraries
+ residing in multiple directories. To appease them, crosstool-NG can
+ attempt to combine the libraries back into a single /lib directory and
+ create all other directories as symlinks to /lib. This requires all
+ the library names to be unique within each sysroot.
+
+ Note that GCC may also use separate sysroots for different multilibs.
+ Hence it may make sense to enable this option even for multilib toolchains.
+ However, separate roots are rare (any other architecture aside from
+ SuperH using them?) and hence not well tested in crosstool-NG; therefore,
+ this option is experimental when MULTILIB is enabled.
+
#--------------------------------------
config ARCH_SUPPORTS_BOTH_MMU
bool