diff options
author | Alexey Neyman <stilor@att.net> | 2017-03-19 07:34:51 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-19 07:34:51 (GMT) |
commit | 89f0971391fa26c442ce9bfb055c55e5cae2d0d1 (patch) | |
tree | b82d03ad78739881aa8e4993e0dcf8d290e14c30 /config | |
parent | a3dd55b96409922a416c05ab053569ec4f91126b (diff) | |
parent | 63b2a19de4b33f304b236850028b6c6f32ce51e2 (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.gdbserver | 19 | ||||
-rw-r--r-- | config/debug/gdb.in.native | 17 | ||||
-rw-r--r-- | config/target.in | 23 |
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 |