summaryrefslogtreecommitdiff
path: root/utils/ldconfig.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-10-03 07:53:52 +0000
committerEric Andersen <andersen@codepoet.org>2004-10-03 07:53:52 +0000
commit3b8039fd51c6b2e292d44794ba273aca2c88b321 (patch)
treeee2868495a5f93fa093887d6e39e8da4768c330c /utils/ldconfig.c
parent31cfe2300d8b9aee110ba0a7213f6befdd3ffce0 (diff)
This patch from Mike Frysinger, extended from an earlier patch from Peter S.
Mazinger implements the changes suggested by me on the uclibc list. On Tuesday 28 September 2004 02:24 pm, Erik Andersen wrote: > What I think should be done is > > *) Someone that cares about USE_CACHE should fix that option > up to be sure it works, and give it a proper config entry > in extra/Configs/Config.in, and rename it to something > more appropriate such as LDSO_CACHE_SUPPORT. > > *) When LDSO_CACHE_SUPPORT=n, UCLIBC_RUNTIME_PREFIX /usr/X11R6/lib > should be included in the default library search path in > dl-elf.c, ldd, and ldconfig. > > *) When LDSO_CACHE_SUPPORT=y, UCLIBC_RUNTIME_PREFIX /usr/X11R6/lib > should be excluded from the default library search path in > dl-elf.c, ldd, and ldconfig, and those wishing to include > X11 stuff should add that into /etc/ld.so.conf and re-run > ldconfig. > > *) At present, LDSO_CONF and LDSO_CACHE use the same names > and same structure as glibc. This precludes > LDSO_CACHE_SUPPORT being uses in any sane fashion on a > dial glibc and uClibc system. Just as it was necessary > for use to use a different name for 'libuClibc' rather > than 'libc', and 'ld-uClibc.so.0' rather than > 'ld-linux.so.2' it seems that these configuration files > really ought to be given different names. >
Diffstat (limited to 'utils/ldconfig.c')
-rw-r--r--utils/ldconfig.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/utils/ldconfig.c b/utils/ldconfig.c
index acb78a2ff..e466a42fb 100644
--- a/utils/ldconfig.c
+++ b/utils/ldconfig.c
@@ -503,7 +503,7 @@ void scan_dir(const char *rawname)
{
if (!lp->islink)
link_shlib(name, lp->name, lp->so);
-#ifdef USE_CACHE
+#ifdef __LDSO_CACHE_SUPPORT__
if (!nocache)
cache_dolib(name, lp->so, lp->libtype);
#endif
@@ -553,7 +553,7 @@ char *get_extpath(void)
return res;
}
-#ifdef USE_CACHE
+#ifdef __LDSO_CACHE_SUPPORT__
typedef struct liblist
{
int flags;
@@ -876,6 +876,9 @@ int main(int argc, char **argv)
{
scan_dir(UCLIBC_RUNTIME_PREFIX "lib");
scan_dir(UCLIBC_RUNTIME_PREFIX "usr/lib");
+#if !defined (__LDSO_CACHE_SUPPORT__)
+ scan_dir(UCLIBC_RUNTIME_PREFIX "usr/X11R6/lib");
+#endif
/* I guess the defaults aren't good enough */
if ((extpath = get_extpath()))
@@ -886,8 +889,12 @@ int main(int argc, char **argv)
if (len)
while (cp[--len] == '/' && len)
cp[len] = 0;
- if (strcmp(UCLIBC_RUNTIME_PREFIX "lib", cp) == 0 ||
- strcmp(UCLIBC_RUNTIME_PREFIX "usr/lib", cp) == 0) {
+ if (strcmp(UCLIBC_RUNTIME_PREFIX "lib", cp) == 0
+ || strcmp(UCLIBC_RUNTIME_PREFIX "usr/lib", cp) == 0
+#if !defined (__LDSO_CACHE_SUPPORT__)
+ || strcmp(UCLIBC_RUNTIME_PREFIX "usr/X11R6/lib", cp) == 0
+#endif
+ ) {
if (verbose >= 0)
warnx("Path `%s' given more than once\n", cp);
continue;
@@ -898,7 +905,7 @@ int main(int argc, char **argv)
}
}
-#ifdef USE_CACHE
+#ifdef __LDSO_CACHE_SUPPORT__
if (!nocache)
cache_write();
#endif