Age | Commit message (Collapse) | Author |
|
handle "" strings and optimze it.
_dl_simple_ltoa,_dl_simple_ltoahex:
Optimize for archs which can do pre increment/decrement and load/store
in one instruction.
|
|
|
|
i was sticking some libraries in non-standard (i.e. not-hardcoded) paths and
then updating ld.so.conf accordingly ... oddly though, i couldnt get binaries
that linked against those libraries to run ... `ldconfig -v` showed the
required libraries being detected/cached, so something seemed wrong ...
turns out the libraries were being tagged as LIB_ELF_LIBC0 in the cache and
the loader currently only accepts LIB_ELF_LIBC{5,6} ... since readsoname.c in
ldconfig defines needed_tab with the mapping 'libc.so.0' -> LIB_ELF_LIBC0 it
seems like the loader should accept this type too
find attached a small patch which adds LIB_ELF_LIBC0 along side
LIB_ELF_LIBC{5,6} as an accepted lib type in the loader when dealing with the
ld.so.cache file
|
|
in libdl, the XXFLAGS is set incorrectly if DODEBUG=y ... it has 'I.' added to
it instead of '-I.' ... this of course pisses of gcc :)
find attached a patch that cleans up the XXFLAGS setting so as to minimize
this kind of thing ... when asked, mjn3 said it was a kosher idea ;)
and later writes:
hmm it seems ldso also utilizes USE_CACHE in the code (but LIBRARY_CACHE never
propogates down to the Makefiles)
so the fix is to add $(LIBRARY_CACHE) while setting $(XXFLAGS)
Applied with minor fixes and also fixed up ldso/Makefile to match
libdl/Makefile.
|
|
while playing around with Gentoo on uClibc, i hit some troubles with ldconfig
first, i found that it kept trying to read 'etc/ld.so.conf' ... it didnt want
to read '/etc/ld.so.conf' ... looking at the source, the default conf file is
defined as UCLIBC_RUNTIME_PREFIX "etc/ld.so.conf" ... all fine and dandy, but
the utils/Makefile builds the .c files with this:
-DUCLIBC_RUNTIME_PREFIX=$(R_PREFIX)
i couldnt find where R_PREFIX was defined/used anywhere else, but i did find
that every other time UCLIBC_RUNTIME_PREFIX was defined, it was set like:
-DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\"
changing the utils/Makefile to be like this fixed things for me
next up, i found that i wasnt getting an /etc/ld.so.cache file when i ran
`ldconfig` ... looking at the code, USE_CACHE needs to be defined ...
Rules.mak has a line that reads LIBRARY_CACHE:=#-DUSE_CACHE by default, but
then LIBRARY_CACHE is never used anywhere :)
so the fix here is to add $(LIBRARY_CACHE) to the lines in utils/Makefile
where the .c files are compiled
perhaps a suggestion then ? in my mind it makes sense to utilize a cache file
when running uclibc native but perhaps not while cross compiling ... so
perhaps add LIBRARY_CACHE:=-DUSE_CACHE to the section in Rules.mak where LDSO
is set to the uclibc linker (i.e. native) but set LIBRARY_CACHE:=#-DUSE_CACHE
where LDSO is the $(SYSTEM_LDSO) (i.e. cross compiling)
Applied with minor fixes.
|
|
|
|
[peter.kjellerstedt@axis.com]
Peter Kellerstedt writes:
May I suggest the attached patch instead?
It handles PICFLAG the same way as it was already done
for other architectures (e.g., CRIS and frv).
|
|
However RTLD_LOCAL still doesn't work. Everything is RTLD_GLOBAL.
|
|
PPC32, SPARC32/64 and S390 includes the PLT in its RELA size. This caused ldso
to always do unlazy relocation of the JMPRELs. This patch fixes it.
|
|
This patch makes -fpic work for PCC and optimzes the relcation by moving the cache
flushing stuff to JMP relocs only. Actually PPCs ldso can only handle small
GOT tables(<=8192 entries)anyhow, so it makes little sense to compile PPC with -fPIC.
libuClibc shrunk from 340724 to 330780 bytes with -fpic.
|
|
|
|
|
|
not the hard coded value of 4096.
|
|
|
|
|
|
Some utilities, such as valgrind, have a legitimate reason to know the address
of the current brk. Since we know such utils will peek under our skirt, we
might as well give them what they expect and not use a gratuitously different
symbol name.
-Erik
|
|
others.
|
|
rather than _dl_malloc, fprintf rather than _dl_printf, etc.
-Erik
|
|
|
|
|
|
running on uClinux, which at runtime uses the FLAT file format.
|
|
are being used
|
|
|
|
|
|
-Erik
|
|
|
|
|
|
|
|
|
|
won't be needed for 3.3.4 either when I get some time to clean up that
toolchain which also suffers from the g++ include dir search order bug.
|
|
|
|
Hi Erik,
I'm not sure why the NIOS support is not in uClibc -- perhaps the patch
was rejected or never submitted? In any case, I'm playing with some NIOS
stuff and created this patch against 0.9.26. The work was done by
Microtronix. I'm not sure who else contributed to it. It would be great
to have the NIOS support available in uClibc so developers don't have to
go searching for these bits.
Pete
|
|
|
|
|
|
actually match reality. In particular, _SC_GETPW_R_SIZE_MAX and
_SC_GETGR_R_SIZE_MAX were causing us problems with programs such
as libglib, since they were always returning -1, which is a bit
smaller than the actual passwd and group max buffer sizes.
-Erik
|
|
instead, but we are not such a system and should not propagate such things.
|
|
instead, but we are not such a system and should not propagate such things.
|
|
Only use MAP_SHARED when mmu-less.
|
|
This is a patch for uClibc/libc/sysdeps/linux/mips/sys/procfs.h pulled
from glibc CVS.
This fixes gdb with threaded application (with glibc environment).
Although debugging threaded programs seems not working on uClibc/mips
yet, this patch will be required when it becomes working.
This patch can be applied to any version of uClibc (including current
CVS).
|
|
|
|
|
|
Hello,
the attached patch should bring extra/config in line
with the Linux 2.6.7 sources.
The following are the commit messages for the respective
files from the Linux bk-repository:
checklist.c:
* fix menuconfig choice item help display
confdata.c:
* config: choice fix
* kconfig: don't rename target dir when saving config
expr.c, expr.h:
* config: disable debug prints
mconf.c:
* fix menuconfig choice item help display
menu.c:
* Kconfig: use select statements
symbol.c:
* config: choice fix
* Avoid bogus warning about recursive dependencies
* c99 struct initialiser conversions
textbox.c:
* janitor: don't init statics to 0
util.c:
* fix lxdialog behaviour
//Peter
|
|
tree. Bad boy, No doughnut.
-Erik
|
|
aligned pointer that may be aligned up to page_size. Also add _dl_free,
|
|
|
|
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
|
|
only occur when shared libs are not compiled with -fPIC
|
|
|
|
shared libraries with -fPIC
|
|
Make old weak symbol handling work, if someone wants to
enable it.
|