OSDN Git Service

uclinux-h8/uClibc.git
19 years agoFix mips bug related to 2.6 headers by following glibc's lead. Based on
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.

19 years agoApparently the sigaction code added was broken, as it generated illegal
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.

19 years agoOptimze _dl_memset() for PowerPC.
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.

19 years agoForgot _dl_memcpy in previous checkin.
Joakim Tjernlund [Tue, 10 Aug 2004 15:18:18 +0000 (15:18 -0000)]
Forgot _dl_memcpy in previous checkin.

19 years agoOn Monday 02 August 2004 08:44 am, Mike Frysinger wrote:
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 :)

19 years agoAt solar's request...
Manuel Novoa III [Tue, 10 Aug 2004 15:11:51 +0000 (15:11 -0000)]
At solar's request...

19 years ago_dl_strlen,_dl_strcat,_dl_strcpy,_dl_strcmp,_dl_strncmp,
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.

19 years ago_dl_get_last_path_component:
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.

19 years agoRevmoved _dl_brkp and _dl_envp. They are not needed anymore.
Joakim Tjernlund [Tue, 10 Aug 2004 10:04:35 +0000 (10:04 -0000)]
Revmoved _dl_brkp and _dl_envp. They are not needed anymore.

19 years agoMike Frysinger writes:
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

19 years agoMike Frysinger writes:
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.

19 years agoMike Frysinger writes:
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.

19 years agoOops.
Joakim Tjernlund [Mon, 9 Aug 2004 08:35:31 +0000 (08:35 -0000)]
Oops.

19 years agoFrom: uclibc-bounces@uclibc.org on behalf of Peter Kjellerstedt
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).

19 years agoThis should fix the dlsym problem Peter van Hoyweghen reported.
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.

19 years agoJoakim Tjernlund writes:
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.

19 years agoJoakim Tjernlund writes:
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.

19 years agodoh
Eric Andersen [Wed, 4 Aug 2004 17:34:07 +0000 (17:34 -0000)]
doh

19 years agoAdd missing header file needed to define PAGE_SIZE
Eric Andersen [Wed, 4 Aug 2004 16:15:42 +0000 (16:15 -0000)]
Add missing header file needed to define PAGE_SIZE

19 years agoAs Joakim Tjernlund rightly notes, I should have used 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.

19 years agocut-n-paste strikes again
Eric Andersen [Fri, 30 Jul 2004 20:55:26 +0000 (20:55 -0000)]
cut-n-paste strikes again

19 years agoCleanup some dead wood in the header files
Eric Andersen [Fri, 30 Jul 2004 20:51:31 +0000 (20:51 -0000)]
Cleanup some dead wood in the header files

19 years agos/___brk_addr/__curbrk/g
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

