summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2004-06-27Joakim Tjernlund writes:Eric Andersen
Hi yet again :) in dl-startup.c when performing boot strap relocation the following test exists to make sure that only "_dl_" symbols are relocated: /* We only do a partial dynamic linking right now. The user is not supposed to define any symbols that start with a '_dl', so we can do this with confidence. */ if (!symname || !_dl_symbol(symname)) { continue; } However on PPC(and the other archs as well I suspect) all symbols are "_dl_" symbols so the test is never true. The test can be removed and the whole loop simplified(smaller). This also makes it possible to simplify elfinterp.c This remove the scanning of ldso.so relocs, making relocation faster. I have tested this on PPC and it works well. Do you think this optimization will work for the other arches as well? I can't see why not. Jocke * Tested on x86, arm, mipsel, and powerpc by Erik and works nicely -Erik
2004-06-24Disable support for R_ARM_PC24, just like R_PPC_REL24 these shouldEric Andersen
only occur when shared libs are not compiled with -fPIC
2004-06-20Let dl-string.h include dl-sysdep.h, since it has proper include guardsEric Andersen
2004-06-20Whine about R_PPC_REL24 relocations, and tell people to compileEric Andersen
shared libraries with -fPIC
2004-06-19Joakim Tjernlund writes:Eric Andersen
Make old weak symbol handling work, if someone wants to enable it.
2004-06-19Joakim Tjernlund writes:Eric Andersen
Since MIPS don't have COPY relocs it seems apropiate to define DL_NO_COPY_RELOCS. This will optimize dl_find_hash somewhat.
2004-06-19Joakim Tjernlund writes:Eric Andersen
Glibc does not use COPY class for SHN_COMMOM in MIPS. Make uClibc ldso the same.
2004-06-19Bradley D. LaRonde writes:Eric Andersen
dl-string.h references do_rem, but do_rem is a #define in <arch>/dl-sysdep.h which is not included by dl-sysdep.h. This causes a problem in libdl: In file included from ../../ldso/include/ldso.h:27, from libdl.c:33: ../../ldso/include/dl-string.h: In function `_dl_simple_ltoa': ../../ldso/include/dl-string.h:216: warning: implicit declaration of function `do_rem' Include dl-sysdep.h in dl-string.h before using do_rem.
2004-06-19note new mailing list posting policyEric Andersen
2004-06-12Stephen Hemminger from osdl dot org writes:Eric Andersen
Rather than copy more code back into the bridge-utilities, how about applying this change to uClibc? I hate when packages get cluttered for workarounds for other incompatibilities. The problem is that SIOCGIFCONF only lists interfaces that have IP addresses, so it doesn't find the other interfaces that are being used for bridging. It could be fixed in the kernel to return all interfaces, but then something else might break; and still it mean a kernel update for the 2.4 users. The whole use of ifindex in the bridge API is a bad idea. But we probably have to live with it for compatibility. Patch against uClibc 0.9.26
2004-06-12Jakub Bogusz from pld-linux dot org writes:Eric Andersen
Hello, I managed to get ldso (and thus shared linking to uClibc) to work on sparc (actually sparc64 kernel with 32-bit userspace), at least on simple "hello world" program (more complex ones not tested). Some notes on attached patch (against 0.9.26, would require some work to apply on current CVS - but I tested 0.9.26, not CVS): - ELF magic cannot be examined by _dl_strncmp so early, probably because of string constant, like on ppc/mips/sh (note that early SEND_STDERR still crashes when trying to do _dl_strlen - I suppose that string constants require relocation; but adding load_addr didn't help, just ELF header was displayed instead of crash) - mmap() is syscall6 like on ppc/mips/sh, not old i386 mmap() - for generic sparc (i.e. not sparcv8/sparcv9) gcc produces .udiv/.urem calls for unsigned integer / and % operators - so these operations must be avoided. I copied do_rem definition from arm header. But / and % are used also in _dl_simple_ltoa() and _dl_simple_ltoahex(); in ltoahex gcc optimizes it to shifts (but I think it's safer to use shifts explicitly, not rely on optimization...). I changed % in ltoa to do_rem, but as there was no do_div definition, I changed all "%d" specifiers to "%x" to avoid crashes (this changes wouldn't be needed if _dl_simple_ltoa() were fixed to not use division on sparc). - "#define SOLARIS_COMPATIBLE" in ld_sysdep.h broke ldso on Linux because of redefining _dl_linux_resolve only in some places (it was still referenced in INIT_GOT before redefinition). So _dl_linux_resolve redefinition should be moved before INIT_GOT definition or removed. - sparc64 kernel requires mmap() addresses to be aligned to 8192, not 4096, otherwise mmap() call failed - reloc_entry must be shifted by 10, not 12 (I found similar operation in glibc sources) Aside of sparc-specific fixes: - I moved some _dl_dprintf()s inside if(_dl_debug_*) conditions (to avoid debugging messages when LD_DEBUG is not defined) - it seems that there was possible off-by-one in ltoa and ltoahex? they are called with char[22] as 1st argument, and then '\0' is stored in local[22] (_before_ p decrementation)... or am I missing something? If not, fix is included in patch.
2004-06-12Philip Craig at snapgear dot com writes:Eric Andersen
Strlen was counting the last 3 bytes incorrectly for big endian arm.
2004-06-12Per comments from Bernhard Rosenkraenzer, adjust gcc 3.3.x generated asmEric Andersen
with s/i686.get_pc_thunk.bx/get_pc_thunk_bx/g to make gcc 3.4 happy.
2004-06-12Oops. Missed a spot.Eric Andersen
2004-06-06scrap the goofy time + getpid() based "randomness" and useEric Andersen
the real thing.
2004-05-24Removed unused file.Tobias Anderberg
2004-05-15Cope when the __NR_get_kernel_syms is undefined (i.e. 2.6.x arm-linux)Eric Andersen
2004-05-14Fix changed link into the mailing list archive.Manuel Novoa III
2004-05-14Joakim Tjernlund writes:Eric Andersen
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
2004-05-14Alexandre Oliva writes:Eric Andersen
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.
2004-05-14__data_start needs to be added to all crt0.S files that don't currentlyEric Andersen
have it. It is used by the boehm gc, amoung other things.
2004-05-14Kill off the now obsolete __libc_vfork symbolEric Andersen
2004-05-14Alexandre Oliva writes:Eric Andersen
This patch introduces optimized versions of memcpy and memset for frv.
2004-05-14Patch from Alexandre Oliva:Eric Andersen
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.
2004-05-14Alexandre Oliva writes:Eric Andersen
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.
2004-05-13update libdl so it also groks the new _dl_errnoEric Andersen
2004-05-13Add define for SHM_HUGETLBEric Andersen
2004-05-13Bradley D. LaRonde writes:Eric Andersen
Oops, this adds the page alignment offset to the mprotected size. Regards, Brad
2004-05-12Patch from Bradley D. LaRonde:Eric Andersen
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.
2004-05-12Add a local '_dl_errno' to be used by syscalls in ldso, allowingEric Andersen
useful syscall failure diagnostics.
2004-05-11As noticed by the sharp eyed Joakim Tjernlund, I stupidlyEric Andersen
hard coded 4096 instead of PAGE_SIZE. Because I'm an idiot.
2004-05-11Setup a _dl_pagesize value for use by staticly linked appsEric Andersen
2004-05-11make certain that getpagesize() returns correct the value for mipsEric Andersen
by extracting the value from the ELF header.
2004-05-11Purge trailing white spaceEric Andersen
2004-05-11Bradley D. LaRonde, brad at laronde dot org writes:Eric Andersen
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! :-)
2004-05-10Save r0 before modifying it.Tobias Anderberg
2004-05-08Obligatory forgotten file...Manuel Novoa III
2004-05-08Change clock() to allow wrapping.Manuel Novoa III
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.
2004-05-07Peter Mazinger asked for this several months ago.Manuel Novoa III
2004-05-07Patch from Yoshinori Sato <ysato@users.sourceforge.jp>.Manuel Novoa III
2004-05-07"Fix" this so that at least things will link when threading is disabled.Manuel Novoa III
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.
2004-05-07Fix a couple of issues in configurations I hadn't tested.Manuel Novoa III
2004-05-07Add missing include.Manuel Novoa III
2004-05-07UCLIBC_COMPLETELY_PIC does nothing, so kill itEric Andersen
2004-05-07Change the global 'buf' to 'servbuf' since some functions in here useEric Andersen
a local named 'buf' and we want to avoid shadowing that.
2004-05-06Alexandre Oliva writes:Eric Andersen
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.
2004-05-05Fix screwed up formattingEric Andersen
2004-05-05Jeroen Dobbelaere writes:Eric Andersen
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.
2004-04-30Minor .deb updatesEric Andersen
2004-04-30These headers should not be included in uClibc -- they should beEric Andersen
part of the ppp instead.