summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2017-03-22 17:54:37 (GMT)
committerAlexey Neyman <stilor@att.net>2017-03-22 17:57:45 (GMT)
commit3d1678a7f65ae541eba7114fe7447c38c7d9259d (patch)
treef4c71fb52cb49dcd402fb10c63733c74c97cd994
parent91169535d7071eca5e459c96d3287e5f2d17114e (diff)
Make creation of ld.so.conf optional
... enabled by default for multilib and disabled otherwise. Buildroot has been complaining about /etc/ld.so.conf presence for almost a year now and I missed that. After the release, xldd will be modified to query the compiler for the list of multilibs to search. This would be too invasive change before 1.23, though. Note that it may lead to configurations where xldd currently does not find the libraries (if both DEMULTILIB and CREATE_LDSO_CONF are turned off). This is not the default setting in Kconfig, though. Signed-off-by: Alexey Neyman <stilor@att.net>
-rw-r--r--config/libc.in20
-rw-r--r--scripts/build/internals.sh4
2 files changed, 22 insertions, 2 deletions
diff --git a/config/libc.in b/config/libc.in
index cd3ccec..e05934f 100644
--- a/config/libc.in
+++ b/config/libc.in
@@ -87,6 +87,26 @@ config THREADS_NONE
endchoice
+config CREATE_LDSO_CONF
+ bool "Create /etc/ld.so.conf file"
+ depends on SHARED_LIBS
+ default y if MULTILIB
+ help
+ Create /etc/ld.so.conf file in the sysroot directory for the
+ target.
+
+ Note that Buildroot errors out if it sees /etc/ld.so.conf.
+
+config LDSO_CONF_EXTRA_DIRS_ARRAY
+ string "Extra directories to add to /etc/ld.so.conf
+ depends on CREATE_LDSO_CONF
+ help
+ Extra directories to include in /etc/ld.so.conf. The directories
+ will be augmented per compiler's multilib specification,
+ if applicable. For example, if the compiler's multilibs include
+ /lib and /lib64, and you specify /usr/local/lib here, ld.so.conf
+ will have both /usr/local/lib and /usr/local/lib64.
+
config LIBC_XLDD
bool
prompt "Install a cross ldd-like helper"
diff --git a/scripts/build/internals.sh b/scripts/build/internals.sh
index a1c9b55..db9b1fd 100644
--- a/scripts/build/internals.sh
+++ b/scripts/build/internals.sh
@@ -10,7 +10,7 @@ create_ldso_conf()
done
CT_DoExecLog ALL mkdir -p "${multi_root}/etc"
- for b in /lib /usr/lib /usr/local/lib; do
+ for b in /lib /usr/lib "${CT_LDSO_CONF_EXTRA_DIRS_ARRAY[@]}"; do
d="${b}/${multi_os_dir}"
CT_SanitizeVarDir d
echo "${d}" >> "${multi_root}/etc/ld.so.conf"
@@ -34,7 +34,7 @@ do_finish() {
CT_DoStep INFO "Finalizing the toolchain's directory"
- if [ "${CT_SHARED_LIBS}" = "y" ]; then
+ if [ "${CT_CREATE_LDSO_CONF}" = "y" ]; then
# Create /etc/ld.so.conf
CT_mkdir_pushd "${CT_BUILD_DIR}/build-create-ldso"
CT_IterateMultilibs create_ldso_conf create-ldso