Age | Commit message (Collapse) | Author |
|
Strlen was counting the last 3 bytes incorrectly for big endian arm.
|
|
with s/i686.get_pc_thunk.bx/get_pc_thunk_bx/g to make gcc 3.4 happy.
|
|
|
|
the real thing.
|
|
|
|
|
|
|
|
Hi Erik
It seems to me that __pthread_once and __pthread_initialize_minimal could be made
WEAKs with no stub. The code in rpc_thread.c and __uClibc_main.c appears to expect this.
Also, __pthread_return_0 __pthread_return_1 and __pthread_return_void can be static, not to
pollute the name space.
Jocke
|
|
Here are a number of minor changes to FR-V-specific bits of the uClibc
port:
- I've adjusted the definition of _dl_mmap to cope with the fact that
there will be a definition for an mmap2-only system.
- We don't have COPY relocs, so optimize the copy reloc-related code
away.
- Change the page size to 16KiB, to match the ABI spec, and not a
stale value I'd copied from a linker config file. Oops.
- Fix error handling in clone and vfork; parts of the changes by David
Howells <dhowells@redhat.com>
- Rearrange includes in crtreloc.c.
- Change the API of __syscall_error, to reduce code size.
- Improve __syscall_return in terms of code size, so as to enable
tail-calling of __syscall_error, at least within libc. Ideally,
__syscall_error should be hidden within libc.so, but this didn't
work because of libdl. I haven't looked into why, and figured I'd
leave it visible for now.
- Rename enumerators and macros in sys/ucontext.h to reduce namespace
pollution.
|
|
have it. It is used by the boehm gc, amoung other things.
|
|
|
|
This patch introduces optimized versions of memcpy and memset for
frv.
|
|
On Mar 20, 2004, Erik Andersen <andersen@codepoet.org> wrote:
> If you supply a FR-V specific link.h header into
> libc/sysdeps/linux/frv/ then you can do the same sortof
> thing that mips does i.e. with sgidefs.h in the headers
> target in libc/sysdeps/linux/mips/Makefile
Thanks, this patch implements your suggestion.
|
|
A program that requests __pthread_sig_debug to be blocked will
self-deadlock when it requests a thread to be created, because the
debugger (rda or gdb) will never get the signal, so it won't wake up
the pthread manager as expected.
This patch fixes it.
|
|
|
|
|
|
Oops, this adds the page alignment offset to the mprotected size.
Regards,
Brad
|
|
ld.so mprotect rwx .dyanmic segment for mips DT_DEBUG
Allow writing debug_addr into the .dynamic segment.
Even though the program header is marked RWE, the kernel
gives it to us rx.
|
|
useful syscall failure diagnostics.
|
|
hard coded 4096 instead of PAGE_SIZE. Because I'm an idiot.
|
|
|
|
by extracting the value from the ELF header.
|
|
|
|
If I change that ELF_RTYPE_CLASS_COPY to ELF_RTYPE_CLASS_PLT to tell
_dl_find_hash to ignore stubs when resolving undefined functions without
stubs, the dlopen tests all pass. dlopen gets a pointer to the libc.so
malloc instead of a pointer to the libpthread malloc stub. Yay! :-)
|
|
|
|
|
|
Add timegm() function.
Make lookup_tzname() static (as it should have been).
Have strftime() get timezone information from the passed struct
for the %z and %Z conversions when using struct tm extensions.
|
|
|
|
|
|
Also fix the sizeof() issue since the change to a dynamicly allocated buf.
Note! This is still broken wrt threading, but so is the glibc version.
I'm just commiting this for new until I can test my rewrite.
|
|
|
|
|
|
|
|
a local named 'buf' and we want to avoid shadowing that.
|
|
The vfork() wrapper defined in libpthread, that's used to run
pthread_atfork()-registered handlers, is not only a very bad idea,
it's broken and useless. Here's the rationale:
[---------snip----------]
Since the implementation as it stands is broken (linking a program
that vfork()s and exec()s on the child and wait()s on the parent works
unless you happen to link with libpthread), and I can't think of
any workable solution, I suggest that we simply remove the vfork()
overrider in the non-MMU case. Yes, we might lose some small amount
of functionality here, but it's not like people running uClinux expect
anything resembling actual fork() to work.
|
|
|
|
Because variables are linked to fixed registers, there is a problem in :
(*__errno_location())=(-_r0);
As __errno_location() uses r0 to return the address of the errno location,
the negated address will be assigned instead of the error code.
Attached patch will resolve this.
|
|
|
|
part of the ppp instead.
|
|
which prevents libthread_db (used by gdb) from compiling. Include a
copy within include/sys/user.h for mips, per what was done in glibc.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This code in uClibc would attempt to set the default facility if
none was specified. Except none being specified is 0, which is
also LOG_KERN, therefore klogd could never get kernel messages
logged as LOG_KERN.
|
|
with the ppp package
|
|
syscalls if they are not supported.
|
|
|