diff options
author | Eric Andersen <andersen@codepoet.org> | 2004-10-03 07:53:52 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2004-10-03 07:53:52 +0000 |
commit | 3b8039fd51c6b2e292d44794ba273aca2c88b321 (patch) | |
tree | ee2868495a5f93fa093887d6e39e8da4768c330c /utils/ldconfig.c | |
parent | 31cfe2300d8b9aee110ba0a7213f6befdd3ffce0 (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.c | 17 |
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 |