Age | Commit message (Collapse) | Author |
|
checking for duplicates and returning an alias if an existing lib
is already loaded is still correct for the dlopen case.
|
|
|
|
|
|
different than all other arches.
-Erik
|
|
things, now that I have cleaned up the code to be a bit less horribly messy.
With this, the shared lib loader works on mips once again.
-Erik
|
|
up badly if still present...
|
|
a chain of dependent libraries or libraries that depend on other
shared libraries will not work!
So with a well placed
dyn_chain->flags |= RTLD_GLOBAL;
everything is now working perfectly!!! Sweet!!!!
This patch also removes some leftover junk from my previous efforts.
|
|
|
|
libraries multiple times, wasting memory and causing different libraries to use
different symbol sets, some of which were not properly resolved.
Continue scrubbing ld.so and converting it to use proper types.
|
|
|
|
|
|
|
|
|
|
|
|
pointer. Fix printing of '0x0x' in ldd output. Simplify discrimination of
libname, so doing things like dlopen("./libfoo.so",RTLD_NOW) with a leading
"./" in the path will work as expected.
-Erik
|
|
|
|
-Erik
|
|
it compiles properly with gcc 3.3.
-Erik
|
|
|
|
|
|
the ldd.c wasn't compilable for SuperH due to a missing ELFCLASSM define and
the readelf executable was linked with a wrong dynamic linker path. To fix
this I removed the --uclibc-use-build-dir.
The patch also fixed all the compiler warnings (-Wall -W).
Erik made a few additional changes to eliminate unused function arguments
and fixup a static variable that was was doing the wrong thing
|
|
|
|
|
|
what the problem library is that is linked vs glibc.
-Erik
|
|
shared lib loader to do the work) when it is possible to do
so, and only go poking about through the ELF headers when that
fails so we can still use 'ldd' on cross compiled stuff.
-Erik
|
|
process. Fix that up too.
|
|
process. Fix that up too.
-Erik
|
|
Mips gdb support for pthreads and similar complex stuff is broken, but then it
couldn't have worked before either...
-Erik
|
|
|
|
the shared lib loader on mips to puke...
-Erik
|
|
lib loader to make it more obvious what is wrong when things puke
early on in the process.
-Erik
|
|
some other minor warnings.
|
|
|
|
under the LGPL. I noticed Steven J. Hill has accidentally changed the license
to be GPL. Per email with him, change it back to LGPL.
Erik Andersen wrote:
>I just noticed that uClibc/ldso/ldso/mips/resolve.S is
>listed as licensed under the GPL, rather than the LGPL
>like the rest of uClibc. Accident?
>
Yes. Feel free to change it.
|
|
|
|
|
|
type of 'struct stat' and 'struct stat64' so they use consistant types.
This change is the result of a bug I found while trying to use GNU tar. The
problem was caused by our using kernel types within struct stat and trying to
directly compare these values with standard types. Trying an 'if (a < b)' when
'a' is an 'unsigned long' and 'b' is an 'int' leads to very different results
then when comparing entities of the same type (i.e. time_t values)....
Grumble. Nasty stuff, but I'm glad I got this out of the way now.
As a result of this fix, uClibc 0.9.17 will not be binary compatible with
earlier releases. I have always warned people this can and will happen.
-Erik
|
|
or RTLD_NOW then we need to error out.
|
|
dlopen and have it be successful. This required moving some
things out of ldso.c into readelflib1.c, and directly including
hash.c and readelflib1.c into dlib.c when building the static
version of the library.
-Erik
|
|
the linux kernel uses.
-Erik
|
|
linked stuff, so put it back but add a check for NULL
|
|
|
|
|
|
Hopefully locale support will build when cross compiling now. Collation is
still not supported, but that's what I'm currently working on. In the
next couple of days, I'll probably put up a couple of files for download
that will save people the trouble of generating all the glibc locales.
Added *wprintf functions, although they currently don't support floating
point. That will be fixed when I rewrite _dtostr... or possibly before.
Added the wcsto{inttype} functions.
Added iconv() and a mini iconv utility. The require locale support and
only provide for conversions involving the various unicode encodings
{ UCS-4*, UCS-2*, UTF-32*, UTF-16*, UTF-8 }, the 8-bit codesets built
with the locale data, and the internal WCHAR_T.
|
|
the "--" option since we always do that anyways.
-Erik
|
|
|
|
- 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
|
|
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
|