Age | Commit message (Collapse) | Author |
|
the __fsetlocking call in libc/unistd/usershell.c. It should
be wrapped and only included if __UCLIBC_HAS_THREADS__ is defined.
|
|
this change.
|
|
|
|
|
|
|
|
|
|
|
|
the "--" option since we always do that anyways.
-Erik
|
|
any chance of actually building with debug symbols.
-Erik
|
|
failures, returned stack allocated memory, and misbehaved itself
in a number of other annoying ways,
-Erik
|
|
|
|
- Invert all FORCE_SHAREABLE_TEXT_SEGMENTS checks.
- Define FORCE_SHAREABLE_TEXT_SEGMENTS in the Makefile,
so it can be configured by the config system.
- linuxelf.h inspects that we don't combine FORCE_SHAREABLE_TEXT_SEGMENTS
and SVR4_BUGCOMPAT
- Add a new config option for FORCE_SHAREABLE_TEXT_SEGMENTS
|
|
work properly, reverting my wrong reading of SuSv3
|
|
|
|
so when debugging is enabled we don't enable all the major
optimizations.
-Erik
|
|
on malloc (via realloc).
-Erik
|
|
|
|
This corrects them, per SuSv3.
|
|
the more clear FORCE_SHAREABLE_TEXT_SEGMENTS.
|
|
I fixed two little bugs in ldso.c:
- For LDD support we test the old environment variable
LD_TRACE_LOADED_OBJECTS.
- Before we init the GOT table of the dynamic loader
we have to check, if we have a DT_PLTGOT entry.
If DT_PLTGOT was zero we patch somthing in the header
of the dynamic loader. This was the cause, why we have to
enable the DO_MPROTECT_HACKS option for all targets, to avoid
segment faults.
In readelflib1.c I added a warning, if we try to load a shared library, which
wasn't compiled with -fPIC or -fpic. So if we disable the DO_MPROTECT_HACKS
option we are sure, that we don't waste memory by shared libraries which
aren't able to share their text segment. I think this is a helpful option on
little embedded systems.
|
|
|
|
|
|
look into what is breaking dlclose() further...
-Erik
|
|
unified syscall interface. I reworked his old patch considerably
and cleaned up his version of bits/syscalls.h with some sneaky macro
magic. And I implemented a powerpc correct version of pread/pwrite
-Erik
|
|
|
|
I attached a patch, which revise the clone.S and vfork.S:
- Use PIC code.
- include new file syscall.S, so we can simply make a branch to
__syscall_error instead of a PLT/GOT call
- call errno_location to store the syscall error (for pthreads)
- avoid to use the 'shad' statement on SH2 targets
- call fork if vfork isn't available
- some cleanups and optimization
|
|
|
|
|
|
-Erik
|
|
|
|
|
|
in getlogin_r
|
|
Hi Erik,
I added the FPU support for the setjmp/longjmp stuff.
This patch also moves the code from the bsd*.S files to the setjmp.S file, so
we can use simple branch instructions instead of referencing over the
.GOT/.PLT section. This makes the PIC code much easier, smaller and faster.
(The idea comes from the SPARC target)
Bye Stefan
|
|
|
|
since uclibc-0.9.16 I have to specify -fpic during _link_-time or else
I get an error from the dynamic linker when I load shared objects. Patch
is appended.
|
|
I noticed that dlclose() does not work since libraries loaded with
dlopen are not marked as "loaded_file". This breaks apache with dynamic
modules. I append a small fix against uClibc-0.9.16.
|
|
This patch from David Meggy fixes it...
|
|
wide char support, even when the rest of uClibc was. This led
to anyone using regex segfaulting...
-Erik
|
|
-Erik
|
|
-Erik
|
|
-Erik
|
|
Ok, now i got it after a day of work.
I have had a look into glibc and found the following:
sysdeps/powerpc/dl-machine.c:
...
case R_PPC_JMP_SLOT:
/* It used to be that elf_machine_fixup_plt was used here,
but that doesn't work when ld.so relocates itself
for the second time. On the bright side, there's
no need to worry about thread-safety here. */
{
Elf32_Sword delta = finaladdr - (Elf32_Word) reloc_addr;
...
The comment made me suspicious. The same position in uClibc looks like this:
ldso/ldso/powerpc/elfinterp.c:
...
case R_PPC_JMP_SLOT:
{
unsigned long targ_addr = (unsigned long)_dl_linux_resolve;
int delta = targ_addr - (unsigned long)reloc_addr;
...
When I change it to the following it works:
...
case R_PPC_JMP_SLOT:
{
unsigned long targ_addr = *reloc_addr;
int delta = targ_addr - (unsigned long)reloc_addr;
...
I hope it will not break anything. Can anyone review this change and
commit it into CVS?
thanks,
ron
|
|
into it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|