Age | Commit message (Collapse) | Author |
|
|
|
- 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
only when HAS_FPU is set. If you don't have an FPU
then usm FPU code isn't going to help much...
|
|
following a make clean
|
|
|
|
|
|
|
|
|
|
-Erik
|
|
this is the last patch, we need to make the support of multitarget libgcc
complete.
---------------------------------
In ldso/ldso/Makefile
I added the CPU_LDFLAGS-y to the LDFLAGS
---------------------------------
In libc/Makefile
I set the LDFLAGS for the script get-needed-objects.sh with CPU_LDFLAGS-y
---------------------------------
In extra/scripts/get-needed-object.sh
we now use the LIBGCC from Rules.mak and call LD with LDFLAGS
(==CPU_LDFLAGS-y). Addtionally I grep the NM output, to fix the unresolved
external __GLOBAL_OFFSET_TABLE__ on SuperH targets.
---------------------------------
|
|
|