Ned Ludd [Thu, 11 Nov 2004 03:13:36 +0000 (03:13 -0000)]
misc cleanups of __stack_smash_handler() function when ssp support is enabled. syslog() support should now work both inside and outside of chroots. erandom code left in but remains #ifdef out by default. May remove erandom completely in the future for uClibc unless the LFS guys and gals want to keep it.
Ned Ludd [Thu, 11 Nov 2004 03:12:37 +0000 (03:12 -0000)]
misc cleanups of __stack_smash_handler() function when ssp support is enabled. syslog() support should now work both inside and outside of chroots. erandom code left in but remains #ifdef out by default. May remove erandom completely in the future for uClibc unless the LFS guys and gals want to keep it.
Joakim Tjernlund [Wed, 10 Nov 2004 15:27:26 +0000 (15:27 -0000)]
Add RTLD_LOCAL support for dlopened libs. Reported by
Andrew de Quincey, who has been most helpful getting this sorted
out, thanks. Thanks also to Peter Mazinger who did alot of testing.
Removed all traces of dl_parse_copy_information() since it is no longer used.
Eric Andersen [Tue, 2 Nov 2004 15:15:10 +0000 (15:15 -0000)]
struct ipc_perm, as used by shmctl() when soing shared memory stuff,
was incorrect in uClibc, and was 2 bytes too short. This caused uClibc
shared memory stuff to not behave correctly since struct ipc_perm was
included as the first member of, i.e. struct msqid_ds, so the content
of that struct were all shifted by two bytes. ugh. Apparently, few
people have used shared memory, msgctl(), etc with uClibc thus far,
-Erik
- Remove dynamic_size from struct elf_resolve.
- Replace all open coded dynamic handling with a function. Reduces size.
- Fold special MIPS dynamic code into the dynamic_info item.
- Add RELRO support.
- Support linking with "-z now".
- prepare for DT_RELACOUNT/DT_RELCOUNT optimization.
- Add -z now to ld.so linking, this is what ld.so does anyway so
let the linker know that.
Revert Peter's __lib_gettimeofday patch. There's the minor issue of
adding cruft to include/sys/time.h. But also, there's no sense in
making changes like this until we decide how we're going to approach
the hidden symbol transition.
Jocke's patch was almost right. Just needed move the DT_MIPS_RLD_MAP test
up a bit. Native and remote debugging of shared libs and threaded apps now
works on mips.
Eric Andersen [Tue, 26 Oct 2004 20:48:18 +0000 (20:48 -0000)]
Atsushi Nemoto writes:
>>>>> On Tue, 19 Oct 2004 13:28:34 -0600, Erik Andersen <[email protected]> said:
>> BTW, top of uClibc TODO list is "Fix syscall() on mips". What is a
>> problem?
andersen> It appears that uClibc's syscall() for mips works ok for
andersen> syscalls with a few arguments. But as I recall, it does not
andersen> work properly with _syscall5, _syscall6, _syscall7, etc.
andersen> Perhaps there is some mistake in its assumptions about the
andersen> mips/linux ABI regarding which syscall arguments are passed
andersen> via register vs which syscall arguments are passed on the
andersen> stack.
Joakim Tjernlund [Thu, 14 Oct 2004 10:08:03 +0000 (10:08 -0000)]
Peter Mazinger writes:
The attached patch generalizes the use of PIE (all archs are brought in
sync that use/mention it: x86/ppc/frv) and makes use of it building the
target utils.
Tested on x86, ppc should be tested, frv uses -fPIE at one location, but
at another place -fpie, I don't know which is correct (could be both) and
misses the target addition in Config.in.
The test for ppc (requires the earlier sent crt-correction patch to work
correctly):
enable UCLIBC_PIE_SUPPORT, build uClibc and utils, check:
file ./utils/ldd, it should show shared object (instead of executable)
Joakim Tjernlund [Thu, 14 Oct 2004 09:53:15 +0000 (09:53 -0000)]
Peter Mazinger writes:
The attached patch is an updated version of an earlier sent patch
It solves the problem that the target utils (ldconfig/ldd/iconv, readelf
is not handled, but can be easily added) are not built w/ the newly
created [S]crt[01].o files.
Joakim Tjernlund [Tue, 12 Oct 2004 10:48:28 +0000 (10:48 -0000)]
Mark Rakes writes:
without LDSO_CACHE_SUPPORT turned on, LDSO_CONF and LDSO_CACHE are
not defined anywhere, but still used by ldconfig.c This patch allows
ldconfig to build again, although there may be a cleaner way to fix
this????
Eric Andersen [Fri, 8 Oct 2004 07:58:30 +0000 (07:58 -0000)]
As noticed by egor duda, current_menu is declared as 'extern struct menu
*current_menu;' in scripts/config/lkc.h line 63, and this conflicts with
static definition in mconf.c.
Eric Andersen [Thu, 7 Oct 2004 14:06:06 +0000 (14:06 -0000)]
Put back ucontext.h, but omit function prototypes for getcontext(),
makecontext(), setcontext(), and swapcontext() which are marked as
obsolescent by SuSv3, and are not implemented by uClibc.
Remove usage of _dl_parse_copy_information() from generic code.
Remove definition of _dl_parse_copy_information() for powerpc.
Remaining archs can do the same.
Make debugging output of "relocation processing: xxx" a bit more sane.
Peter S. Mazinger writes:
Corrects libpthread_db name (I do not know why libpthread_db.so uses
libpthread_db.so.1 instead of libpthread_db.so.$(MAJOR_VERSION) as soname)
Note by Jocke:
I don't known either but until then this is the right thing to do.
Puts common defines into dl-defs.h (in ldso/include) from dl-elf.h and
dl-cache.h and make use of it. Also disables the lib-path-redundancy check
for the case the cache is not used. Makes use of _PRELOAD_FILE_SUPPORT.
From Peter Mazinger.
Peter Kjellerstedt writes:
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.
Eric Andersen [Sun, 3 Oct 2004 07:53:52 +0000 (07:53 -0000)]
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.
>
Bugfix: Add r_addend to final address. The r_addend is mostly zero
but can be nonzero for JMP relocs as well.
All Rela arches need to do this, test and send a patch :)
Don't allow undefined global symbols to pass(all archs needs fixing,
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.
Don't allow undefined global symbols to pass(all archs needs fixing).
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.
Add a couple of mips-specific string funcs.
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.