OSDN Git Service
Manuel Novoa III [Sun, 15 Aug 2004 08:01:45 +0000 (08:01 -0000)]
Update to add missing c++ namespace support.
Eric Andersen [Sun, 15 Aug 2004 03:59:36 +0000 (03:59 -0000)]
Do not fail all lookups when /etc/resolv.conf is missing, as i.e.
checking on 127.0.0.1 is still valid w/o resolv.conf
-Erik
Manuel Novoa III [Sun, 15 Aug 2004 01:55:02 +0000 (01:55 -0000)]
Logic was reversed.
Eric Andersen [Sat, 14 Aug 2004 07:23:48 +0000 (07:23 -0000)]
req_search returned garbage. This teaches it to behave itself and
return the length and the actual dns packet as received, rather than
making stuff up.
-Erik
Eric Andersen [Fri, 13 Aug 2004 23:39:45 +0000 (23:39 -0000)]
Fixup PAGE_SIZE problems
-Erik
Joakim Tjernlund [Fri, 13 Aug 2004 13:56:25 +0000 (13:56 -0000)]
Fix usage_count in ldso/libdl.
Don't' use atexit in libdl.
Make destrutor in libdl actually run and to dlclose all
dlopened libs.
Remove dlclosed libs from the _dl_symbol_tables list.
Manuel Novoa III [Fri, 13 Aug 2004 04:35:03 +0000 (04:35 -0000)]
Always include the sqrtf wrapper in libm so that we don't need to worry
about conditionally configuring something else for libstdc++.
Manuel Novoa III [Tue, 10 Aug 2004 18:47:06 +0000 (18:47 -0000)]
Fix mips bug related to 2.6 headers by following glibc's lead. Based on
the comment, newer kernels appended "64" to __NR_pread and __NR_pwrite.
Manuel Novoa III [Tue, 10 Aug 2004 16:43:12 +0000 (16:43 -0000)]
Apparently the sigaction code added was broken, as it generated illegal
instruction errors. Disable it for now.
Joakim Tjernlund [Tue, 10 Aug 2004 15:25:35 +0000 (15:25 -0000)]
Optimze _dl_memset() for PowerPC.
Other arches may also benefit from this iff it can do
unaligned stores.
Joakim Tjernlund [Tue, 10 Aug 2004 15:18:18 +0000 (15:18 -0000)]
Forgot _dl_memcpy in previous checkin.
Manuel Novoa III [Tue, 10 Aug 2004 15:12:48 +0000 (15:12 -0000)]
On Monday 02 August 2004 08:44 am, Mike Frysinger wrote:
> the gethostbyname_r() call itself is not segfaulting, but the memory
> returned in the h_aliases array seems to be wrong ...
was playing around with the source today and eventually the obvious answer hit
me ... while read_etc_hosts_r() generatings an array of strings fo h_aliases
and populates it, the dns path does not :)
find attached a patch that'll actually generate the h_aliases list in the
normal dns code path ... i used the etc_hosts_r() code as a template for some
of it ...
note that this is just a simple fix ... it fills the alias list with just the
hostname gethostbyname_r was passed ... the proper fix i think would be to
parse the dns packet down in __dns_lookup() and pass the info back via the
resolv_answer struct ...
but this fix is better than the current state of things ... that is, h_aliases
currently is never initailized in the dns code path :)
Manuel Novoa III [Tue, 10 Aug 2004 15:11:51 +0000 (15:11 -0000)]
At solar's request...
Joakim Tjernlund [Tue, 10 Aug 2004 15:06:30 +0000 (15:06 -0000)]
_dl_strlen,_dl_strcat,_dl_strcpy,_dl_strcmp,_dl_strncmp,
_dl_strchr,_dl_strrchr,_dl_strstr,_dl_memcmp:
Optimize for archs which can do pre increment/decrement and load/store
in one instruction.
Joakim Tjernlund [Tue, 10 Aug 2004 14:44:34 +0000 (14:44 -0000)]
_dl_get_last_path_component:
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.
Joakim Tjernlund [Tue, 10 Aug 2004 10:04:35 +0000 (10:04 -0000)]
Revmoved _dl_brkp and _dl_envp. They are not needed anymore.
Joakim Tjernlund [Tue, 10 Aug 2004 09:50:07 +0000 (09:50 -0000)]
Mike Frysinger writes:
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
Joakim Tjernlund [Tue, 10 Aug 2004 09:23:57 +0000 (09:23 -0000)]
Mike Frysinger writes:
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.
Joakim Tjernlund [Tue, 10 Aug 2004 08:58:12 +0000 (08:58 -0000)]
Mike Frysinger writes:
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.
Joakim Tjernlund [Mon, 9 Aug 2004 08:35:31 +0000 (08:35 -0000)]
Oops.
Joakim Tjernlund [Mon, 9 Aug 2004 08:28:00 +0000 (08:28 -0000)]
From: uclibc-bounces@uclibc.org on behalf of Peter Kjellerstedt
[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).
Joakim Tjernlund [Mon, 9 Aug 2004 08:11:54 +0000 (08:11 -0000)]
This should fix the dlsym problem Peter van Hoyweghen reported.
However RTLD_LOCAL still doesn't work. Everything is RTLD_GLOBAL.
Eric Andersen [Fri, 6 Aug 2004 16:12:11 +0000 (16:12 -0000)]
Joakim Tjernlund writes:
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.
Eric Andersen [Fri, 6 Aug 2004 16:11:43 +0000 (16:11 -0000)]
Joakim Tjernlund writes:
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.
Eric Andersen [Wed, 4 Aug 2004 17:34:07 +0000 (17:34 -0000)]
doh
Eric Andersen [Wed, 4 Aug 2004 16:15:42 +0000 (16:15 -0000)]
Add missing header file needed to define PAGE_SIZE
Eric Andersen [Tue, 3 Aug 2004 09:44:28 +0000 (09:44 -0000)]
As Joakim Tjernlund rightly notes, I should have used PAGE_SIZE
not the hard coded value of 4096.
Eric Andersen [Fri, 30 Jul 2004 20:55:26 +0000 (20:55 -0000)]
cut-n-paste strikes again
Eric Andersen [Fri, 30 Jul 2004 20:51:31 +0000 (20:51 -0000)]
Cleanup some dead wood in the header files
Eric Andersen [Fri, 30 Jul 2004 20:06:01 +0000 (20:06 -0000)]
s/___brk_addr/__curbrk/g
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
Manuel Novoa III [Fri, 30 Jul 2004 19:23:55 +0000 (19:23 -0000)]
Some mips updates. Add a couple of missing sys/*.h files and update a few others.
Eric Andersen [Fri, 30 Jul 2004 03:32:41 +0000 (03:32 -0000)]
Teach libdl to use normal libc symbols whenever possible, i.e. malloc
rather than _dl_malloc, fprintf rather than _dl_printf, etc.
-Erik
Eric Andersen [Fri, 30 Jul 2004 03:31:31 +0000 (03:31 -0000)]
Whitespace cleanup
Eric Andersen [Fri, 30 Jul 2004 00:21:01 +0000 (00:21 -0000)]
Fix screwed up indenting
Eric Andersen [Wed, 28 Jul 2004 14:52:51 +0000 (14:52 -0000)]
Do not grovel about in the ELF header for the page size when
running on uClinux, which at runtime uses the FLAT file format.
Eric Andersen [Tue, 27 Jul 2004 23:14:44 +0000 (23:14 -0000)]
Be certain to include sys/sysmacros.h when major() and minor()
are being used
Eric Andersen [Tue, 27 Jul 2004 22:48:36 +0000 (22:48 -0000)]
Remove all reference to __GLIBC_HAVE_LONG_LONG
Eric Andersen [Mon, 26 Jul 2004 12:36:24 +0000 (12:36 -0000)]
Support linux 2.6.x wide device major/minor numbers
Eric Andersen [Wed, 21 Jul 2004 10:00:04 +0000 (10:00 -0000)]
Fix ftruncate64 and truncate64 for powerpc and mips
-Erik
Eric Andersen [Sat, 17 Jul 2004 22:39:13 +0000 (22:39 -0000)]
Update todo list
Eric Andersen [Sat, 17 Jul 2004 09:36:08 +0000 (09:36 -0000)]
Update sigaction for arm
Eric Andersen [Sat, 17 Jul 2004 00:39:14 +0000 (00:39 -0000)]
Add sigaction for mips
Manuel Novoa III [Fri, 16 Jul 2004 20:23:19 +0000 (20:23 -0000)]
Follow glibc's lead and add a gcc-3.4.1 required symbol to crt0.S.
Manuel Novoa III [Fri, 16 Jul 2004 20:22:22 +0000 (20:22 -0000)]
Hide the arm libfloat support for now. No longer needed for gcc 3.4.1 and
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.
Eric Andersen [Fri, 16 Jul 2004 13:23:21 +0000 (13:23 -0000)]
Revert this stuff for now
Eric Andersen [Fri, 16 Jul 2004 11:09:34 +0000 (11:09 -0000)]
Pete Popov writes:
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
Eric Andersen [Thu, 15 Jul 2004 10:14:10 +0000 (10:14 -0000)]
Cleanup some cruft
Eric Andersen [Thu, 15 Jul 2004 09:21:07 +0000 (09:21 -0000)]
update packaging a bit
Eric Andersen [Thu, 15 Jul 2004 09:09:24 +0000 (09:09 -0000)]
Cleanup a few of the more egregiously broken sysconf values to
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
Eric Andersen [Thu, 15 Jul 2004 08:31:31 +0000 (08:31 -0000)]
_SC_PAGESIZE is standard. Some ancient legacy unix variants used _SC_PAGE_SIZE
instead, but we are not such a system and should not propagate such things.
Eric Andersen [Thu, 15 Jul 2004 08:22:48 +0000 (08:22 -0000)]
_SC_PAGESIZE is standard. Some ancient legacy unix variants used _SC_PAGE_SIZE
instead, but we are not such a system and should not propagate such things.
Eric Andersen [Thu, 15 Jul 2004 08:06:25 +0000 (08:06 -0000)]
Use MAP_PRIVATE whenever __ARCH_HAS_MMU__ is set.
Only use MAP_SHARED when mmu-less.
Eric Andersen [Thu, 15 Jul 2004 07:52:22 +0000 (07:52 -0000)]
Atsushi Nemoto writes:
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).
Eric Andersen [Thu, 15 Jul 2004 07:34:00 +0000 (07:34 -0000)]
h8300 updates from Yoshinori Sato
Eric Andersen [Thu, 15 Jul 2004 07:05:07 +0000 (07:05 -0000)]
Patch from Yoshinori Sato to add H8/300 relocation types.
Eric Andersen [Thu, 15 Jul 2004 05:54:13 +0000 (05:54 -0000)]
Peter Kjellerstedt at axis.com writes:
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
Eric Andersen [Wed, 14 Jul 2004 23:07:46 +0000 (23:07 -0000)]
Sigh. I got things working this morning, then checked stuff in from the wrong
tree. Bad boy, No doughnut.
-Erik
Eric Andersen [Wed, 14 Jul 2004 12:27:03 +0000 (12:27 -0000)]
Based on a patch from Alexandre Oliva, make sure _dl_malloc returns a nicely
aligned pointer that may be aligned up to page_size. Also add _dl_free,
Eric Andersen [Mon, 5 Jul 2004 18:45:50 +0000 (18:45 -0000)]
Update FAQ a bit
Eric Andersen [Sun, 27 Jun 2004 01:16:10 +0000 (01:16 -0000)]
Joakim Tjernlund writes:
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
Eric Andersen [Thu, 24 Jun 2004 07:52:08 +0000 (07:52 -0000)]
Disable support for R_ARM_PC24, just like R_PPC_REL24 these should
only occur when shared libs are not compiled with -fPIC
Eric Andersen [Sun, 20 Jun 2004 11:10:49 +0000 (11:10 -0000)]
Let dl-string.h include dl-sysdep.h, since it has proper include guards
Eric Andersen [Sun, 20 Jun 2004 05:39:04 +0000 (05:39 -0000)]
Whine about R_PPC_REL24 relocations, and tell people to compile
shared libraries with -fPIC
Eric Andersen [Sat, 19 Jun 2004 21:38:41 +0000 (21:38 -0000)]
Joakim Tjernlund writes:
Make old weak symbol handling work, if someone wants to
enable it.
Eric Andersen [Sat, 19 Jun 2004 21:33:04 +0000 (21:33 -0000)]
Joakim Tjernlund writes:
Since MIPS don't have COPY relocs it seems apropiate to define
DL_NO_COPY_RELOCS. This will optimize dl_find_hash somewhat.
Eric Andersen [Sat, 19 Jun 2004 21:32:41 +0000 (21:32 -0000)]
Joakim Tjernlund writes:
Glibc does not use COPY class for SHN_COMMOM in MIPS. Make uClibc ldso
the same.
Eric Andersen [Sat, 19 Jun 2004 19:54:40 +0000 (19:54 -0000)]
Bradley D. LaRonde writes:
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.
Eric Andersen [Sat, 19 Jun 2004 06:28:24 +0000 (06:28 -0000)]
note new mailing list posting policy
Eric Andersen [Sat, 12 Jun 2004 08:41:18 +0000 (08:41 -0000)]
Stephen Hemminger from osdl dot org writes:
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
Eric Andersen [Sat, 12 Jun 2004 08:38:39 +0000 (08:38 -0000)]
Jakub Bogusz from pld-linux dot org writes:
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.
Eric Andersen [Sat, 12 Jun 2004 06:12:21 +0000 (06:12 -0000)]
Philip Craig at snapgear dot com writes:
Strlen was counting the last 3 bytes incorrectly for big endian arm.
Eric Andersen [Sat, 12 Jun 2004 05:52:22 +0000 (05:52 -0000)]
Per comments from Bernhard Rosenkraenzer, adjust gcc 3.3.x generated asm
with s/i686.get_pc_thunk.bx/get_pc_thunk_bx/g to make gcc 3.4 happy.
Eric Andersen [Sat, 12 Jun 2004 05:43:09 +0000 (05:43 -0000)]
Oops. Missed a spot.
Eric Andersen [Sun, 6 Jun 2004 08:08:25 +0000 (08:08 -0000)]
scrap the goofy time + getpid() based "randomness" and use
the real thing.
Tobias Anderberg [Mon, 24 May 2004 10:03:59 +0000 (10:03 -0000)]
Removed unused file.
Eric Andersen [Sat, 15 May 2004 08:21:58 +0000 (08:21 -0000)]
Cope when the __NR_get_kernel_syms is undefined (i.e. 2.6.x arm-linux)
Manuel Novoa III [Fri, 14 May 2004 19:49:40 +0000 (19:49 -0000)]
Fix changed link into the mailing list archive.
Eric Andersen [Fri, 14 May 2004 11:12:25 +0000 (11:12 -0000)]
Joakim Tjernlund writes:
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
Eric Andersen [Fri, 14 May 2004 10:59:09 +0000 (10:59 -0000)]
Alexandre Oliva writes:
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.
Eric Andersen [Fri, 14 May 2004 10:51:16 +0000 (10:51 -0000)]
__data_start needs to be added to all crt0.S files that don't currently
have it. It is used by the boehm gc, amoung other things.
Eric Andersen [Fri, 14 May 2004 10:39:05 +0000 (10:39 -0000)]
Kill off the now obsolete __libc_vfork symbol
Eric Andersen [Fri, 14 May 2004 10:29:45 +0000 (10:29 -0000)]
Alexandre Oliva writes:
This patch introduces optimized versions of memcpy and memset for
frv.
Eric Andersen [Fri, 14 May 2004 10:26:05 +0000 (10:26 -0000)]
Patch from Alexandre Oliva:
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.
Eric Andersen [Fri, 14 May 2004 10:22:10 +0000 (10:22 -0000)]
Alexandre Oliva writes:
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.
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.