Age | Commit message (Collapse) | Author |
|
|
|
The patch below fixes a bug in the new ARM _ld_linux_resolve implementation.
I'm don't know if/how the current implementation was tested, but it's
completely broken.
This patch makes the prologue and epilogue agree on how big the stack frame
is, and also makes sure EABI doubleword stack alignment is preserved.
Tested on arm-linux-gnueabi.
|
|
called to resolve DLL PLT entries. The assembler is changed to be thumb
compatible and slightly faster, the C function, _dl_linux_resolver (note
the extra r) is changed to take a byte address in place of an 8 byte
count (faster in caller and callee, and slightly easier to understand).
|
|
Put the call_via_rx code into each executable - call_via_ip cannot
possibly work if called through the PLT! ldso requires this code
too as it is not linked with the crt stuff and thumb ldso does
make calls via a register.
The patch puts the code into crti.S so that it is linked into
every normally built application (if thumb or interworking is
selected). This is only 30 extra bytes and it works - the previous
code did not because nothing both implemented and exported the
APIs (they were in libgcc, but not in the version script).
crti.S and crtn.S is also brought up to date with GCC 3.4.4 - this
is essential for thumb support because the .init and .fini sections
must use arm or thumb code to match the compilation of the libraries.
Note that code which pushes stuff into .init or .fini must be
compiled with or without -mthumb to match the uclibc compilation -
and gcc itself (which does do this) must therefore be compiled to
match.
|
|
|
|
2001-04-10 Ulrich Drepper <drepper@redhat.com>
* join.c (pthread_exit): Move code to new function __pthread_do_exit
which takes an extra parameter with the current frame pointer.
Call new function with CURRENT_STACK_FRAME.
(__pthread_do_exit): New function. Call __pthread_perform_cleanup
with the new parameter.
(pthread_join): Call __pthread_do_exit instead of pthread_exit.
* cancel.c (__pthread_perform_cleanup): Takes extra parameter. Use
this parameter as the initial value the cleanup handler records are
compared against. No active cleanup handler record must have an
address lower than the previous one and the initial record must be
above (below on PA) the frame address passed in.
(pthread_setcancelstate): Call __pthread_do_exit instead of
pthread_exit.
(pthread_setcanceltype): Likewise.
(pthread_testcancel): Likewise.
(_pthread_cleanup_pop_restore): Likewise.
* condvar.c (pthread_cond_wait): Likewise.
(pthread_cond_timedwait_relative): Likewise.
* manager.c (pthread_start_thread): Likewise.
* oldsemaphore.c (__old_sem_wait): Likewise.
* pthread.c (pthread_handle_sigcancel): Likewise.
* semaphore.c (__new_sem_wait): Likewise.
(sem_timedwait): Likewise.
* ptlongjmp.c (pthread_cleanup_upto): Also use current stack frame
to limit the cleanup handlers which get run.
* internals.h: Add prototype for __pthread_do_exit. Adjust prototype
for __pthread_perform_cleanup.
|
|
2001-04-11 Ulrich Drepper <drepper@redhat.com>
* cancel.c (_pthread_cleanup_push): Catch invalid __prev buffer
and remove it.
(_pthread_cleanup_push_defer): Likewise.
|
|
daylight savings time rules when xlocale was enabled. Fix compile error.
|
|
We should not use old stype ipc_perm for 64-bit mips kernel.
I suppose other 64-bit platforms shoule define __IPC_64 also and we
can define it unconditionally, but not sure for other archs ...
|
|
We should use "PTR_LA" instead of "la" for N64 ABI.
|
|
Add selection of 3 ABI.
CPU_CFLAGS is needed to generate correct sysnum.h.
Fix test/Rules.mak.
|
|
64bit MIPS ELF format tweaks. (from glibc)
Elf32/ElfW convertions.
asm code adjustments.
|
|
No pread64, pwrite64 syscall for N64 ABI.
Make __libc_pread and __libc_pread64 use same syscall.
|
|
Adjust for mips64 kernel.
|
|
miscellaneous asm routines
|
|
The mips64 N32/N64 ABI have a bit different register usage convention.
Also the register size for these ABI is 8 byte. Use ld/sd for them.
|
|
The mips64 N32/N64 ABI can pass much arguments via registers.
|
|
Import mips64 version of memset, memcpy from glibc.
|
|
This is a bit twisted dirent.h can be used for both getdirent and
getdirent64 case on mips/mips64.
|
|
The kernel include/asm-mips/posix_types.h defines
__kernel_ino_t as unsigned long.
|
|
The predefined _MIPS_SZPTR (32 for O32 or N32, 64 for N64) can be used
for WORDSIZE. This is came from glibc code.
|
|
It seems these codes dropped when importing from glibc.
This is required for mips64.
|
|
There is a mismatch of struct msghdr between the kernel and libc.
In a 64-bit environment, the size of msg_namelen is 4 for all, but
the size of msg_iovlen and msg_controllen is 8 bytes for the kernel
and for glibc, but 4 bytes for uClibc. Fix size for the 64bit case.
|
|
|
|
compiler prob sucks anyways)
|
|
In 2005, Congress passed a law so that in 2007, the second week of March starts
DST. Previously, it was the first week of April. The uclibc time library
routines apparently have not been updated to reflect this new processing. Using
the current version of uclibc, on March 11, 2007 the reported time will be
incorrect.
|
|
|
|
2006-10-16 Mark Shinwell <shinwell@codesourcery.com>
* libc/sysdeps/linux/sh/vfork.S: Use __SH_SYSCALL_TRAP_BASE.
Also use __CONFIG_SH2__ rather than __sh2__, for consistency.
* libc/sysdeps/linux/sh/syscall.c: Use __SH_SYSCALL_TRAP_BASE.
* libc/sysdeps/linux/sh/bits/uClibc_arch_features.h: Use
__CONFIG_SH2__ rather than __sh2__, for consistency.
* libc/sysdeps/linux/sh/bits/syscalls.h (__SH_SYSCALL_TRAP_BASE):
New.
Use instead of hard-coded trap numbers in the various __NR_<name>
macros.
* libc/sysdeps/linux/sh/clone.S: Use __SH_SYSCALL_TRAP_BASE.
Also use __CONFIG_SH2__ rather than __sh2__, for consistency.
* libc/sysdeps/linux/sh/crti.S: Disable GOT-related code if
__HAVE_SHARED__ is not set.
* libc/sysdeps/linux/sh/pipe.c (pipe): Use __SH_SYSCALL_TRAP_BASE.
|
|
|
|
There are many directories called "CVS" checked into uClibc SVN, probably
as a side-effect of importing a CVS checkout. I don't think these are
particularly useful to have checked in.
|
|
The rationale is that we already have the length of the string to
duplicate (from doing the malloc()), and memcpy() should then always be
faster than strcpy() (or at least as fast).
|
|
|
|
|
|
|
|
INTERNAL_SYSCALL macro which saves r7 before making the call and pops it back after return.
|
|
propogated into generated sysnum.h.
|
|
|
|
This introduces a new SEND_EARLY_STDERR macro that is to be used in
dl-startup.c before ld.so is relocated. It is needed on Blackfin (and
frv) FDPIC since we have to use special tricks to get the address of a
string constant.
EARLY_STDERR_SPECIAL gets defined on such a machine and prevents
printing of debug strings inside the loop that relocates ld.so, since we
can't decide which of the two variants to use.
|
|
pseudo register for PIC base so load and relocate it.
|
|
|
|
|
|
|
|
|
|
|
|
Miguel Ángel
|
|
|
|
when building with thread support (which we normally do), and as far
as I can tell it should not be needed otherwise either. And as it did
not build with the latest binutils and gcc, the choice was easy...
|
|
parsing (see http://sources.redhat.com/ml/binutils/2004-04/msg00665.html)
|
|
|
|
|