Age | Commit message (Collapse) | Author |
|
From Peter Mazinger.
|
|
|
|
Hello!
The attached patches remove unneeded -D<somedefine>, and uses instead
#ifdef __somedefine__
|
|
After the addition of a configuration option for
enabling the support of /etc/ld.so.cache, I thought
it might be a good idea to add one for the support
of the /etc/ld.so.preload file too. So here it is.
While doing this, I also noticed that the dynamic
linker would hang indefinitely if either LD_PRELOAD
or /etc/ld.so.preload contained a library which was
already loaded, so I made a patch for that too.
And of course, I could not resist from doing a little
clean up of comments and indentation, so here is a
patch for that too.
|
|
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.
>
|
|
Hi. I found a mismatch between uClibc and kernel in semctl definition.
In uClibc/libc/misc/sysvipc/sem.c:
static inline _syscall4(int, __semctl, int, semid, int, semnum, int, cmd, union semun *, arg);
...
int semctl(int semid, int semnum, int cmd, ...)
...
arg = va_arg (ap, union semun);
...
return __semctl(semid, semnum, cmd, &arg);
But kernel's semctl is:
asmlinkage long sys_semctl (int semid, int semnum, int cmd, union semun arg)
The last argument is an union semun itself, not a pointer to the
union.
Here is a patch.
|
|
Thanks to Peter Kjellerstedt.
|
|
Search in UCLIBC_RUNTIME_PREFIX"lib" before
UCLIBC_RUNTIME_PREFIX"usr/lib".
X11 users should enable USE_CACHE in Rules.mak, add
/usr/X11R6/lib to /etc/ld.so.conf and run ldconfig.
|
|
|
|
Move /lib and /usr/lib first in ld.so.cache.
Ignore duplicate /lib and /usr/lib in ld.so.conf
|
|
|
|
Move COPY relocs back to _dl_do_reloc().
White space cleanup.
|
|
|
|
|
|
Move COPY relocs back to _dl_do_reloc().
|
|
|
|
Someone needs to test if it works to build and run gcj.
|
|
|
|
but can be nonzero for JMP relocs as well.
All Rela arches need to do this, test and send a patch :)
Remove unneeded test in R_PPC_COPY.
|
|
but powerpc).
If you are using buildroot and soft floating point, you may have to
rebuild the libm.so library, copy it to staging_dir/lib and rebuild
your application.
Move handling of R_386_COPY back into _dl_do_reloc(all archs should
do this). Adjust the first argument to _dl_memcpy as it looks wrong
to have symtab[symtab_index].st_value as destination for the mem copy.
|
|
If you are using buildroot and soft floating point, you may have to
rebuild the libm.so library, copy it to staging_dir/lib and rebuild
your application.
Cleanups as well.
|
|
|
|
|
|
This needs testing with apps that have complex dependencies.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
be used by the unsuspecting masses quite yet.
|
|
|
|
a.out.h to libgen.h (omitting complex.h for a later separate
effort for the math stuff)
|
|
|
|
match glibc's quotient truncation behavior.
|
|
|
|
Port the generic optimized string funcs from glibc, with some tweaks
to cut their size a little. The main change is making memmove
call memcpy for forward copying to trim redundant code.
Make use of both the generic and arch-specific speed-optimized string
funcs configurable. Arch-specific take precedence over generic,
and generic takes precedence over basic size-optimized uClibc funcs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Requested by Peter Mazinger. Testing wanted.
|
|
Now all functions and vaiables can be made static to reduce relocs.
Basicly, all variables should be merged into one struct variable
and then export that struct. Exported functions should be exported
as functions pointers in the above struct. This will reduce the
number of relocs inside ldso to a handful.
Add -Bsymbolic to linker for ldso. This will resolve all functions
(all JMP_SLOT goes away) and the remaining relocs are transformed into
RELATIVE relocs.
|
|
|
|
misread this code and removed it, sorry.
I printed the values of _dl_brkp and _dl_envp in ldso and
got this when executing:
ls:
__curbrk: 0x300c16e0
__environ: 0x1008372c
ldd:
__curbrk: 0x300776e0
__environ: 0x3007759c
why is__environ in the app when executing ls but not ldd?
|