OSDN Git Service
Eric Andersen [Thu, 13 May 2004 09:23:34 +0000 (09:23 -0000)]
update libdl so it also groks the new _dl_errno
Eric Andersen [Thu, 13 May 2004 05:53:37 +0000 (05:53 -0000)]
Add define for SHM_HUGETLB
Eric Andersen [Thu, 13 May 2004 00:19:47 +0000 (00:19 -0000)]
Bradley D. LaRonde writes:
Oops, this adds the page alignment offset to the mprotected size.
Regards,
Brad
Eric Andersen [Wed, 12 May 2004 23:11:30 +0000 (23:11 -0000)]
Patch from Bradley D. LaRonde:
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.
Eric Andersen [Wed, 12 May 2004 22:54:59 +0000 (22:54 -0000)]
Add a local '_dl_errno' to be used by syscalls in ldso, allowing
useful syscall failure diagnostics.
Eric Andersen [Tue, 11 May 2004 19:13:26 +0000 (19:13 -0000)]
As noticed by the sharp eyed Joakim Tjernlund, I stupidly
hard coded 4096 instead of PAGE_SIZE. Because I'm an idiot.
Eric Andersen [Tue, 11 May 2004 11:35:10 +0000 (11:35 -0000)]
Setup a _dl_pagesize value for use by staticly linked apps
Eric Andersen [Tue, 11 May 2004 11:14:58 +0000 (11:14 -0000)]
make certain that getpagesize() returns correct the value for mips
by extracting the value from the ELF header.
Eric Andersen [Tue, 11 May 2004 10:45:25 +0000 (10:45 -0000)]
Purge trailing white space
Eric Andersen [Tue, 11 May 2004 07:21:47 +0000 (07:21 -0000)]
Bradley D. LaRonde, brad at laronde dot org writes:
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! :-)
Tobias Anderberg [Mon, 10 May 2004 12:59:17 +0000 (12:59 -0000)]
Save r0 before modifying it.
Manuel Novoa III [Sat, 8 May 2004 05:20:24 +0000 (05:20 -0000)]
Obligatory forgotten file...
Manuel Novoa III [Sat, 8 May 2004 05:12:14 +0000 (05:12 -0000)]
Change clock() to allow wrapping.
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.
Manuel Novoa III [Fri, 7 May 2004 10:53:57 +0000 (10:53 -0000)]
Peter Mazinger asked for this several months ago.
Manuel Novoa III [Fri, 7 May 2004 10:30:59 +0000 (10:30 -0000)]
Patch from Yoshinori Sato <ysato@users.sourceforge.jp>.
Manuel Novoa III [Fri, 7 May 2004 10:22:52 +0000 (10:22 -0000)]
"Fix" this so that at least things will link when threading is disabled.
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.
Manuel Novoa III [Fri, 7 May 2004 10:19:14 +0000 (10:19 -0000)]
Fix a couple of issues in configurations I hadn't tested.
Manuel Novoa III [Fri, 7 May 2004 10:00:36 +0000 (10:00 -0000)]
Add missing include.
Eric Andersen [Fri, 7 May 2004 06:52:18 +0000 (06:52 -0000)]
UCLIBC_COMPLETELY_PIC does nothing, so kill it
Eric Andersen [Fri, 7 May 2004 05:26:31 +0000 (05:26 -0000)]
Change the global 'buf' to 'servbuf' since some functions in here use
a local named 'buf' and we want to avoid shadowing that.
Eric Andersen [Thu, 6 May 2004 09:16:11 +0000 (09:16 -0000)]
Alexandre Oliva writes:
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.
Eric Andersen [Wed, 5 May 2004 06:56:30 +0000 (06:56 -0000)]
Fix screwed up formatting
Eric Andersen [Wed, 5 May 2004 06:56:03 +0000 (06:56 -0000)]
Jeroen Dobbelaere writes:
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.
Eric Andersen [Fri, 30 Apr 2004 22:59:38 +0000 (22:59 -0000)]
Minor .deb updates
Eric Andersen [Fri, 30 Apr 2004 22:20:01 +0000 (22:20 -0000)]
These headers should not be included in uClibc -- they should be
part of the ppp instead.
Eric Andersen [Fri, 23 Apr 2004 21:39:34 +0000 (21:39 -0000)]
It turns out that asm/reg.h is missing from the 2.6.x kernel headers,
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.
Eric Andersen [Tue, 20 Apr 2004 18:51:24 +0000 (18:51 -0000)]
blah
Eric Andersen [Tue, 20 Apr 2004 17:15:53 +0000 (17:15 -0000)]
Fix grammar and spelling
Eric Andersen [Tue, 20 Apr 2004 17:09:40 +0000 (17:09 -0000)]
Mention uwoody
Eric Andersen [Tue, 20 Apr 2004 06:33:11 +0000 (06:33 -0000)]
Cope with gcc 3.4's more aggressive persuit of attribute unused
Eric Andersen [Tue, 20 Apr 2004 06:27:59 +0000 (06:27 -0000)]
We don't need these...
Manuel Novoa III [Wed, 14 Apr 2004 16:21:27 +0000 (16:21 -0000)]
Fix typo.
Eric Andersen [Tue, 6 Apr 2004 12:19:22 +0000 (12:19 -0000)]
Fix a bug noticed by Oleg I. Vdovikin, oleg at cs dot msu dot su.
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.
Eric Andersen [Wed, 24 Mar 2004 22:21:07 +0000 (22:21 -0000)]
glibc does not provide pppio.h, and our doing so conflicts
with the ppp package
Eric Andersen [Fri, 19 Mar 2004 20:53:54 +0000 (20:53 -0000)]
Per patch from Stefan Holst, do not try to compile these
syscalls if they are not supported.
Eric Andersen [Fri, 19 Mar 2004 20:38:10 +0000 (20:38 -0000)]
Patch from Stefan Holst to fix argv[0]
Eric Andersen [Fri, 19 Mar 2004 12:03:30 +0000 (12:03 -0000)]
Based on a patch from Alexandre Oliva, allow uClibc to compile
with __NR_mmap is not available (i.e. only __NR_mmap2)
Eric Andersen [Thu, 18 Mar 2004 11:43:18 +0000 (11:43 -0000)]
Alexandre Oliva writes:
This patch arranges for the .so files in say /usr/lib to be soft links
to ../../lib, instead of to /some/arbitrary/pathname/lib. This
enables seamless relocation of a toolchain containing the development
and run time trees in a sys-root.
Eric Andersen [Thu, 18 Mar 2004 11:41:12 +0000 (11:41 -0000)]
Alexandre Oliva writes:
I added this function after I posted the last version of the FR-V
patch. Add syscall.c.
Eric Andersen [Thu, 18 Mar 2004 11:38:02 +0000 (11:38 -0000)]
Supply '__bzero' with 'bzero' as just a weak alias (since it is not SuSv3)
Eric Andersen [Thu, 18 Mar 2004 11:28:51 +0000 (11:28 -0000)]
Based on a patch from Alexandre Oliva, remove all reference to 'bzero' (which
is not a SuSv3 symbol). Rather than using __bzero internally per Alexandre's
original patch, use memset instead.
Eric Andersen [Thu, 18 Mar 2004 11:17:14 +0000 (11:17 -0000)]
Look in /usr/X11R6/lib as well
Eric Andersen [Thu, 18 Mar 2004 11:12:34 +0000 (11:12 -0000)]
Reduce memory used by static buffers and allocate that memory dynamicly
instead. Based on an initial patch from Tobias Anderberg, but reworked. I
asked Tobias to look into doing something more like what is done in busybox,
but that proved to be a pain.
One possible concern is that these buffers will probably show up as
memory leaks i.e. with valgrind. Perhaps we should add in an atexit
call to free this memory right after we allocate it?
Eric Andersen [Thu, 18 Mar 2004 08:00:40 +0000 (08:00 -0000)]
Joakim Tjernlund writes:
Hi
I just noticed that gcc has an "b"(Address base register) operand that
will match all "r" registers but r0. It is a better fix then adding
r0 to the clobber list.
What do you think?
Eric Andersen [Fri, 12 Mar 2004 00:21:20 +0000 (00:21 -0000)]
Cope gracefully with missing module syscalls
Manuel Novoa III [Thu, 11 Mar 2004 10:10:53 +0000 (10:10 -0000)]
Rewrite the err/warn functions as they were broken (__noreturn__ funcs
were returning). Anyway, also make them threadsafe and smaller. The
error.c file still needs work.
Manuel Novoa III [Wed, 10 Mar 2004 20:43:23 +0000 (20:43 -0000)]
Bug fix: gethostbyname2_r would fail if /etc/host was missing.
Bug fix: gethostbyname_r checked errno without first setting it to a
known value.
Eric Andersen [Tue, 9 Mar 2004 22:33:56 +0000 (22:33 -0000)]
More detail about malloc-simple
Eric Andersen [Tue, 9 Mar 2004 21:57:12 +0000 (21:57 -0000)]
Update todo list indicating the items remaining before 0.9.27
Eric Andersen [Mon, 8 Mar 2004 20:57:21 +0000 (20:57 -0000)]
Fix comment
Eric Andersen [Sat, 6 Mar 2004 19:44:35 +0000 (19:44 -0000)]
Update with the contents of a very helpful comparison of
interfaces vs SuSv3 from heukelum at freemail dot nl
Eric Andersen [Sat, 6 Mar 2004 00:18:08 +0000 (00:18 -0000)]
note that syscall on mips needs to be fixed
Eric Andersen [Fri, 20 Feb 2004 03:37:58 +0000 (03:37 -0000)]
Sigh. I switched the values...
Eric Andersen [Fri, 20 Feb 2004 03:09:45 +0000 (03:09 -0000)]
Per discussion with Joakim Tjernlund, all the horrible weak declarations junk
in libdl pointing to the local 'foobar' function is garbage. This cleans all
that up and makes the code much less horrible. Now it is only really really
ugly (which is a marked improvement),
Eric Andersen [Fri, 20 Feb 2004 03:05:35 +0000 (03:05 -0000)]
Patch from Joakim Tjernlund:
white space cleanup and optimize the inner loop in dl_find_hash.
Eric Andersen [Fri, 20 Feb 2004 02:59:42 +0000 (02:59 -0000)]
___brk_addr and __environ are not functions. Finding the broken
lookup on 'atexit' got me excited and I started fixing the same
problem elsewhere. Except these were correct as-was, and were
not a problem....
Eric Andersen [Fri, 20 Feb 2004 02:40:15 +0000 (02:40 -0000)]
Slightly cleaner formatting
Manuel Novoa III [Fri, 20 Feb 2004 02:36:23 +0000 (02:36 -0000)]
Patch by Joakim Tjernlund <joakim.tjernlund@lumentis.se>, which got
mips mostly working. From there, I tracked the bash failure to a
bad _dl_atexit address and Erik took it from there.
Eric Andersen [Fri, 20 Feb 2004 02:32:06 +0000 (02:32 -0000)]
When doing symbol lookups on functions
Eric Andersen [Thu, 19 Feb 2004 03:36:31 +0000 (03:36 -0000)]
Update the x86 processor listing a bit, to preempt further questions
about the best settings the AMD Elan and the VIA Nehemiah.
Eric Andersen [Wed, 18 Feb 2004 08:18:34 +0000 (08:18 -0000)]
Fixup naming of '_mmap' to 'mmap' so it will properly override
the symbol in common.
Eric Andersen [Wed, 18 Feb 2004 08:12:30 +0000 (08:12 -0000)]
Minor change to better match recent changes to other arches
Eric Andersen [Wed, 18 Feb 2004 08:04:51 +0000 (08:04 -0000)]
Alexandre Oliva writes:
This patch adds code to uClibc to support a new ABI designed for the
FR-V architecture, that enables text segments of executables and
shared libraries to be shared by multiple processes on an OS such as
uClinux, that can run on FR-V processors without an MMU.
Patches for binutils and GCC have just been posted in the
corresponding mailing lists. The binutils patch was approved,
but there's one additional patch pending review, that I posted
this week. An updated GCC patch will be posted to
gcc-patches@gcc.gnu.org as soon as I complete testing (I used a
known-good compiler to test the uClibc patch below).
Since the existing dynamic loader code didn't support independent
relocation of segments, it required changes that were somewhat
extensive. I've added a number of new machine-specific macros to try
to keep the platform and ABI-specific details outside the generic
code. I hope this is not a problem.
Eric Andersen [Wed, 18 Feb 2004 01:15:34 +0000 (01:15 -0000)]
Alexandre Oliva writes:
While testing the FR-V code with GCC mainline, I ran into some
problems in the RPC code. It relies on a GCC extension that is no
longer available, namely, the result of a cast is no longer considered
an lvalue.
This patch enables the code to compile. I haven't been able to test
RPC though, especially in a multi-threaded environment.
Eric Andersen [Tue, 17 Feb 2004 11:25:03 +0000 (11:25 -0000)]
Fixup support for gcc 2.95
Eric Andersen [Tue, 17 Feb 2004 10:55:59 +0000 (10:55 -0000)]
Seperate out the startup stuff from the non-startup stuff.
Begin converting some big ugly macros to inline functions
instead
Eric Andersen [Tue, 17 Feb 2004 10:49:01 +0000 (10:49 -0000)]
Fixup fdatasync on alpha, thanks to Alan Hourihane
Manuel Novoa III [Tue, 17 Feb 2004 10:40:47 +0000 (10:40 -0000)]
Sigh... Fall back to alloca() if munmap is broken (uClinux).
Eric Andersen [Tue, 17 Feb 2004 07:33:12 +0000 (07:33 -0000)]
Kill off an arm specific hack, that fostered three other arch specific
hacks. Just check for the elf magic string one byte at a time....
Eric Andersen [Tue, 17 Feb 2004 07:02:08 +0000 (07:02 -0000)]
When doing _dl_mmap to obtain a bit of anonymous memory, use a much more
sensible -1 fd, rather than pretending to work off of fd 0, which makes
absolutely no sense.
Eric Andersen [Tue, 17 Feb 2004 06:38:01 +0000 (06:38 -0000)]
Do not duplicate stuff from ldso.h
Eric Andersen [Tue, 17 Feb 2004 06:37:02 +0000 (06:37 -0000)]
Provide the ldso syscalls and string funcs earlier in the list
Manuel Novoa III [Sun, 15 Feb 2004 10:35:42 +0000 (10:35 -0000)]
Generic fork works. Use it instead since this didn't handle errno_location.
Eric Andersen [Sun, 15 Feb 2004 09:54:41 +0000 (09:54 -0000)]
Oops.
Eric Andersen [Sun, 15 Feb 2004 09:47:47 +0000 (09:47 -0000)]
Mips can use the generic vfork
Eric Andersen [Sun, 15 Feb 2004 09:43:03 +0000 (09:43 -0000)]
Cris can use the generic vfork
Eric Andersen [Sun, 15 Feb 2004 09:34:42 +0000 (09:34 -0000)]
This should not be inlined. This should probably use a
weak alias as well...
Eric Andersen [Sun, 15 Feb 2004 09:02:54 +0000 (09:02 -0000)]
Fixup fork implementation to provide the __libc_fork symbol
Eric Andersen [Sun, 15 Feb 2004 08:52:38 +0000 (08:52 -0000)]
Use the generic fork implementation on sh64
Eric Andersen [Sat, 14 Feb 2004 21:24:17 +0000 (21:24 -0000)]
Add some padding on the bottom
Eric Andersen [Sat, 14 Feb 2004 21:02:41 +0000 (21:02 -0000)]
Update FAQ a bit
Eric Andersen [Sat, 14 Feb 2004 12:48:47 +0000 (12:48 -0000)]
No point in including debug info for ldso. It isn't helpful to do so
since gdb can't do anything for us.
Eric Andersen [Sat, 14 Feb 2004 12:33:19 +0000 (12:33 -0000)]
Atsushi Nemoto writes:
Also, if you are to enable SUPPORT_LD_DEBUG on MIPS, I think this
patch is needed too.
Manuel Novoa III [Sat, 14 Feb 2004 11:57:41 +0000 (11:57 -0000)]
Fix this as should have been done a long time ago...
Eric Andersen [Sat, 14 Feb 2004 11:54:09 +0000 (11:54 -0000)]
Give gcc branch prediction some hits on obviously unlikely branches
Eric Andersen [Sat, 14 Feb 2004 11:30:39 +0000 (11:30 -0000)]
Joakim Tjernlund writes:
Hi it is me again.
This is the latest ldso patch. the NEW weak symbol handling works now
with a little special handling in _dl_find_hash(). You get to chose
if you want the new or old handling :)
There was 2 missing _dl_check_if_named_library_is_loaded() calls in _dlopen().
I then disabled the _dl_check_if_named_library_is_loaded() in dl-elf.c since
it is rendundant.
Question, why does some _dl_linux_resolver(), like i386, have 2 calls
to _dl_find_hash()? I think that is wrong, isn't it?
I really hope you can check this out soon ...
Eric Andersen [Fri, 13 Feb 2004 11:11:10 +0000 (11:11 -0000)]
Yet more fixups..
Eric Andersen [Fri, 13 Feb 2004 11:05:36 +0000 (11:05 -0000)]
Done free path if it equals not_found
Remember to flose an fopened file
Eric Andersen [Fri, 13 Feb 2004 11:01:02 +0000 (11:01 -0000)]
Another little touch up to avoid problems...
Eric Andersen [Fri, 13 Feb 2004 10:56:43 +0000 (10:56 -0000)]
A better fix...
Eric Andersen [Fri, 13 Feb 2004 10:52:41 +0000 (10:52 -0000)]
Fix the annoying "not a dynamic executable" problem when running ldd
on libuClibc
Eric Andersen [Fri, 13 Feb 2004 10:39:59 +0000 (10:39 -0000)]
Cleanup whitespace and formatting
Eric Andersen [Fri, 13 Feb 2004 09:51:32 +0000 (09:51 -0000)]
Avoid potential double free when locate_library_file() is used
on fully resolved names
Manuel Novoa III [Fri, 13 Feb 2004 01:03:48 +0000 (01:03 -0000)]
Oops.. The custom stream funcs should only be compiled if wanted.
Eric Andersen [Thu, 12 Feb 2004 08:51:21 +0000 (08:51 -0000)]
Based on a problem report and patch from Florian Schirmer, fix a compile
problem with mips -- contrary to my expectation gcc on mips _always_ defines
__PIC__ which breaks the assumption inherent in my code. This should fix
things up.
Eric Andersen [Thu, 12 Feb 2004 06:59:32 +0000 (06:59 -0000)]
More todo list updates
Eric Andersen [Thu, 12 Feb 2004 00:38:34 +0000 (00:38 -0000)]
Paul Mundt lethal at linux-sh dot org writes:
We can't use trapa #0xff on sh2, the only permissible trapa ranges are
32 to 63. On SH-2, we use trapa32 to issue a break in the same way that
trapa #0xff is used on SH-3/4. This behavior is implementation specific,
but is what is used in sh-ipl+g, linux, eCos, uITRON, etc. so we follow
suit here.
Eric Andersen [Thu, 12 Feb 2004 00:28:04 +0000 (00:28 -0000)]
Add missing mips specific include/sys/user.h
Eric Andersen [Thu, 12 Feb 2004 00:18:33 +0000 (00:18 -0000)]
Add our own copies of the include/scsi header files, per what glibc
does, rather than depending on the kernel header files.
-Erik
Manuel Novoa III [Wed, 11 Feb 2004 23:48:50 +0000 (23:48 -0000)]
New stdio core. Should be more maintainable. Fixes a couple of bugs.
Codepaths streamlined. Improved performance for nonthreaded apps
when linked with a thread-enabled libc.
Minor iconv bug and some locale/thread related startup issues fixed.
These showed up in getting a gcj-compiled java helloworld app running.
Removed some old extension functions... _stdio_fdout and _stdio_fsfopen.