19 years agoSome mips updates. Add a couple of missing sys/*.h files and update a few others.
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.

19 years agoTeach libdl to use normal libc symbols whenever possible, i.e. malloc
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

19 years agoWhitespace cleanup
Eric Andersen [Fri, 30 Jul 2004 03:31:31 +0000 (03:31 -0000)]
Whitespace cleanup

19 years agoFix screwed up indenting
Eric Andersen [Fri, 30 Jul 2004 00:21:01 +0000 (00:21 -0000)]
Fix screwed up indenting

19 years agoDo not grovel about in the ELF header for the page size when
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.

19 years agoBe certain to include sys/sysmacros.h when major() and minor()
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

19 years agoRemove all reference to __GLIBC_HAVE_LONG_LONG
Eric Andersen [Tue, 27 Jul 2004 22:48:36 +0000 (22:48 -0000)]
Remove all reference to __GLIBC_HAVE_LONG_LONG

19 years agoSupport linux 2.6.x wide device major/minor numbers
Eric Andersen [Mon, 26 Jul 2004 12:36:24 +0000 (12:36 -0000)]
Support linux 2.6.x wide device major/minor numbers

19 years agoFix ftruncate64 and truncate64 for powerpc and mips
Eric Andersen [Wed, 21 Jul 2004 10:00:04 +0000 (10:00 -0000)]
Fix ftruncate64 and truncate64 for powerpc and mips
 -Erik

19 years agoUpdate todo list
Eric Andersen [Sat, 17 Jul 2004 22:39:13 +0000 (22:39 -0000)]
Update todo list

19 years agoUpdate sigaction for arm
Eric Andersen [Sat, 17 Jul 2004 09:36:08 +0000 (09:36 -0000)]
Update sigaction for arm

19 years agoAdd sigaction for mips
Eric Andersen [Sat, 17 Jul 2004 00:39:14 +0000 (00:39 -0000)]
Add sigaction for mips

19 years agoFollow glibc's lead and add a gcc-3.4.1 required symbol to crt0.S.
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.

19 years agoHide the arm libfloat support for now. No longer needed for gcc 3.4.1 and
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.

19 years agoRevert this stuff for now
Eric Andersen [Fri, 16 Jul 2004 13:23:21 +0000 (13:23 -0000)]
Revert this stuff for now

19 years agoPete Popov writes:
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

19 years agoCleanup some cruft
Eric Andersen [Thu, 15 Jul 2004 10:14:10 +0000 (10:14 -0000)]
Cleanup some cruft

19 years agoupdate packaging a bit
Eric Andersen [Thu, 15 Jul 2004 09:21:07 +0000 (09:21 -0000)]
update packaging a bit

19 years agoCleanup a few of the more egregiously broken sysconf values to
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

19 years ago_SC_PAGESIZE is standard. Some ancient legacy unix variants used _SC_PAGE_SIZE
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.

19 years ago_SC_PAGESIZE is standard. Some ancient legacy unix variants used _SC_PAGE_SIZE
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.

19 years agoUse MAP_PRIVATE whenever __ARCH_HAS_MMU__ is set.
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.

19 years agoAtsushi Nemoto writes:
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).

19 years agoh8300 updates from Yoshinori Sato
Eric Andersen [Thu, 15 Jul 2004 07:34:00 +0000 (07:34 -0000)]
h8300 updates from Yoshinori Sato

19 years agoPatch from Yoshinori Sato to add H8/300 relocation types.
Eric Andersen [Thu, 15 Jul 2004 07:05:07 +0000 (07:05 -0000)]
Patch from Yoshinori Sato to add H8/300 relocation types.

19 years agoPeter Kjellerstedt at axis.com writes:
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

19 years agoSigh. I got things working this morning, then checked stuff in from the wrong
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

19 years agoBased on a patch from Alexandre Oliva, make sure _dl_malloc returns a nicely
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,

19 years agoUpdate FAQ a bit
Eric Andersen [Mon, 5 Jul 2004 18:45:50 +0000 (18:45 -0000)]
Update FAQ a bit

19 years agoJoakim Tjernlund writes:
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

19 years agoDisable support for R_ARM_PC24, just like R_PPC_REL24 these should
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

20 years agoLet dl-string.h include dl-sysdep.h, since it has proper include guards
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

20 years agoWhine about R_PPC_REL24 relocations, and tell people to compile
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

20 years agoJoakim Tjernlund writes:
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.

20 years agoJoakim Tjernlund writes:
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.

20 years agoJoakim Tjernlund writes:
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.

20 years agoBradley D. LaRonde writes:
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.

20 years agonote new mailing list posting policy
Eric Andersen [Sat, 19 Jun 2004 06:28:24 +0000 (06:28 -0000)]
note new mailing list posting policy

20 years agoStephen Hemminger from osdl dot org writes:
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

20 years agoJakub Bogusz from pld-linux dot org writes:
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.

20 years agoPhilip Craig at snapgear dot com writes:
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.

20 years agoPer comments from Bernhard Rosenkraenzer, adjust gcc 3.3.x generated asm
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.

20 years agoOops. Missed a spot.
Eric Andersen [Sat, 12 Jun 2004 05:43:09 +0000 (05:43 -0000)]
Oops.  Missed a spot.

20 years agoscrap the goofy time + getpid() based "randomness" and use
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.

20 years agoRemoved unused file.
Tobias Anderberg [Mon, 24 May 2004 10:03:59 +0000 (10:03 -0000)]
Removed unused file.

20 years agoCope when the __NR_get_kernel_syms is undefined (i.e. 2.6.x arm-linux)
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)

20 years agoFix changed link into the mailing list archive.
Manuel Novoa III [Fri, 14 May 2004 19:49:40 +0000 (19:49 -0000)]
Fix changed link into the mailing list archive.

20 years agoJoakim Tjernlund writes:
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

20 years agoAlexandre Oliva writes:
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.

20 years ago__data_start needs to be added to all crt0.S files that don't currently
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.

20 years agoKill off the now obsolete __libc_vfork symbol
Eric Andersen [Fri, 14 May 2004 10:39:05 +0000 (10:39 -0000)]
Kill off the now obsolete __libc_vfork symbol

20 years agoAlexandre Oliva writes:
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.

20 years agoPatch from Alexandre Oliva:
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.

20 years agoAlexandre Oliva writes:
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.

20 years agoupdate libdl so it also groks the new _dl_errno
Eric Andersen [Thu, 13 May 2004 09:23:34 +0000 (09:23 -0000)]
update libdl so it also groks the new _dl_errno

20 years agoAdd define for SHM_HUGETLB
Eric Andersen [Thu, 13 May 2004 05:53:37 +0000 (05:53 -0000)]
Add define for SHM_HUGETLB

20 years agoBradley D. LaRonde writes:
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

20 years agoPatch from Bradley D. LaRonde:
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.

20 years agoAdd a local '_dl_errno' to be used by syscalls in ldso, allowing
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.

20 years agoAs noticed by the sharp eyed Joakim Tjernlund, I stupidly
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.

20 years agoSetup a _dl_pagesize value for use by staticly linked apps
Eric Andersen [Tue, 11 May 2004 11:35:10 +0000 (11:35 -0000)]
Setup a _dl_pagesize value for use by staticly linked apps

20 years agomake certain that getpagesize() returns correct the value for mips
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.

20 years agoPurge trailing white space
Eric Andersen [Tue, 11 May 2004 10:45:25 +0000 (10:45 -0000)]
Purge trailing white space

20 years agoBradley D. LaRonde, brad at laronde dot org writes:
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!  :-)

20 years agoSave r0 before modifying it.
Tobias Anderberg [Mon, 10 May 2004 12:59:17 +0000 (12:59 -0000)]
Save r0 before modifying it.

20 years agoObligatory forgotten file...
Manuel Novoa III [Sat, 8 May 2004 05:20:24 +0000 (05:20 -0000)]
Obligatory forgotten file...

20 years agoChange clock() to allow wrapping.
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.

20 years agoPeter Mazinger asked for this several months ago.
Manuel Novoa III [Fri, 7 May 2004 10:53:57 +0000 (10:53 -0000)]
Peter Mazinger asked for this several months ago.

20 years agoPatch from Yoshinori Sato <ysato@users.sourceforge.jp>.
Manuel Novoa III [Fri, 7 May 2004 10:30:59 +0000 (10:30 -0000)]
Patch from Yoshinori Sato <ysato@users.sourceforge.jp>.

20 years ago"Fix" this so that at least things will link when threading is disabled.
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.

20 years agoFix a couple of issues in configurations I hadn't tested.
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.

20 years agoAdd missing include.
Manuel Novoa III [Fri, 7 May 2004 10:00:36 +0000 (10:00 -0000)]
Add missing include.

20 years agoUCLIBC_COMPLETELY_PIC does nothing, so kill it
Eric Andersen [Fri, 7 May 2004 06:52:18 +0000 (06:52 -0000)]
UCLIBC_COMPLETELY_PIC does nothing, so kill it

20 years agoChange the global 'buf' to 'servbuf' since some functions in here use
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.

20 years agoAlexandre Oliva writes:
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.

20 years agoFix screwed up formatting
Eric Andersen [Wed, 5 May 2004 06:56:30 +0000 (06:56 -0000)]
Fix screwed up formatting

20 years agoJeroen Dobbelaere writes:
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.