This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated
via a8ef24af00206f92061753782e15f773f9bd135e (commit)
from 65aa786d3f6282da02d35b600e82408b47e0a3fe (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a8ef24af00206f92061753782e15f773f9bd135e
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Wed Mar 11 20:33:38 2015 +0100
add defines from GNU libc to fix ltrace compile
Closes ticket #4.
http://www.uclibc-ng.org/trac/ticket/4
-----------------------------------------------------------------------
Summary of changes:
include/elf.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/include/elf.h b/include/elf.h
index 68ec7d7..18d286b 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -2350,6 +2350,11 @@ typedef Elf32_Addr Elf32_Conflict;
#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined
in the input to a link step */
+#define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */
+#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */
+#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */
+
+
/* ARM-specific program header flags */
#define PF_ARM_SB 0x10000000 /* Segment contains the location
addressed by the static base */
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated
via 65aa786d3f6282da02d35b600e82408b47e0a3fe (commit)
via 1f70feb1b063a77c46fcc9427e77b1764d7e12a7 (commit)
via 184cb20881e080aafdac3076ef65c8a86ec49675 (commit)
from 3b8d53ecf756a2352227b6c12eefb63847318005 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 65aa786d3f6282da02d35b600e82408b47e0a3fe
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Mon Mar 9 01:48:19 2015 -0500
remove NAN selection, better do it in your build system
With older gcc than 4.9.x, this breaks the build.
These specific compiler flags belongs better to your
favorite build system.
commit 1f70feb1b063a77c46fcc9427e77b1764d7e12a7
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Sun Mar 8 17:59:34 2015 -0500
mark as git version
commit 184cb20881e080aafdac3076ef65c8a86ec49675
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Sun Mar 8 17:58:44 2015 -0500
remove duplicate entries
-----------------------------------------------------------------------
Summary of changes:
Rules.mak | 6 +-----
extra/Configs/Config.arc | 17 -----------------
extra/Configs/Config.mips | 15 ---------------
3 files changed, 1 insertion(+), 37 deletions(-)
diff --git a/Rules.mak b/Rules.mak
index 56ea7fb..5217004 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -127,7 +127,7 @@ export RUNTIME_PREFIX DEVEL_PREFIX KERNEL_HEADERS MULTILIB_DIR
MAJOR_VERSION := 1
MINOR_VERSION := 0
SUBLEVEL := 1
-EXTRAVERSION :=
+EXTRAVERSION :=-git
VERSION := $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL)
ABI_VERSION := $(MAJOR_VERSION)
ifneq ($(EXTRAVERSION),)
@@ -404,10 +404,6 @@ ifeq ($(TARGET_ARCH),mips)
CPU_CFLAGS-$(CONFIG_MIPS_N64_ABI)+=-mabi=64
CPU_CFLAGS-$(CONFIG_MIPS_O32_ABI)+=-mabi=32
CPU_CFLAGS-$(CONFIG_MIPS_N32_ABI)+=-mabi=n32
-
- CPU_CFLAGS-$(CONFIG_MIPS_NAN_LEGACY)+=-mnan=legacy
- CPU_CFLAGS-$(CONFIG_MIPS_NAN_2008)+=-mnan=2008
-
CPU_LDFLAGS-y += $(CPU_CFLAGS)
endif
diff --git a/extra/Configs/Config.arc b/extra/Configs/Config.arc
index c5406c4..0c0bc71 100644
--- a/extra/Configs/Config.arc
+++ b/extra/Configs/Config.arc
@@ -44,20 +44,3 @@ config CONFIG_ARC_PAGE_SIZE_4K
bool "4KB"
endchoice
-
-choice
- prompt "MMU Page Size"
- default CONFIG_ARC_PAGE_SIZE_8K
-
-config CONFIG_ARC_PAGE_SIZE_8K
- bool "8KB"
- help
- Choose between 4k, 8k (default) or 16k
-
-config CONFIG_ARC_PAGE_SIZE_16K
- bool "16KB"
-
-config CONFIG_ARC_PAGE_SIZE_4K
- bool "4KB"
-
-endchoice
diff --git a/extra/Configs/Config.mips b/extra/Configs/Config.mips
index 76b10c6..4d30d31 100644
--- a/extra/Configs/Config.mips
+++ b/extra/Configs/Config.mips
@@ -33,21 +33,6 @@ config CONFIG_MIPS_N64_ABI
endchoice
choice
- prompt "Target NAN Encoding"
- default CONFIG_MIPS_NAN_LEGACY
- help
- This is the NAN Encoding you want to use. Chose either Legacy
- or 2008.
-
-config CONFIG_MIPS_NAN_LEGACY
- bool "LEGACY"
-
-config CONFIG_MIPS_NAN_2008
- bool "2008"
-
-endchoice
-
-choice
prompt "Target Processor Architecture"
default CONFIG_MIPS_ISA_1 if CONFIG_MIPS_O32_ABI
default CONFIG_MIPS_ISA_3 if CONFIG_MIPS_N32_ABI
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
This fixes the following build error:
GEN include/bits/sysnum.h
GEN libpthread/nptl/sysdeps/unix/sysv/linux/structsem.h
GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.h
GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelbarrier.h
GEN libpthread/nptl/sysdeps/unix/sysv/linux/structsem.h
GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.h
GEN libpthread/nptl/sysdeps/unix/sysv/linux/pthread-pi-defines.h
GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelbarrier.h
GEN libpthread/nptl/sysdeps/unix/sysv/linux/pthread-pi-defines.h
In file included from ./libpthread/nptl/pthreadP.h:25:0,
from <stdin>:2:
./include/sys/syscall.h:24:25: fatal error: bits/sysnum.h: No such file or directory
#include <bits/sysnum.h>
^
compilation terminated.
GEN libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelcond.h
make[1]: *** [libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.h] Error 1
Signed-off-by: Max Filippov <jcmvbkbc(a)gmail.com>
---
Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index 6dd473a..4dc3cd6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -167,7 +167,7 @@ $(ALL_HEADERS_SYS_ARCH):
$(do_ln) $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/sys/$(@F) $@
endif
-$(target-headers-sysdep) $(pregen-headers-y): | $(top_builddir)include/bits $(top_builddir)include/sys
+$(target-headers-sysdep) $(pregen-headers-y): | $(top_builddir)include/bits $(top_builddir)include/sys $(top_builddir)include/bits/sysnum.h
HEADERCLEAN_common:
$(do_rm) $(ALL_HEADERS_COMMON)
--
1.8.1.4
Hi Embedded Hackers,
I released 1.0.1 (Codename Pauwel Kwak) today.
Most important changes:
- fix non-MMU build on ARM (see #2)
- fix non-threading build on XTENSA
- fix static linking of some applications using threads (see #3)
- fix parallel building (thx Max Filippov)
- fix non-threading build on SPARC (thx Gustavo Zacarias)
- fix compilation for SH and XTENSA with GCC 4.9.2
- sync with uClibc changes including all ARC improvements
happy hacking,
Waldemar
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The annotated tag, v1.0.1 has been created
at 98b794026f64edf68721ffb5fe640107e2bd3cc0 (tag)
tagging 3b8d53ecf756a2352227b6c12eefb63847318005 (commit)
tagged by Waldemar Brodkorb
on Sun Mar 8 21:37:27 2015 +0100
- Log -----------------------------------------------------------------
release 1.0.1 (codename pauwel kwak)
"Jan-Benedict Glaw" (6):
Allow for targets that don't know about signed zero floats.
Really define, not undefine the crash statement...
The VAX gas cannot (yet) cope with the tricks played here, so I'm grounding linktime warnings for now.
First round of VAX patches. This isn't complete right now, there are for sure still bugs (properly hidden, of course), a libm is completely missing (I've got one that implements some basic stuff, but that's really not ready for checking in...)
TODOs for the VAX port.
Assebler sources ment to be preprocessed shouldn't contain assembler comments, but C comments instead...
"Steven J. Hill" (126):
Fixed MIPS dynamic linker by removing link order dependency bug.
Changes needed for MIPS with regards to the .init and .fini sections.
Added more debug code.
Changed path where cross development tools are installed.
Moved to 'sys' directory.
Changes so that 'regdef.h' gets included in the development environment.
If we are cross-compiling, don't even try to build the target utilities.
Fix up of '_dlopen' call and removal of unneeded argument in call '_dl_load_elf_shared_library'.
Change default config files for MIPS platforms. Nothing major.
This rule is only necessary for little endian MIPS.
Remove source files that, well, no longer exist :).
ldso specific syscalls and userspace syscalls all in one file now.
Addition to 'distclean' for little endian MIPS.
Ignore symbol '_gp_disp' if it's missing from 'libgcc.a'. That's okay for MIPS platforms.
Added function 'get_current_dir_name' for Linux Test Project. Tested and works identically to function in glibc.
Added function 'mkdtemp' for Linux Test Project.
Add syscalls: modify_ldt _sysctl setresuid getresuid setresgid getresgid
Added 'valloc' back in. Ok, Erik can smack me now.
Per discussions with Erik, 'valloc.c' should be built on top of whichever memory allocator you choose. Unfortunately, the 'malloc-930716' needs a fair amount of work before it is functional. For now, changes have been made to add the 'valloc' call and it works properly with the plain 'malloc' allocator.
Fixed 'struct ipc_perm' and 'struct msqid_ds' members to allow the Linux Test Project to compile as well as be consistent with the architecture specific files. Maybe eventually the architecture specific files could be removed all together.
'syscall' now properly works for MIPS.
Fixed compile bugs having to do with 64-bit filesystem operations that need to be disabled when 'DOLFS' is disabled.
Don't unconditionally save/restore FP registers, we might be doing soft floating point. Thanks to Jay Carlson.
Forgot one more #ifdef related to MIPS soft floating point.
Implemented 'romfs' target so that uClibc works with building uClinux.
Fixed 'dlopen' call for MIPS. Things seem to work swimingly. Woohoo!
Fixed makefiles to remove binaries generated for the configuration menu system when doing a 'make clean'.
Fix target determination for MIPSEL.
Changes for MIPS and new configuration system.
Add in 'ldso' to directory list since 'make clean' was not recursing into it.
Changed '__kernel_nlink_t' data type to match Linux/MIPS kernel type definition and to be consistent with the ABI. Done per conversation with Ralf (Linux/MIPS) maintainer.
Compliance with MIPS ABI and MIPS kernel changes.
GCC-4.1.0 doesn't like it when you reference 'extern' one place and then try and declare the variable static in another. Let's not do that.
Get rid of extern references to ldso variables.
Add in configuration item and Makefile changes for NPTL. We will be placing the NPTL code under the top-level 'libpthread' directory. Nothing compiles or even works at this point, so do not enable this option.
Haha. I caught it before you did.
Import in NPTL code from glibc. For further information please consult the 'README.NPTL' file.
Remove additional test programs.
Remove extraneous file.
We already have these defined.
Cleanup original linuxthreads and update top-level threads makefiles.
Backwards compatability? Bhuwhahaha....you wonder why glibc is so bloated. *oink* *oink*
More glibc backward compatibility cruft. Oh the horror!
Put the change log back in.
Remove usage of 'hp-timing.h' header file which is for platforms with high performance timers. If you want them included in the NPTL build, copy the header from glibc into the 'libc/sysdeps/linux/<ARCH>' of your choice and have fun.
Added new common include file for list primitives used by NPTL.
Added new 'bits/atomic.h' for most of the architectures and the top-level 'include/atomic.h' to add in new atomic operations for use by NPTL. There are multiple files for PowerPC and Sparc for 'atomic.h'. I will let those architecture maintainers choose the correct file. The files come from glibc in 'sysdeps/ARCH/bits'.
Top-level makefile fix for OS agnosticism and set the value of TARGET_ARCH using grep because the '.config' will not get included if we are doing a 'clean' or other targets. This was preventing the proper cleaning up target architecture include files.
Add missing file to the clean list.
In order to accomodate usage of either pthreads implementation, we now have to create symbolic links for 'semaphore.h' and 'pthread.h' which will point to the proper pthreads directory. When we finish getting NPTL working with uClibc, perhaps we can merge them, but a first glance at the differences between the two does not make that very likely.
Add TOPDIR prefix in front of config file when getting target architecture.
Sync uClibc 'sigthread.h' with the latest version from glibc.
There were two versions of 'pthreadtypes.h' originally in uClibc. Also, since we are going to support the two implementations of pthreads, we again need to instead create symbolic links to use the proper version of the file depending on the pthreads option chosen.
Get rid of crud.
Fix up some more NPTL stuff for header file symbolic links.
The function '_dl_memset' should always be inlined regardless of the optimization level chosen. This allows uClibc to be compiled with the latest GCC-4.1.0. While tracking down the specific culprit causing the segmentation fault of the dynamic loader with GCC-4.1.0 I was able to force inlining of other functions such that I shaved 512 bytes off the size of the loader, yay. Also fixed warning in 'dl-hash.c'.
Remove unused include directory.
The newly added __glibc_strerror_r function is probably fine, but the uClibc did not even compile or link without errors. This fixes that up. Please test more thoroughly next time.
'pthread.h' is not the only file that needs to be symlinked. When NPTL gets merged, you will need to do 'semaphore.h' and 'bits/pthreadtypes.h'. I think I have been a good little boy and keeping my NPTL changes out of mainline, so I'm going to go ahead and cross the line this once to get this change in.
'pthread.h' is not the only file that needs to be symlinked. When NPTL gets merged, you will need to do 'semaphore.h' and 'bits/pthreadtypes.h'. I think I have been a good little boy and keeping my NPTL changes out of mainline, so I'm going to go ahead and cross the line this once to get this change in.
I really really HATE gcc-4.1 and its whimsical inline rules.
Remove unneeded if clause. We won't be in this directory unless we have enabled threads.
Change the order in which '__uClibc_init' is called. In the case of NPTL, some auxillary TLS set up has to happen beforehand. This has been tested for almost two months now and I am tired of chasing it around in my merges. Look in the NPTL trunk if you want more information.
Clean up debugging levels for MIPS. This should make things consistent now.
Again, I need to cut down on my merge times and this last set of changes to the makefile structure is killing me. Sorry to put more native thread stuff in, but it cannot be activated in the trunk, so there is no harm.
Neaten up the libpthread directory.
Clean up pthread include mess. Some of these will be needed to support NPTL, but they do no harm for the linuxthreads case. Yes, I tested this.
One more addition.
Fix broken path for PTDIR which needed a '/' at the end to work. Also brought in the other stuff needed for NPTL. Erik, please cut me some slack again. The option is not in 'extra/Config/Config.in' so it cannot be activated. Besides, take a look at the check in tonight on the branch and the post on the mailing list.
Need to get both .o and .os files. (.os files are built for NPTL)
Oops, that was a bad wildcard.
Fix up PTDIR bug and clean target for libpthread.
Do not set the RELOCS_DONE flag until it is actually done. This order matters for NPTL libpthreads to work. Well, that was a nice waste of 3 hours.
Tab clean-up.
You included the wrong file. Check your work better next time. You get a big fat "F" for this one.
Add needed include to build loader.
Fix make macro. Did you even fricking test this?
Enable alias for 'bcopy' otherwise BusyBox will not build *sigh*.
No, '__mempcpy' is used by user-space applications, like coreutils for example and glibc still has '__mempcpy' as a global symbol. How about this, do a complete buildroot file system after hacking uClibc to make sure things work? There's a novel idea.
Fix includes for NPTL thread model.
Move 'librt' includes to be after pthreads since NPTL will be also be adding new code for this library. Be afraid, be very afraid.
Part deux.
We need these aliases to stay so that NPTL can override them.
Get rid of compiler warning.
Yeah, suck it up. I'm tired of merging stuff.
Merge from NPTL.
Remove unused weak_alias. Thanks Peter.
The minimum is different for NPTL because of two new signals.
Merge from NPTL branch.
Merge from NPTL branch. Bring in the remaining changes for sigaction.
Fix alias.
Merge from NPTL branch.
Fix debugging.
Merge from branch.
Merge from branch and add removal of 'tls.h' when using NPTL threads.
Merge from NPTL branch.
Merge from NPTL branch.
Merge from NPTL branch.
Congratulations! You get the stupid award for not including <signal.h> to pull in the signal #define's. How did this compile for you again?
Apply patch from Joseph Myers for MIPS pipe and get rid of the C version. Patch tested.
Sloppy patching on my part. This should be correct.
Use the TSD macros and get rid of warnings.
This never gets defined. I have a patch pending in glibc too.
Revert change. Calls can only be used when utilizing TLS. Sorry for the breakage.
Remove commented include.
I'm seeing double.
Whitespace and tab cleaning.
Do NOT hide 'utime'. When building binutils for the target using buildroot it was undefined. How about when you finish playing hide and seek with symbols you do a complete buildroot build and see if everything really works. $!#@$!#@
If locale support is not enabled, don't build 'tst_ftime_l'.
Fix tests to work if MALLOC_GLIBC_COMPAT is enabled.
Fix 'realloc' and revert previous changes to tests. malloc tests all pass regardless of the setting of MALLOC_GLIBC_COMPAT.
Revert change to remove 'error_print_progname' so that gettext will build. It can be commented out again when someone figures out how to fix gettext building and do the proper thing.
Update ARM EABI kernel interface due to layout and size of struct stat64.
Remove SA_ONSTACK handling for ARM based up on glibc code as submitted by Paul Brook <paul(a)codesourcery.com>.
Add CHECK_ONLY option to allow for running the tests on the target instead of attempting to link or compile them. Perhaps I don't fully understand the test structure, but for TLS and NPTL the tests cannot be compiled on the target without a full source tree.
Remove definition of TIMER_MAX which breaks builds of GCC-4.2 and in glibc code it is not defined.
<none>
The case for _SC_MONOTONIC_CLOCK should only exist if 'clock_getres' does.
Disable declarations for NPTL.
This test needs XLOCALE to work.
Fix ARM EABI signal unwinding to accomodate signal frame layout between Linux kernel versions as reported by Joseph S. Myers on the mailing list. More information available at <http://www.uclibc.org/lists/uclibc/2007-May/017971.html> .
Fix MIPS syscall() and pipe functions to set errno correctly as reported by Daniel Jacobowitz on the mailing list. More information available at <http://www.uclibc.org/lists/uclibc/2007-May/017968.html> .
Fix broken syscall() function since the original patch did not work.
Apply patch as submitted by Blue Smurfy Swirly <blauwirbel(a)gmail.com> for Sparc32.
Enable all of the remaining baud rates. All of the other architectures have them enabled, so let's go all the way. There was a quick discussion on IRC about making the max baud rate configurable. That requires a bunch of #ifdef salting throughout all of the 'termios.h' files for the pre-processor to chew on. I'm going to pass on that for now.
Filter out '-std=gnu99' when running the assembler. This causes an error when building MIPS that looks like this:
Aaron Lehmann (2):
CFLAGS+=-D__FORCE_NOGLIBC, not CFLAGS+=__FORCE_NOGLIBC Change a than to then
fix typo
Abdoulaye Walsimou Gaye (2):
MIPS: Fix build error with linuxthreads.old
misc: Fix build error about missing PAGE_SIZE
Alan Davis (1):
Correct a bug when remapping textrel segments on nommu
Alexander Gordeev (1):
mips: fix errno setting after syscall
Alexander Komyagin (1):
getaddrinfo(): avoid call to __check_pf() when not needed
Alexey Brodkin (7):
test_nptl: replace __sigpause with sigpause
test/math: fix for disabled long double math
test/math: fix for MIPS that takes 32/64 suffix into account
ARC: add configuration option for MMU page size
ARC defconfigs: enable some items
ARC: add configuration option for MMU page size
ARC defconfigs: enable some items
Andreas Schultz (1):
nptl: mips needs updated clone() implementation
Andrew Stubbs (1):
sh/user.h: clean up conflicts from kernel user.h
André Goddard Rosa (1):
wchar: fix inverted parameters in error message
Andy Gibbs (1):
Fix gen_wc8bit support for finding a UTF8 locale on host.
Anthony G. Basile (9):
config: UCLIBC_HAS_OBSTACK to optionally enable obstack support
libc/misc/gnu/obprintf.c: implement obstack_printf and obstack_vprintf
libc/sysdeps/linux/common/sendfile.c: fix sendfile64 visibility
libc: add isfdtype()
libc: add issetugid()
libc: add fallocate() and fallocate64()
statfs: fix compile error when UCLIBC_LINUX_SPECIFIC is not set
mkostemp: fix implementation
mkostemp: fix implementation
Anton Kolesov (4):
ARC: Implement native GDB requirements in procfs.h
lseek: Correct order of offset arguments
ARC: Enable OBSTACK in defconfig for ARC
ARC: Add GNU glob to ARC defconfigs
Atsushi Nemoto (1):
getdents: Fix mips64 build
Aurelien Jacobs (1):
libm: enable log2f and exp2f
Aurelien Jacquiot (1):
The C6X port
Austin Foxley (151):
Add .gitignore
Add a sigaction implementation for sparc
fix compilation of linuxthreads for sparc64
Add working pipe implementation for sparc
sparc: Update syscalls.h to define INTERNAL_SYSCALL
sparc sigaction.c: fix the noted bugs by syncing up with glibc
doc/: typo fix
sparc specific bits/socket.h
include/: add tls errno and res_state
ldso/: tls support for dynamic linker
resolv.c: add support for per thread res_state
dl-support.c: add tls support
errno.c: add tls versions of errno and h_errno
Config.in: enable TLS config option only for nptl
mips: fix typo in elfinterp.c
sparc: add stubs for more of the _Q* ops
ldso: fixup all the rest of the calls to _dl_find_hash
ldso: fixup missed variable rename ( tls_tpnt -> tpntp )
Makerules: add a do_sed command
gitignore: ignore install_dir/
mktemp does not depend on floats
linuxthreads: check TLS_DTV_AT_TP define correctly
test/dlopen: use pthread_once directly
add .gitignore for test/ and extra/
libpthread/nptl: core of the "Native Posix Threading Library" for uClibc
libpthread/nptl_db: debugging support for nptl
test/nptl/: tests for NPTL
test/tls/: tests for thread local storage functionality
some tweaks under libc/ needed for nptl
sparc specific bits needed for nptl
sh specific bits needed for nptl
mips specific bits needed for nptl
i386 specific bit for nptl
arm specific bits needed for nptl
build system changes needed for nptl
rework internal uClibc mutexes to support futex locking, and nptl
use *_not_cancel variants to avoid accidental cancellations with nptl
cancellation support for a large amount of the required syscalls
nptl provides sigaction and raise
librt additions that are now possible with nptl
Config.in: don't attempt to disable lt.old automatically, just have the user get it right
uClibc_main: add the needed support for nptl
whitespace fixes
remove useless .gitignore
remove useless .gitignore
Rules.mak fix typo (qstrup -> qstrip)
Rules.mak fix typo (qstrup -> qstrip)
make the sem_open changes actually compile
Merge remote branch 'origin/master' into nptl_merge
sh: Add new optimisation to the SH4 memcpy
Revert "libc: add hidden calls to pthread cleanup funcs"
Merge remote branch 'origin/master' into nptl_merge
Merge remote branch 'origin/master' into nptl
don't use __i686 in symbol names as it seems gcc can define it
generate nptl headers without a recursive make call
test/stat: fix compiling the memcmp-stat test when __USE_MISC is defined
test/pthread: fix build of cancellation-points test
test/dlopen: Match the function name that libtest actually sets
test/dlopen: fix build for libtest.so
test/stat: fix compiling the memcmp-stat test when __USE_MISC is defined
test/pthread: fix build of cancellation-points test
test/dlopen: Match the function name that libtest actually sets
test/dlopen: fix build for libtest.so
test: nptl and tls tests need main include dir
test/nptl: don't use c99 features if you don't need to
test/: compile fixes for nptl and tls tests
test/nptl: rework tst-tls3 to link with -z,now
test/Rules.mak: disable -z,defs for now
test/.gitignore: Ignore a few more test binaries
test/.gitignore: Ignore a few more test binaries
test/.gitignore: ignore a missed nptl test binary
getaddrinfo.c: include tls.h before resolv.h
uClibc_ctype.h: fix inverted check for susv4 macro
uClibc_ctype.h: fix inverted check for susv4 macro
i386 nptl: add missing weak_alias for pthread_cond_signal
nptl: make build depend directly on nptl headers
nptl: fix old style function declerations
nptl: fix a few more old style declerations
nptl: fix even more old style declarations
get x86_64 nptl building
Revert "nptl: make build depend directly on nptl headers"
Go back to using nptl_arch_headers
Merge remote branch 'origin/master' into nptl
x86_64: no waitpid syscall exists, so use wait4
fix compiling test cases in static mode
fix multiple definitions of pthread_once for x86_64
x86_64: add missing includes to sem_*.S
x86_64: fix up the rest of the includes and aliases for nptl
x86_64: fix multiple definition of chk functions
Merge commit 'origin/master' into nptl
Merge remote branch 'origin/master' into nptl
test/math: put scalbf test under susv3 legacy define
test/math: put scalbf test under susv3 legacy define
nptl: fix a few more old style prototypes
nptl: need to build generic timer_* functions for x86_64 and sparc
test: fix static build of nptl and tls tests
nptl: timer_routines.c (timer_helper_thread):
Unbreak build for sparc on some config's
Merge commit 'origin/master' into nptl
ldso: fix USE_TLS check
libc: build tsd only when tls is enabled
sparc/sysdep: Unify sparc sysdep.h
sparc/sigaction: revert change. These semantics are needed for nptl
mass sync with glibc nptl
a few more build fixes nptl sync
fix typo
update nptl gitignore
sparc/nptl: fix wrong vfork hidden def
sparc/nptl: typo fixes
move pthread_barrier_{init,destroy} to sysdeps/pthread for archs that implement their own like sparc and x86_64
fix nptl build for sparc
compile fixes for i386 nptl
x86_64: unify sysdep.h
i386 unify sysdep.h
x86_64: finish up tls reloc support in ldso
fixes to get nptl compiling for x86_64
use macro to link ldso to libpthread, so it gets the the right name on 64 bit archs
update kernel-features.h with futex features
add dwarf defines used in cfi statements
more fixes for x86_64 nptl
x86_64: compile pthread it's own version of __syscall_error
sparc: also needs generic version of lowlevelrobustlock
sparc: disable cancellable system, as it fails in strange ways right now
initialize new pregen-headers-y variable before including sub makefiles
improve parallel make behaviour
order headers before pregen-headers
get rid of extra variables for nptl pregen altogether
Merge commit 'origin/master' into nptl
Revert "remove config knobs that belong to the nptl branch"
poll.c: fix incorrect merge
nptl needs stdio futexes enabled.
Merge commit 'origin/master' into nptl
correctly quote version in confstr
utils .gitignore update to include getconf
Merge remote branch 'origin/master' into nptl
Merge commit 'origin/master' into nptl
Merge commit 'origin/master' into nptl
change ABI_VERSION back to just include the major number
enable building __fcntl_nocancel, as it used unconditionally now
fix a few build errors for the no threads case
include dlfcn.h in ldso.h to get RTLD_NODELETE definition
some (all?) archs don't define asm, so use builtin __asm__
get rid of needless c99 construct
remove extra comma in lock macro
Revert "don't make __errno_location / __h_errno_location hidden"
sparc: pipe.S
Adding quad float gcc intrinsic implementation for SPARC
Config.sparc: remove warning about shared libs on v7
sparc: fix linking issue with __syscall_error.c
sparc: don't access fp registers when configured for no fpu
nptl: remove sigaction, sigprocmask, and sigfillset from libpthread
Bartosz Golaszewski (1):
insque: fix segfault on (prev == NULL)
Baruch Siach (14):
malloc: enable assert() when malloc debugging
xtensa: fix layout of struct sigcontext to match the kernel
xtensa: fix atomic_decrement_if_positive() return value
ldso: fix unused variable warning
misc: fix nm 'No such file' error
libdl: fix unused variable warning
test: inet: fix build when res_close support is disabled
ldso: remove duplicate function declarations
test: tls: fix build with newer binutils
prctl: fix system call wrapper
libc/sysdeps: commonize ret_ERRVAL
librt: fix mq_timed{send,receive} return instructions
libc: posix_fadvise: restore implementation for xtensa
xtensa: use common ptrace.h
Bernd Schmidt (58):
Add hidden symbols for a number of pthread functions, and use them to ensure that all entries in the __pthread_functions point to functions within libpthread, not identically-named functions in libc.
Certain configure scripts test for presence of dlfcn.h. Don't install it if !HAVE_SHARED.
sys/procfs.h defines a typedef for floating point registers that references an undefined structure. This typedef is used in linuxthreads.old-db, causing a compilation failure. Fixed by defining an empty structure for it - we don't have fp regs anyway.
Add Blackfin specific mmap implementation using sys_mmap2.
Ignore entries of "-1" in rofixup; the linker sometimes has no choice but to create these for deleted entries in .eh_frame.
Change test for a define that got renamed a while ago.
From Jie Zhang: __bswap_16 could not assume that it's zero extended when an unsigned short int is loaded into the data register.
mcontext_t shouldn't have a version argument, and fix REG_B0 definition.
A better atomic ops implementation for the Blackfin, relying on a feature present in our recent kernels.
Add necessary Makefile rules for the Blackfin.
Some shared flat improvements. Fix minor errors: - UCLIBC_SHARED_FLAT_ID instead of SHARED_FLAT_ID - use -Wl,-shared-lib-id properly Use libc_so.a as the source for the shared libc, in order to be able to use -mleaf-id-shared-library on the Blackfin.
Add some necessary Makefile bits for UCLIBC_FORMAT_FLAT_SEP_DATA.
Blackfin crt1.S fixes for building with -msep-data.
Fix merging error: a macro was renamed.
Blackfin FD-PIC patch 1/6. Add a new function _dl_free. In _dl_malloc, ensure we always get back a full page from mmap. Reset _dl_malloc_function and _dl_free_function when libdl is initialized.
Blackfin FD-PIC patch 2/6. Add the necessary changes in ld.so and libdl to deal with targets that prepend an underscore to symbol names.
Blackfin FD-PIC patch 3/6. Change _dl_find_hash to _dl_lookup_hash, as on the NPTL branch. _dl_find_hash is now a wrapper function around it; unlike on the NPTL branch, it retains the old interface so that not all callers need to be changed.
Blackfin FD-PIC patch 4/6. Add a hash table for function descriptors on FD-PIC targets.
Blackfin FD-PIC patches 5/6. A couple more target macros for ld.so to deal with FD-PIC support. We need special code to compute the initial got and dpnt, and we need to pass extra arguments to _dl_get_ready_to_run.
Fix a few warnings introduced by my previous commits.
Blackfin FD-PIC patch 6/6. These are mostly the changes necessary to deal with loading the libraries into memory. A couple new target macros are defined for this purpose, and the code in dl-elf.c is modified to deal with nommu systems.
Some more Blackfin/FDPIC ldso merging work. Include dl-inlines.h when it exists, and move some definitions to their proper place.
A patch from our Blackfin repository, originally from Jie Zhang. This fixes a problem where the linker was trying to use the wrong symbol name for the init function.
Another piece needed for FD-PIC. This compiles another startfile, crtreloc.o, if necessary.
A patch from our Blackfin repository, originally from Mike Frysinger. Add sysdeps/linux/$(TARGET_ARCH) to the list of includes. Needed by some of the Blackfin specific string assembly files.
Update dl-inlines.h from Blackfin repository.
L1 memory support for the Blackfin. A couple new syscalls to manage L1 allocations, dma_memcpy to move stuff between L1 and main memory, and a new structure to describe the global data in L1 scratchpad memory.
Fix the recent dladdr changes so that they compile on FD-PIC targets.
Use DL_RELOC_ADDR when dealing with DL_LOADADDR_TYPE types. Fixes gnu-hash compilation on Blackfin.
Fix a dependency to mention libc.so, not libc.so.0, as we only have a rule to build the former.
Use $(<D) rather than $(^D), as the latter now contains an element corresponding to FORCE, which causes some CFLAGS to be lost.
A slight improvement over my previous commit which ensured we always rebuild libc when one of the source files changes.
Still forgot some libraries in one of the previous commits.
Fix merge error: mmap.c no longer exists in bfin/.
This fixes a problem with the move of libc_hidden_proto to string.h.
Undefining __UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL__ did not work, since we were still defining signal to sysv_signal.
Fix typo that prevented "make clean" from removing objects in libc/misc/locale.
Revert revision 22027 which totally broke getopt.
In string.h, move libc_hidden_proto next to the corresponding declaration. Filter them out when installing headers.
Revert revision 19342, plus one whitespace fix demanded by the pre-commit hook.
Revert revison 19346, except parts needed by later patches (r19347 also added __uc_malloc calls in getnetent.c, so we must retain the include and libc_hidden_proto).
Fix two more cases where a libc_hidden_proto was added to string.h while no libc_hidden_def exists for the function.
Revert revision 19343 and also remove libc_hidden_proto for __uc_malloc. For now, a straight revert; we can decide later wheter we want to do something more.
Revert revision 19344 plus the libc_hidden_proto for __uc_malloc.
Revert revision 19345 plus libc_hidden_proto for __uc_malloc.
Revert revision 19347, plus libc_hidden_proto for __uc_malloc. Some of the code is functionally identical before and after, but for now I'm just mechanically reverting the entire mess.
Allow ABIs where SP points below the stack frame.
Implement ffsl and ffsll.
Add C6X-specific sys/ptrace.h
Add a missing macro to C6X syscalls.h.
Select ARCH_HAS_NO_MMU for C6X.
Fix nommu handling of DT_TEXTREL
Fix malloc alignment
Support dynamic assignment of DSBT_INDEX
Add a C6X-specific ipc.h.
Remove use of attribute_shared_hidden
Remove pragma weak for undeclared symbol
Accept either __NR__lseek or __NR_lseek
Bernd Schmidt bernds_cb1(a)t-online.de (1):
Add Makefile support for DSBT ELF.
Bernhard Reutner-Fischer (906):
- typo in documentation
- fixup after sync with glibc. _ptyname was renamed to __libc_ptyname
- fix typo in comment.
- __td_debug is only needed if NDEBUG is not defined.
- use keywords __asm__ and __inline__ c99.
- make sure that icc generates bits/sysnum.h pgcc would need a completely different treatment here.
- only link asm-generic if it exists. PS: test for existence on Slowaris was disfunctional, last time i looked. Shouldn't matter much here, though..
- fix typo
- gcvt() is marked LEGACY in XSI and mandatory in BSD. Also make compilation conditional on float support.
- Cleanout the only occurance of the SUSv3 LEGACY function getwd() that was furthermore ifdef'ed out anyway.
- honor __UCLIBC_HAS_LFS__
- introduce UCLIBC_SUSV3_LEGACY_MACROS to be able to do away with all LEGACY stuff, even the fallback defines.
- fix compilation of __LDSO_CACHE_SUPPORT__ s/dprintf(2/fprintf(stderr/g
- provide a hidden_def for fputc_unlocked that is aliased to __fputc_unlocked. Fixes undefined references to __fputc_unlocked when calling fputc().
- r16732 forgot to checkin the sync of the __UCLIBC_SUSV3_LEGACY_MACROS__ from string.h
- s/Attemt/Attempt/
- Trim superfluous trailing whitespace. No obj-code changes.
- repair misplaced #endif that got introduced in r17410. Fixes compilation.
- fix format of comment
- commentary typo fix
- sync with glibc (and provide a check for icc). Only affects gcc <2.7 or non-gcc compilers that bailed earlier due to missing int64_t
- see if defined foo before trying to look at the value of foo (that should be 0 in this case. Avoids some warnings).
- s/if USE___THREAD/if defined USE___THREAD && USE___THREAD/g
- fix compilation of GNU glob with !LFS Sounds like a typo, really
- should look if LFS is enabled as suggested by pkj in #1131. This generates identical cc1 input for LFS enabled (compared to before r17652) but makes sure that we pickup the non-LFS if LFS is turned off (like r17652 did in this case).
- silence warning about using an undefined token
- silence warning about using an undefined token
- kbuild update broke uClibc's configuration. It complains about include/bits/uClibc_config.h since there is no include/bits (yet). Depend on it.
- add arm1176 options
- dtrt
- doesn't make sense to impose a limit that is too narrow. 12 ought to be fine..
- shrink resolver code
- include stdbool.h
- commentary typo fix
- make sure to define _LIBC in libc-symbols.h before including anything else. - internal_function is only used inside libc, so do not define it in uClibc_arch_features.h on i386 if we are outside of libc.
- spelling fix
- Fix compilation for mips ABI64 with no LFS. This wants a stub_enosys(readahead) line later on, like many, many others need..
- Fix compilation for mips ABI64 with no LFS.
- allow for passing in UCLIBC_EXTRA_LDFLAGS
- use the compiler-driver instead of the linker - adjust setting flags accordingly to use (hardcoded, see below) -Wl, Potential improvements: *) --warn-unresolved-symbols should perhaps be used for all libs *) eventually rename LDFLAGS to CC_LDFLAGS *) probe for compiler driver's notion of flag to use for passing in linker flags (i.e. don't hardcode "-Wl,")
- move UCLIBC_EXTRA_LDFLAGS below pinning LDFLAGS
- commentary typo fix
- fix order of link-flags On cygwin one has to pass make menuconfig HOST_LOADLIBES="-lcurses -lintl" otherwise just curses is linked in and some symbols that live in intl are unresolved. Closes #1554 and possibly a couple of other reports.
- fix whitespace
- fixup gnu_inline vs. C99 inline - add missing header guards while at it
- Fix compilation: semtimedop has 4 args (and not 6)
- check for -nostdlib
bits/sysnum.h needs a cross compiler to be built. Fortunately, this header is not needed to build gcc. Move generation of this header. (Yann E. MORIN)
- remove unused file
- use libm_DIR and libm_OUT
- fix linking. We use the compiler-driver and not ld.
- fix compilation: In file included from toolchain_build_i386/gcc-3.4.6/libiberty/hashtab.c:49: build_i386/staging_dir/i386-linux-uclibc/sys-include/malloc.h:193: error: ISO C forbids data definition with no type or storage class
- add C99 floating point environment, rounding and exception handling functions for i386. UCLIBC_HAS_FENV
- wrap superlong lines
- forgot to add include/fenv.h
- fix file permissions
Paul Brook writes: The attached patch adds support for compiling arm uClibc as pure Thumb code. This is needed because some recent ARM codes do not implement traditional ARM mode. Specifically:
- fix (parallel) compilation error in ldso.c We have to generate sysnum.h to satisfy all includes of ldso.c
- fix generation of sysnum.h for parallel builds, second take. Revert r21503 and redo more cleanly.
- improve building utils Either by first compiling objects and linking those or by just passing the source to create the desired binary (this patchlet does the latter). Fixes cosmetic glitch by just not building individual .o (in pwd, at least).
- fixup stripping of host utils and make host-utils compile with std=gnu99
- trim trailing whitespace. No object-code changes.
- use a 16bit value for fnstsw as required by newer binutils.
- fixup asm. No object-code changes
- add vmsplice, splice, tee (Timo Teräs) - pull bits/fcntl.h from glibc (Timo Teräs)
- indent
- implement splice,vmsplice,tee for all arches - synch F_LINUX_SPECIFIC_BASE related fcntls for all arches
- cleanup by manually expanding the helpers. Saves several 100 bytes
- add missing #endif
- silence warning
- make it compile with !__UCLIBC_HAS_LOCALE__
- avoid warning due to undefined preprocessor token
- avoid warning due to undefined preprocessor token
- remove old-style definitions. No object-code changes.
- note that __drand48_iterate should be void
- do not delete the libs i keep for size-comparison Explicitely list the directories in which we rm the static(only?) libs.
- fix warning about static not being at the beginning of a decl
- fix warning about old-style function definition This could need a pull from upstream to do away with these __STDC__ conditionals.
- my manpage sais that init_module, create_module, query_module, delete_module were removed in linux-2.6
- Wrap overlong comment-lines. No object-code changes
- rename to match the setdomainname filename
- rename to match the set*() function's filename
- fix compilation error
- for non-threaded, non-macro case we were missing __GI_fputc (for e.g. error.c)
- avoid warning about cast from pointer to integer of different size
- use -print-file-name
- pull commentary fixes from upstream
- fix dependencies for multi-source
- shrink a little bit. text data bss dec hex filename 1176 16 24 1216 4c0 libc/misc/syslog/syslog.o.orig 1140 16 21 1177 499 libc/misc/syslog/syslog.o
- pull wur settings from upstream. No other changes.
- Avoid warning about undefined preprocessor token. No obj-code changes.
- Avoid warning about missing brace. No obj-code changes.
- Avoid warning about undefined preprocessor token. No obj-code changes.
- Avoid warning about missing brace.
- fix dependencies of ldso.c Previously a touch ldso/ldso/dl-debug.c && make ldso/ldso/ldso.oS did nothing
- Avoid warning about missing brace. No obj-code changes.
- nlist is unsigned. Adjust iterator variables accordingly to avoid signedness warnings.
- fix the macros rather than the callees as rightfully noted by bernds (duh!)
- try to pickup UINTMAX_MAX
- Avoid warning about undefined preprocessor token. No obj-code changes.
- Fix gcc glitch with mremap and IMA. For -combine, make sure that we don't pollute our non-varargs mremap decl with some vararg decl from later in the TU by putting ours after anybody else who is picking up mman.h. This is admittedly a small work-around..
- cannot really guarantee proper order, so play safe and compile the problematic sources separately for now.
- default kernel-modules funcs to on.
- fix prerequisites of sysnum.h (has to depend on the script that generates it)
- fix whitespace
- generate deps via gcc
Oh, and prepend a dot to the basename so i don't have to change my habit of calling 'size thefile.o*'
- rm all deps on distclean
- store the used compiler plus flags in the .%.dep files too and use this info to decide whether or not to rebuild something (if e.g. the filestamp of the prereq did not change but the cc or CFLAGS did).
- since we force make into trying to rebuild unconditionally, we have to check for changed prerequisites manually.
- breakup lines of compile.c and add a variable to hold filter-out PHONY target. No functional changes.
- adds several config-options to allow for turning off certain features like o UCLIBC_HAS_GNU_ERROR o UCLIBC_HAS_BSD_ERR o UCLIBC_HAS_PTY o UCLIBC_HAS_GETPT (1) o UCLIBC_SYSCALL_STUBS o UCLIBC_SYSCALL_STUB_WARNING o UCLIBC_LINUX_SPECIFIC (2) o UCLIBC_BSD_SPECIFIC (3) o UCLIBC_NTP_LEGACY (4) o UCLIBC_SV4_DEPRECATED (5) o UCLIBC_HAVE_REALTIME (6) o UCLIBC_HAVE_ADVANCED_REALTIME (7) o UCLIBC_HAVE_EPOLL (8) o UCLIBC_HAVE_XATTR (9) o UCLIBC_HAVE_PROFILING (10)
- Generate dummy rules for prerequisites. Fixes build-failures in ldso when switching thread-impl because of missing rule to make e.g. pthreadtypes.h Thanks to Peter Kjellerstedt for the reminder.
- add libpthread-nonshared-y to files.dep Fixes superfluous rebuild of pthread_atfork.oS.
- Revert _dl_exit touch-up. It breaks on arches that don't define proper/complete/nice syscall facilities.
- fix typo (have to check the content, not if true)
- strip the targets and not prerequisites - tidy up PTHREADS_DEBUG_SUPPORT by using per-target STRIP_FLAGS for the few
- remove duplicate removing of ustat.h
- linuxthreads and linuxthreads.old need nanosleep()
- fix keyword "depends on"
- pull kconfig from 2.6.25.4 It has nicer "-*-" etc hints
- drats. The pre-commit hook is broken. No chance to ci a patch other than obfuscated, sorry.
- do a defconfig for the given arch, not unconditionally for alpha
- switching thread impls without makeing clean before left the objs of the previously selected impl lying around on a distclean. Make sure that this does not happen.
- make libcrypt optional. Untested.
- revert r22233
- forgot to checkin this s/check/FORCE/
- UCLIBC_HAS_GETPT pulls in getpt. - ptsname_r depends on UCLIBC_HAS_PTY just like ptsname()
- remove __USE_BSD guard from __bsd_getpt(). Fixes compilation error for defined UCLIBC_HAS_PTY && !defined UNIX98PTY_ONLY which need both __libc_ptyname1 and __libc_ptyname2 for ptsname_r().
- revert incorrect parts of r22257 and 22259 since posix_openpt lives in getpt.c it has to stay there unconditionally.
- if UNIX98PTY_ONLY is not set then we're in legacy land anyway which needs UCLIBC_HAS_GETPT unconditionally for __libc_ptyname{1,2}[] and related bloat.
- Improve prerequisites and avoid spurious reconfigurations. More details: http://uclibc.org/lists/uclibc/2008-June/019509.html
- no need to export the included dependencies generated by cc
- disregard any and all $(top_builddir) in deps. Fixes e.g. make -C ldso rebuilding unneeded stuff
- fix build error brk.c:(.text.__GI_sysconf+0xd4): undefined reference to `clock_getres'
- remove improper comment
- move stripping into do_ar resp compile-m for the sake of simplicity
- make sure to build crti and crtn with PICFLAG
check and test have to depend on test_compile
wow. So why does test/ keep it's own copy of CFLAGS guessing etc?
- do not run tests that are not available
- don't test libcrypt stubs
- the interp is an order-only prereq of lib-so-y - hint vi on the filetype while at it
- do not test pthread if threads are not available
- add error-counter, do not immediately exit if a testcase fails but print the overall error-counter at the end and exit accordingly.
- remove the error counter
- do not force LFS unto x86_64 folks vapier, you added this in r12384. What was the reasoning back then?
- improve UCLIBC_LINUX_SPECIFIC compile-tested only, fixes libc/misc/statfs/fstatfs64.c:29: error: 'fstatfs' undeclared here (not in a function)
- pull fix for unwinding from the NPTL branch (Johannes Stezenbach) Repair C89 compliance and severe whitespace-defects while at it.
- poison non-standard keywords: Make sure that we can be built with non-C99 compilers, too. Use __\1__ instead.
- fix asm and volatile keywords
- fix inline keyword
- trim any trailing whitespace
- some more asm keyword fixes (Yann E. MORIN)
- Fix powerpc pread/pwrite (Wade Berrier) pread/write wanted to send an 8 byte value in the syscall where only 4 bytes were allowed.
- pull check-lxdialog.sh from linux-2.6.26
- should either be defined or callers should do_t_strip manually afterwards
- flesh out helptext of DOMULTI. Put short, just leave it alone or keep all parts -- alternatively go help with lto if you have time.
- remove a couple of duplicate includes
- fix indentation
- for extern inline, also take __extern_inline and __GNUC_GNU_INLINE__ into account
- adjust range of valid grp buffer size to match pwd buffer size
- honour EXTRA_CPPFLAGS Makes it easier to say something like make libc/sysdeps/linux/common/close.i EXTRA_CPPFLAGS=-P
- add some helpful help text, as advertised.
- the help target is phony
- remove relocations for clock_getres
- fix typo
- remove posix_openpt relocation
- remove gethostbyname_r relocation
- whitespace fixes
- fix typo
- commentary typo fix
- do not attempt to rm twice - clean targets are supposed to clean independently of any .config
- add sync_file_range() Tested successfully on i386..
- sync_file_range(). Missed the i386 directory in previous commit
- add script to generate lots of failing (random)configs rm -f STOP ; ARCH=i386 nohup extra/scripts/randconfig.sh & if you want to stop it, touch STOP
- exec_comm_child can not return ever
- remove non stdc path (old style definitions). No obj-code changes
- posix_fadvise64 for i386
- take LFS into account and add fallback via fadvise64
- add posix_fadvise. Not yet tested most likely broken in advise64
- fix for r23427. Thanks to psm for mentioning this and sorry for the breakage
- do not segfault if we end up with empty tables - silence some warnings while at it
- both getopt gnu and susv3 want {bits/,}getopt.h installed. Closes #1297
- deal with ARM specific syscalls. Closes #2894
- remove debug cruft
- Fix arguments to compare function. Closes #1081
- silence warning about possibly undefined preprocessor token
- only compile them if the respective syscalls are available
- ARMV5 can use STRD and LDRD access instructions but these accesses need to be 8 byte aligned. The dynamic linker's malloc needs to match this so structures become 8 byte aligned to void unaligned accesses. (71_all_uClibc-arm_fix_alignment.patch from gentoo)
- arm eabi needs __UCLIBC_TRUNCATE64_HAS_4_ARGS__ (75_all_uClibc-arm-ftruncate64.patch from gentoo)
- adjust helptext
- expand documentation
- add missing dependency on lt_defines.h - retry with some different locale if en_US happens not to be there
- if we only have socket support then there is no resolver state: In function `__pthread_reset_main_thread': undefined reference to `_res'
- RPC support currently requires either IPv4 and/or IPv6 support
- fix !LFS case for i386
- add missing hidden_def
- fix compilation of legacy mode
- add prototypes
- disable gettext support in obstack. In function `print_and_abort': obstack.c:(.text.print_and_abort+0x1b): undefined reference to `__dcgettext'
- also clean .oS
- add CONFIG_MIPS_ISA_MIPS32R2 (Julian Brown)
- cast both times to double for consistency
- remove files that are not either LGPL or Public Domain. - pull replacement funcs for fpmacros.c from glibc
- fix typo
- add __ieee754_log2()
- add some more math functions (patch from gentoo/solar)
- revert inappropriate part of r23478
- remove all *_hidden_proto(...) on install_headers
- move libm_hidden_proto to the corresponding headers. Remove from callsites. Note that gamma_r is not provided by glibc, perhaps add a SUN specific knob later
- revert r23469. If gnu getopt is disabled, then there is no getopt.h. In these cases the getopt stuff comes from unistd.h (which includes bits/getopt.h for us)
- fix ISO C keywords
- now passes all LTP tests
- honour UCLIBC_HAS_SYSLOG
- do not pass bitwise-or to the assembler. Closes #3164
- add a copy of user_regs
- remove shadows declaration of struct st (already declared in function scope)
- tweak helptext
- fix compilation of UCLIBC_HAS_PTY && !ASSUME_DEVPTS && !LINUX_SPECIFIC
- remove some duplicate includes
- add missing const qualifier for !__NR_sched_setaffinity && HAVE_STUBS
- avoid warning about undefined preprocessor token
- fix whitespace
- use c89-style comments Closes issue #5194
- add long double math wrappers (Ned Ludd)
- tweak inclusion of asm/socket.h for linux-2.4 (Peter S. Mazinger)
- disentangle REALTIME from ADVANCED_REALTIME (Peter S. Mazinger)
- silence warning
- hide relocation (Peter S. Mazinger)
- Fallback waitid impl (Peter S. Mazinger)
- sync obstack.{c,h} with glibc (Peter S. Mazinger)
- move helptexts to their config symbols so that they are actually displayed TODO: trick kconfig into displaying choice help properly
- wrap overlong lines
- mention the architectures that currently support fenv(3). i387 works (could be that it works on x86_64, untested), sse code disabled.
- implement log2()
- add libc_hidden_def(clock_getres) as spotted by Ned Ludd
- fix typo in previous commit
- add/use variables to make build-tools configurable
- Fix strtol*() with xlocale (on e.g. x86_64) (closes #2544)
- revert bad hunk from (my) r22403 CRT need config too
- fix building locale (pre- and generated, even parallel)
- fix bad r23573 from egtvedt
- sync comment to rule as pointed out by psm.
- fix test. Tests are normal userspace and are _not_ part of the libc itself Thanks to Tobias Poschwatta for pointing out this error.
- mention a FIXME for some make guru :)
- fix errno setting (we're outside of libc here)
- standardize fopen error message a bit
- beautify hcompile.u
- tidy up utils_install
- reinstate hostutils target TODO: utils/* should be pulled in again to live in the normal buildsys..
- cut down on attempted pattern rule matches
- prevent spurious rebuilds Previously this led to superfluous re-stripping and the re-ar'ing
- Include stdio.h for the perror prototype, use constants from stdlib.h, tidy up old-style function definition.
- add and use EXTRA_DIRS to wipe the test/locale/C directory
- remove suspicious_dependency
- make sure to match the start of the MAKE_VERSION
- pull kconfig from linux-2.6.27
- remove bashism; don't install config/* to the target
- .. and don't install the config dir, too
- add signalfd()
- fix return value
- fix copy'n paste error
- fix locale dependencies and make default locale generation less verbose. The verbosity can be set to the previous level by passing V=2 to make.
- bump version to 0.9.30-rc2
- mark trunk as -rc2-svn
This should fix malloc with debug and without threads. (Chase N Douglas) This should have been in r23660. Untested.
- document environment variables for make(1)
- guard socket calls with UCLIBC_HAS_SOCKET
- des uses ntohl
- fix toggling thread implementation. Previously the old headers were left in include/ leading to spurious compile failures. This is ugly as it can get (we resort to sneaking -L in for the moment) but good enough for now. The worst thing which can happen is that we ln these headers once per invocation of make, nothing more. If some installation of make(1) complains about the "-L" then wrap it in ifneq ($(findstring check-symlink,$(.FEATURES)),)
- sync fix for scandir errno handling to scandir64 (r23600) Thanks to Peter S. Mazinger for mentioning this.
- do not list non-existing files in the threads prerequisites
- fix sigaction on older kernels (Michael Deutschmann) In issue #5554 Michael wrote: The implementation of sigaction on i386 for older kernels makes the system call using an inline asm element with two flaws:
- do not include netlink headers if netlink is turned off (Michael Deutschmann) Closes #5544
- need to grab features before looking at eventually requested netlink support Thanks to Peter S. Mazinger for pointing out this (obvious) error. The __ASSUME_NETLINK from ricardw's r22531 references a non-existing variable in certain cases. I don't see how that could possibly work..
- delete_module() takes two arguments on linux-2.6 Closes #5644
- remove superfluous ';'. No objcode changes.
- tidy up inline: ldso and syscalls are __always_inline (the latter would need more cleanup)
- fix mips syscall (Atsushi Nemoto)
- fix typo in r23808
- Print helptexts of choices. If a choice (but not it's children) has help, print that. If a choice's child has no help, print parents help.
- add helpful help string
- pull in prototype for memalign()
- fix compilation if LFS is off and STUBs are requested
- trim superfluous ';'. No objcode changes
- bump version to 0.9.30-rc3
- mark trunk as BUGFIX-ONLY after 0.9.30-rc3
- fix another fallout from r23660
- fix use after free (Kevin Day) dl_cleanup will call do_dlclose with the handle. Inside of do_dlclose, the handle will ultimately get free'd.
- minor shrinkage (-50b)
- helper config symbol has to depend on thread support
- improve readability, no objcode changes. Looks a bit like we wouldn't need to calculate the carry flag there?
- whitespace fixes
- Fix __user_locking with stdio buffers (Carmelo AMOROSO) Closes #5254
- jmp on coldfire accepts only address registers Closes #3824
- document more environment variables
- tidy up indentation
- less verbose make clean
- Add temporary hack to wipe dep files even on clean for utils. utils lives outside of the normal build so this is needed until it is properly pulled into the normal system.
- for !UNIX98PTY_ONLY we have to fallback to old-style pty's. Closes #6024
- update recommendation for pregenerated locales. - update name of locale-tarball. We will retroactively fill them in, eventually
- adjust trunk version info
- silence shadow warning
- do not fail if mktemp is not available. Thanks to Peter Mazinger for the report. (r24023 from branch)
- Remove linux-specific prototypes if asked to.
- revert wrong r24049
- Remove linux-specific prototypes if asked to.
- if ssp is enabled then make sure that __stack_chk_fail resolves
- cleanup {,f}stat{,v}fs{,64} relocs
- add hack to check if generating sysnum.h worked out
- add __hot and __cold annotations Will spare us quite some likely()/unlikely() occurances. See http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html for details
- fix args (untested)
- Fix thumb2 PIE (Joseph S. Myers) This patch fixes position-independent executables (PIEs) for Thumb-2. In Thumb assembly, instructions reading pc give a value 4 greater than the address of the instruction, rather than 8 greater as in ARM mode, so the offset to the GOT needs to have the right offset. (The Thumb-1 code already gets this right; it's the code shared by ARM and Thumb-2 that needs fixing.)
- make sure isspace() is exported. Thanks to Skinkie for noticing.
- cosmetic tidy up of clean target
- cosmetic tidy up of clean target
- hide __libc_{f,}statfs. Thanks to Peter S. Mazinger for mentioning this fact.
- hide some time related relocs
- remove some bloat that was added in r23660 and subsequent r23698. The sbrk lock is only needed for LT.old
- hide locks
- revert 24148:24151
- remove fstatfs() and statfs() related headers upon request
- make isascii visible again TODO: *_l() should go
- Use runtime pagesize (Jeremy Kerr) Some powerpc machines can support 64k pages, enabled by the CONFIG_64K_PAGES option in linux.
- use proper macro (no obj-code changes)
- use proper macros
- fix loop for checking ifaddr on both IPv4 and IPv6
- improve documentation of utils and hostutils
- document environment variables used by the install_* targets. See their config helptexts for further detail.
- only strip if cc compiled fine Avoids displaying an additional error from strip when your cc ICEs or fails otherwise.
- install utils into the proper directories
- emulate unavailable syscall getpgrp on e.g. ia64 (Stefan Assmann)
- provide INTERNAL_SYSCALL for ia64 (Stefan Assmann, sassmann at suse de)
- non-pic support for MIPS (Catherine Moore, clm at codesourcery com)
- fix fpclassify, signbit, isfinite, isnan, isinf macros for long double math support - add rule to create preprocessor output for float- and long double math wrapper
- remove whitespace
- fix for !GETOPT_LONG
- remove leftover from r13277
- capget() is linux specific; Sync helptext with current exclude list.
- mark capset() as linux specific
- pthread_attr_{g,s}etstacksize would depend on SUSv3 legacy but are not implemented anyway.
- expand SUSv3_LEGACY - SUSv4_LEGACY part #1 (non-networking)
- ethers only make sense if we want to play with ethernet addresses as in /etc/ethers (man 5 ethers) Assume that any of socket- or IP support indicate that need.
- whitespace cleanup; no obj-code changes
- fix typo in r24594
- fixup incomplete r24515 (fix redefinitions of posix_types for i386->x86_64 with linux >= 2.6.28)
- make sure not to have relocs in Scrt1.o (Peter S. Mazinger)
- make sure to pass the correct PIE flags to gcc (Peter S. Mazinger)
- hide __dl_ldso__ (Peter S. Mazinger)
- remove unavailable functionality upon request (Peter Mazinger)
- commentary typo fix
- make sure __user is defined when including kernel's sigcontext.h
- also link librt with --as-needed and do so unconditionally to work around bugs in gentoo's QA. Just add UCLIBC_HAS_SSP to the "and" of link.asneeded to properly take SSP into account, if you prefer.
- fix install_headers on hosts where ld does not support gnu hash-style but uClibc is configured to use it.
- workaround oddity with position of function attributes
- fix compilation of !UCLIBC_HAS_CTYPE_TABLES by merging duplicate bits into ctype.h
- fix fallout from r24140 and r24160 for !CTYPE_TABLES
- fix link failures coming from recently added, misplaced strverscmp.
- use existing __stringify macro
- we may need getdomainname internally
- fix comment style to make it compile again - add note about "/etc/config/" and the resolver code per se.
- scalb{,f,l} depend on UCLIBC_SUSV3_LEGACY
- repair my r25322 that ment to deal with getdomainname()'s visibility
- explicitely discourage to use pregenerated locale data. Rob Landley promised to provide them for all arches but didn't do that yet so disable it for now since they just do not exist right now (and furthermore cause more pain than gain).
- fix weak ssp symbol on some arches (Peter S. Mazinger) Work around alleged binutils glitch with weak symbols on some arches. See binutils ML, weak psm and vapier.
- also filter out headers-y
- disable libcrypt tests if we have no libcrypt
- remove dependency on GNU error functionality
- remove superfluous $(strip)
- do not pass -Wl with -shared in LDFLAGS_NOSTRIP (Peter S. Mazinger)
- Add strtouq alias (to strtoul) for 64bit
- fix typo
tweak .gitignore
add stub for shm_open() and shm_unlink
include errno.h unconditionally
add testcases for shm_{open,unlink}
remove erroneous ';'
ioperm is not used internally, remove hidden_proto
fix compilation
handle _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN
define attribute_noreturn
add hidden aliases for newer regex search functions
support building out-of-tree
always define CONFIG_SHELL
use pwd, not PWD
use CURDIR
default ?conf to native arch
honour NO_LONG_DOUBLE_MATH
Revert "default ?conf to native arch"
handle make ARCH= config
No need for a libresolv stub
always define float_t as float
document ARCH=
fix make {,install_}{,host}utils
trim Experimentally off and uncommented hidden
descriptive error message
whitespace cleanup
trim whitespace
commentary typo fix
fix coding style
Fix building arm EABI
link-time warning for obsolescent/removed network funcs
_toupper, _tolower depend on SUSv4
ftw() is obsolescent in SUSv4
utime() is obsolescent in SUSv4
add and use qstrip
SUSV4: remove utime.h
check_ld some more flags
libc/inet/resolv.c: reread resolv.conf if its mtime was changed
fix cosmetic typo
remove readelf from helptext
remember some TODOs for 0.9.31
support selecting which locales to build
remove wrong default for choice
Simplify kconfig wording of thread support
remember some TODOs for 0.9.31
support selecting which locales to build
remove wrong default for choice
Simplify kconfig wording of thread support
silence warning about undefined CPP token
realpath: SUSv4 compliant
libm: fix C99_MATH on __NO_LONG_DOUBLE_MATH hosts
Revert "libm: fix C99_MATH on __NO_LONG_DOUBLE_MATH hosts"
ldso: Add missing newlines to some debug messages
libm: use int_WRAPPER_C99 macro
.gitignore: remove unneeded pattern
correct documentation
_Exit(): add weak alias to _exit() for C99
MAXFLOAT: obsolescent in SUSv4
.gitignore more testfiles
test: sync up with toplevel buildsys
fixup working in helptexts
libnsl: add knob to disable it
libutil: provide knob to disable it
UCLIBC_HAS_RESOLV_STUB: Rename config symbol
DO_XSI_MATH: add config knob
fix misplaced HAS_LIBUTIL knob
disable libutil related prototypes if asked to
Add missing order-only prereq for unifdef
SUSv4: disable isascii, toascii, _toupper, _tolower
__assert: include unistd.h for smallint
ppoll: get NULL from stddef.h
remove superfluous extra semicolons
make test-skeleton C89 compliant
futimens: add function
silence rule overriding
realclean: wipe kconfig objects
Makefile: fix indentation
include string.h for memset()
remove wait callbacks for non-cancelation funcs
Look at HAVE_SHARED
make tls and nptl test build
futimens: Ducument why we need manual hidden_proto
in6_{pktinfo,mtuinfo}: provide type if IPV6 is on
avoid warning about unused variable
ether_*() depend on socket or IP support
pass more ld flags
conditional cancellation-point test of usleep
call nanosleep directly
ignore some more testcase binaries
sync confname, environments with glibc
Robustify setting silent mode
correct comment
try to probe if stat.t_mtim.tv_nsec is available
Add update instructions for x86_64 WRT utmp format
warn about old-style crap in extra-annoyance-mode
randconfig.sh: set number of make jobs
rename exp(onent) to ex
futimens: add missing local prototype
test commit
ether_line: fix build for socket && !ip
rename exp(onent) to _exp
ldso: tweak shadow warning with preload file support
fix typo in version mismatch msg
wordexp: silence shadow warning
randconfig.sh: set number of make jobs
rename exp(onent) to ex
futimens: add missing local prototype
test commit
ether_line: fix build for socket && !ip
rename exp(onent) to _exp
ldso: tweak shadow warning with preload file support
fix typo in version mismatch msg
wordexp: silence shadow warning
silence warning about implicit decl of sysctl
libc/inet: convert to foo-y kbuild style
libc/inet: set path to resolver file via CPP
libc/inet: mark other odd /etc/conf/ spot
ftw.h installation: fix inverted logic
silence some warnings about unused params
fix typo in previous commit
getprotoent_r: use correct define for return value
gethostid: switch to getaddrinfo and shrink
convert to foo-y kbuild style
document UCLIBC_EXTRA_CFLAGS
lxdialog: remove objectfiles on clean
add gethostid() testcase
__uClibc_main: use __pagesize to protect against recursion
libm: explain why some funcs are not implemented (yet)
Revert "ftw.h installation: fix inverted logic"
ldso: add missing prototypes
kernel-features: add __ASSUME_POSIX_CPU_TIMERS
prctl: silence shadow warnings
pthread_{attr_,}{s,g}etaffinity: cleanup symbol names
TLS_TCB_AT_TP: avoid warning about undef cpp token
poll: unavailable on linux < 2.2.0
pull kernel-features.h from NPTL
remove config knobs that belong to the nptl branch
reduce number of mkdir calls
install: fix O= PREFIX= install
add MULTILIB_DIR: Path component for libdirs
config: support make defconfig O=/f/o/o
add MULTILIB_DIR: Path component for libdirs
buildsys: fix dir order-only prereq of unifdef
buildsys: Fix O= PREFIX= case
bump version to 0.9.31-rc1
bump version
buildsys: touchup 'make dist' a tiny bit
config: tweak text
prettify make clean
pass CFLAGS-dir to CC-m
utils: hide comment if !V
resolv: DEBUG-print nameserver we talk to
Release 0.9.31
bump version to 0.9.32-git
getconf: move to utils/
getconf: print arbitrary GNU_LIBPTHREAD_VERSION string
pthread_{attr_,}{s,g}etaffinity: cleanup symbol names
confstr: properly stringify version parts
.gitignore getconf binaries
silence warning about undefined preprocessor token
*.i depend on generated headers
prettify make clean
use user-provided host binaries
pthread_mutex_timedlock: always build with optimizations
attribute_optimize: fix typo with args
whitespace cleanup
silence debug warning
temporarily turn on warnings for NPTL
provide prototype for internal helper
test: add API test
*.o[sS]: depend on pregen
PTR_DEMANGLE: add documentation
nptl: fix for !ipv4 && !ipv6
do not generate garbled interp
lgamma: fix sign handling
testsuite: do not run inet tests if !ipv4 && !ipv6
testsuite: .gitignore symlink
buildsys: fix lib/ directory prerequisite
buildsys: conceal install_headers
buildsys: fix clean vs. headerclean
lxdialog: fix ncursesw include detection
nptl: fix wrong path to nptl_db
testsuite: disable some tests for !LFS
silence some warnings about missing prototypes
nptl: remove relocation in pthread_rwlock_init()
wordexp: silence warning
hcreate_r: silence warning in helper func
nptl: fix race condition when generating libpthread.so
nptl: handle PTHREADS_DEBUG_SUPPORT properly
nptl: avoid spurious rebuilds of libpthread*.a
nptl: fix symlinking headers
handle i386 TARGET_SUBARCH
libm: typo fix NO_LONG_DOUBLE variant of gamma_r
librt: simplify handling LDFLAGS
librt: fix linking WRT pthreads
libc: define cfi_personality and cfi_lsda
nptl: fix order of includes for out-of-tree builds
nptl: i386 needs atomic.h for atomic_exchange_acq
fix race condition when generating linker scripts
libc: silence warnings about undefined cpp tokens
buildsys: add brief mode; show defines and ld-flags
intl, nptl_db: fix prerequisites
use uniform form of C99 keywords
nptl: arm: make it compile again
test: silence shadow warning
test/nptl: move eintr.c to where it belongs
remove redundant args to do_ln
nptl: simplify buildsys
nptl: fix subdirs handling
nptl: fix buildsys
nptl: disregard generated tcb-offsets.c
nptl: x86_64: fix compilation of unwinder
nptl: remove superfluous =1 from defines
silence shadow warnings
nptl: (librt) powerpc32's PSEUDO_RET needs __syscall_error
buildsys: tweak quoting of V=
silence warning about incompatible types with _dl_init_static_tls
remove trailing comma in enum
nptl: fix LFS handling
nptl: _POSIX_IPV6 depends on UCLIBC_HAS_IPV6
utils: add pregen requisite
buildsys: check_gcc warning flags
add config parser
sysconf: implement _SC_NPROCESSORS_CONF, _SC_NPROCESSORS_ONLN
switch getservice to config parser
usershell: switch to config parser
getproto: switch to config parser
getnet: switch to config parser
resolver: switch to config parser
Revert "nptl i686: fix pthread_cond_wait.S compilation"
nptl i686: avoid cpp problems with thunk section
testsuite: nptl/tst-basic5 depends on SUSV4_LEGACY
buildsys: Do not error on GNUHASH for clean targets
add header guard
getserv: fix reading services lines w > 80 chars
resolv: simplify MAXALIAS handling
Fix msync() redefinition for noMMU build
nptl: use correct unwind header for unwind-forcedunwind
test/math: bessel depend on XSI_MATH
buildsys: add make {,install_}startfiles
wchar: bug #1471: fix cornercase in mbrtowc
test: ignore some more binaries
config_parser: hide symbols
ldso: silence warning about unused tls var if !tls
libc: silence warning
Config: default ia32 to i486
Revert "ldso: silence warning about unused tls var if !tls"
release 0.9.32-rc1
bump version to 0.9.32-rc1-git
Revert "Makefile.in: Add header to 'all' target"
remove uClibc_ctype.h if !LOCALE
__psfs_parse_spec: always use long int for %p
stdio: fix diagnostic message
arm: mv nptl specific atomic impl to common place
i386: extend IMA guards to also cover LTO
TODO: update
arm: use CAS gcc builtin if SI-mode pattern is available
FORMAT_FDPIC_ELF: only for FRV and BFIN
nptl: fix typo in buildsys
ldso: remove now unused variable
regex: remove set but not used variable
arm: use EABI per default
buildsys: remove wrong file
buildsys: use kbuild style
buildsys: fix inverted logic with thread impls
nptl: imit waitpid just for MIPS O32
memalign: include sys/param.h for MAX
release 0.9.32-rc3
bump version to 0.9.32-rc3-git
resolv: fix res_close not to hang with ipv6
buildsys: do not use $(and)
resolv: really fix res_close not to hang with ipv6
buildsys: do_rm ARCH_HEADERS
__rt_sigwaitinfo: depends on HAS_REALTIME
sysconf: clock_getres depends on HAS_REALTIME
tests: disable ether tests if !HAS_SOCKET
ether_aton: reject invalid input
buildsys: make $(LOCAL_INSTALL_PATH) phony
madvise is LINUX_SPECIFIC
buildsys: prettify ssp.c handling
x86_64: silence warning if !TLS
string: remove unused variable
*/crt?.S: remove .size directives
Revert "*/crt?.S: remove .size directives"
x86_64: fix .size of _init/_fini
i386: fix .size of _init/_fini
*/crtn.S: Remove .size directive for _init and _fini
__uc_malloc: Fix memory-leak in error path
getcwd: Fix memory-leak in error path
ldso: commentary typo fix
buildsys: Turn on strict aliasing for everyone
libubacktrace: fix config-symbol handling
accept4: Implement cancellation
socketcalls: add stubs
add pipe2()
Revert "libubacktrace: fix config-symbol handling"
libubacktrace: mv unwind.h to include
x86_64: add TODO for R_X86_64_RELATIVE
lll: avoid shadow warnings
buildsys: document UCLIBC_EXTRA_CPPFLAGS
commentary typo fix
epoll: unify epoll.h
commentary typo fix
socket: fix stubs
NPTL: needs madvise internally
linux_specific: handle accept4 and pipe2
wordexp: fix mishandled return value of pipe call
libm: fix building out-of-tree
epoll: redo cancellation to match master
NPTL: Fix CTOR_DTOR
libubacktrace: Fix ASNEEDED emission
bump version to 0.9.33-git
resolv: try next server on SERVFAIL
libdl: search for ELF_RTYPE_CLASS_DLSYM in dlsym()
buildsys: pt-initfini.s depends on uClibc_config.h
config: Fix passing defconfig args
resolv: fix bug in res_init with ipv6 nameservers
ldso: add missing include
config: tweak help text
ldso: silence harmless warning for !LDSO_PRELINK_SUPPORT
Config.in: fix erroneously deleted line
resolv: fix compilation
gethostbyname_r: set correct h_errno upon failure
resolv: commentary typo fix
resolv: fix memory leak
pthreads: fix build when DNS resolver is not enabled.
stubs: undef linux specific unless they were asked for
stubs: fix inverted socket logic
stubs: handle linux-specific
stubs: handle linux module functions
buildsys: eventually remove sys/eventfd.h
stubs: remove leftover undefs
setegid: use setresgid conditionally
config: document eventfd
powerpc: Fix typo in clone()
stdlib: add qsort_r
libm: pass CFLAGS to e500 fenv
resolv: hide relocations
unistd: hide relocations
inet: hide relocations
regex_old: make some internal helpers static
stdio: hide _stdio_validate_FILE
misc: hide __gen_tempname
nptl: sem_open: use open64 if LFS
libubacktrace: use .so.$(ABI_VERSION)
nptl: add missing pt-tempname.c
release 0.9.33-rc1
bump version to 0.9.33-rc1-git
libc: build abort with unwind-info for backtrace
tests: silence warnings in crypt
tests: add sha356/512 tests
tests: only test crypt if we have an impl
nptl: .gitignore generated pt-crt{i,n}.S
libcrypt: shrink crypt() again - unmodularise
buildsys: add cppcheck wrapper script
stdlib: use shorhand wur for realloc prototype
stubs: mark stubs as used
arm: tweak comment
syscall: flag ia64 syscall error path as unlikely
*: silence some warnings
buildsys: turn off forced EXTRA_WARNINGS on i386
buildsys: use single slash version of -print-whatever
buildsys: add cppcheck wrapper script (correct one)
ldso: fix typo in debug message
buildsys: fixup sigaction handling
*: if !HAS_THREADS strong alias sigaction
config: ftw is SUSv4-obsolete
test: ignore undefined symbols for API
nptl_db: handle SUSv4-OB
handle signal-OBXSI.SUSv4.syms
tmpnam, tempnam are obsolete in SUSV4
Release 0.9.33
bump version to 0.9.34-git
buildsys: do not add empty obj to archives
stubs: unified from future
buildsys: Fix typo in check-as-var handling
stdio: Fix char signedness in _load_inttype()
buildsys: remove duplicate rule around defconfigs
.gitignore: Ignore dump files
stubs: Disregard LFS
librt: convince spawn to compile for !LFS
parse_config: tweak indentation
resolv: Fix /etc/hosts for more than MAXALIASES aliases
resolv: remove unused variables
resolv: tiny shrinkage in /etc/hosts handling
ipc: eventually use stat64 in ftok()
test: Ignore various test objects in locale
locale: avoid segfault freelocale()
ldd: silence warnings
config: Fix alphabetical sort order of targets
sysconf: use getrlimit to determine ARG_MAX
atomic.h: handle new mips R10K errata
arm: use PATH_MEM in ioperm()
rpmatch: make decl parsable
rpmatch: provide out-of-line implementation
config: tweak STRICT_HEADERS description
ldd: silence warning if !LDSO_LDD_SUPPORT
utils: pass in config flags for ldd
help: Document BUILD_CFLAGS and BUILD_LDFLAGS
help: Document CROSS=
ldd.host: Fix compilation for STANDALONE support
Revert "help: Document CROSS="
ldd: tweak whitespace
buildsys: fix typo in help
libubacktrace: arm: Fix typo in assert
buildsys: prune pthread bits from arch headers
ldso: use .arm mode for resolver unconditionally
libubacktrace: temporarily workaround link issue
test: handle !DO_C99_MATH
test: Fix some warnings in inet
__uclibc_main: remove stray trailing space
utils: Fix missing semicolon
sched.h: include stdlib.h for malloc/free
libc: handle sync_file_range
arm: workaround GCC PR target/53735 with fork()
buildsys: prevent make from searching for .config
buildsys: remove superfluous default n
buildsys: use kbuild style
buildsys: use kbuild style, fix omission
LT.old: reinstate build
getpwnam: hide relocation
buildsys: link libgcc_eh if DODEBUG
config: improve help of UCLIBC_HAS_RESOLVER_SUPPORT
socket.h: pull socket_type.h from eglibc
statfs: support f_frsize
statfs: towards _STATFS_F_FLAGS
mount.h: update
libc: fix typo in statvfs
libc: fix typo in statvfs
libpthread: Fix handling of SUBARCH includes
buildsys: switch libc to kbuild-style
mman: rename MAP_UNINITIALIZE to MAP_UNINITIALIZED
buildsys: switch warning into a TODO
libc: add posix_fallocate()
test: run test{,_glibc} adjacent
stdlib: Fix fndecl of mkostemp, mkostemp64
scripts: remove CVS header from getent
inet: remove noreturn attribute from res_nclose
test: compile test{,_glibc} adjacent
test: cater for config
buildsys: tweak KCONFIG_CONFIG export
buildsys: remove surplus slashes from test dir paths
test: dlopen: fix misplaced buildsys hunk
inet: res_nclose: free user-buffer, not global _res
libc: switch several users to unlikely()
libubacktrace: use libgcc_s.h
test: update test-skeleton.c
test: silence warning in testsuite.h
test: silence warning in skeleton
buildsys: remove calls to mktemp
test: add missing top_srcdir
test: fix non-O checking
rpc: silence warning
LT.old: add missing prototypes
inet: Fix LT{.old,} compilation due to res_iclose
Revert "_scanf.c: Implement 'm' modifier for 'c' and '[' conversions."
stdlib: avoid relocation
relinfo.pl: silence warning
relinfo.pl: use correct interpreter
add UCLIBC_SUSV2_LEGACY to hide valloc
buildsys: fix realclean
libc: hide obstack relocations
libc: Fix _obstack_newchunk public symbol vis
test commit
pull kconfig from linux-3.11
time.c: make ll_tzname* static again
buildsys: rm PT startfiles on realclean
buildsys: on realclean, rm include/{config,generated}
buildsys: document savedefconfig in help
ldso: silence warnings in debug code
buildsys: check LDFLAGS through driver
buildsys: update unifdef
buildsys: add TODO reminder
buildsys: Fix error on config clean in realclean
ldso: use unlikely macro
NPTL: fork: relief register pressure on arm thumb1
ldso: ARC: tweak whitespace some more
buildsys: fixup unifdef state in skiphash
buildsys: fixup unifdef state in skiphash, linenum
buildsys: update unifdef
buildsys: metag: Remove inappropriate comment
ldso: arm, metag: Use runtime pagesize
libc: add guard for arm thumb2 asm
nptl: Fix arm pt-vfork
powerpc: syscall support up to 6 arguments
mips: silence _ABI* undef warnings
libc: silence warning in fts
buildsys: pass correct linker to compiler driver
test: Fix math .c dependency
test: Reuse PTINC in nptl tests
libc: Fix buglet around __progname
sysinfo.h: Prevent redeclarations
ctype.h: Tweak comment
ldso: Fix misplaced declaration
buildsys: Do not install atomic.h
Changelog: complete old data and cycle
mathinline.h: Use __extern_inline
microblaze: Remove duplicate F_{S,G}ETPIPE_SZ
buildsys: remove duplicate UCLIBC_EXTRA_CFLAGS
buildsys: use SED for create-lds
buildsys: refine compile.S
buildsys: tweak check_ld flag probing
test: disable librt shmtest on non-MMU systems
test: wcsftime depends on XLOCALE
ldso: Fix compile-error on noMMU
libc: split multi-source epoll.c
buildsys: Fix typo
nptl: rephrase *.sym handling
buildsys: fix IS_IN_lib*
libc: silence missing prototype warning
buildsys: remove now redundant lib placement defines
m68k: libc: add fmovem* mcffpu condition
nptl: compile pt-vfork in ARM-mode
locale: Add wcsftime()
buildsys: remove some obsolete optimization CFLAGS
mips: rename siginfo _timer members
sigaction: Fix !HAS_REALTIME compilation
config: move STDIO_FUTEXES up a bit
test: disable ptytest unless HAS_PTY
unistd: allow to turn off getopt_long
stdio: Fix printing 0.0
test: Some more tests under conditionals
test: Adjust passed options
libcrypt: return NULL on unsupported salt
libc: Avoid redundant setting of ENOMEM
nptl: compile pt-vfork in ARM-mode
libc: ppc64 etc: Fix sync_file_range
libc: sync_file_range missing comma
buildsys: fix IS_IN_lib* for out-of-tree builds
libc: add setns()
include/elf.h: bump EM_NUM
ldso: silence warning
ldso: silence warning
libc: silence warning
Carmelo AMOROSO (1):
ldso: Add config option for controlling LD_PRELOAD
Carmelo Amoroso (233):
Added support for GNU hash style into dynamic linker
Define _dl_assert in libdl only if __DOASSERTS__ is defined. Thanks to Peter Mazinger
Fix build system to generate locale data instead of using pregenerated ones
Added AVR32 support to uClibc. Signed-off-by: Hans-Christian Egtvedt <hcegtvedt(a)atmel.com>
If uClibc's ld.so encounters text relocations in a shared library - one containing an object built without -fpic/-fPIC - then:
ARM SHMLBA = (4 * PAGE_SIZE). Currently in uclibc arm used shm.h from common directory where SHMLBA = __getpagesize()
Disable tst-ftime_l test if Extended Locale Support is not enabled, otherwise build will fail
Some versions of gcc consider inline merely a hint. AVR32 depends on the system calls actually being inlined, so AVR32 needs to use __always_inline instead of just inline. The attached patch changes this for the system calls.
Fix opendir problem when statically linked due to a missing initialization of the mutex field within DIR struct. When linked dynamically instead, __pthread_mutex_init will initialize the mutex itself. Without this fix, any call to readdir will stuck forever trying to acquire the mutex.
I don't remember exactly why we decided to pick the caller's value of sa_restorer when SA_ONSTACK is set, but it seems to break LTP's sigaltstack testcase. Some users have reported problems with sigaltstack as well; hopefully this will fix it.
Removed pointless initialization to 0 of DIR fields after having added memset. Thanks to Peter Mazinger for pointing this out.
Make sh4 build works again adding a temporary work-around iby redefining __always_inline to inline until gcc 4.x.x will get fixed.
Make sh4 build works again adding a temporary work-around iby redefining __always_inline to inline until gcc 4.x.x will get fixed.
This patch solves a problem in dladdr caused by the wrong value of elf_resolve's loadaddr field for the main application.
Test case to exploit dladdr bug
Fix stack overflow in _ppfs_parsespec
Added AI_NUMERICSERV flag and check if the string is not just a number when AI_NUMERICSERV flag set.
Do not call _dl_de ug_state() before recording ld.so. Signed-off-by: Daniel Jacobowit <dan(a)codesourcery.com>
Fix typos in comment
Added support for ether_line, ether_ntohost and ether_hostton. Added related test cases.
Fix file permissions
Fix file permissions
Call explicitely objclean-y when doing build cleanup. Remove 'find' command. It makes cleanup faster too.
Khem Raj <kraj(a)mvista.com> writes: While compiling trunk on ARM with GCC 4.2 and enabling LDSO_GNU_HASH_SUPPORT I stumbled upon this problem. GCC made a call to libgcc function __aeabi_uidivmod()->__div0()->__raise() and raise is not yet compiled in at the time of compiling ldso so I got well known undefined symbol __raise problem
Move calculation of rem within if (unlikely statement
Remove extra file separator
Add myself as co-maintainer of SH4, specifically for NPTL pthread library and TLS dynamic linker support
Add rempa_file_pages function by Will Newton <will.newton(a)imgtec.com>
Add missing cast in pointer assignment
Enable remap_file_pages prototype controlled by __USE_GNU define as well as mremap, instead of __USE_MISC according to glibc. Missing prototype was spotted out by Peter Mazinger
Fix remap_file_pages prototype and use mman.h header
Fix segfault in __pthread_initialize_minimal in linuxthreads implementation when built without SHARED flag as reported by Will Newton <will.newton(a)gmail.com>
Added support for error_print_progname as proposed by Will Newton <will.newton(a)gmail.com>
Fix some sh4 specific entries
Fix rpc test Makefile
Added implementation for 'locale' command.
Remove gcc warning due to missing prototype for 'testandset'
Add unifdef host tool to clean target
Do not check retbuf if realpath returns NULL
Convert to UNIX format
Added a bounch of locale fixes.
Remove automatically generated header when doing make clean
Synch extern declaration with definition provided in __uClibc_main.c
Fix build failure due to missing 'smallint' definition by adding <unistd.h> header file.
Fix build failure due to missing 'smallint' definition These are source files built on the host.
Fix the ELF magic number for SPARCV9: by Friedrich Oslage <bluebird(a)porno-bullen.de>
Fix typo in macro for tls access model
Fix some compiler warnings
Make locale_headers only when doing pregen and not headers due to dependencies against sysnum.h
Fix makefile target to run test when there are some shell script. SImply do not include SHEL_TESTS among RUNTIME_TESTS, because shell script have a their own rule to be excuted. The runtime evaluation by using the $(shell ...) command doesn't work due to immediate expansion of shell function. Currently only nptl tests have shell script, so this problem have been never discovered before.
Include errno.h from kernel headers instead of using internal errno_values.h otherwie some errno will be missed (i.e. ENOKEY used in libusb)
Fix the test build system by installing headers on a local folder instead of using internal headers.
sh4 don't need to cope with older RLIMIT implementation.
Added several tests for locale support (8 bit and multibyte UTF-8)
Added missing tests for locale with multibyte encoding
Removed wrong preprocessed files
Remove .depend when doing distclean
Fix SH ldso sequence startup.
Follow sh asm convention to indent the instruction into the delay slot. (glibc community refused to apply a my patch for this :-) )
Use getdents syscall if kernel provide supports for this instead of relying upon getdents64.
Revert latest changes. Instead of applying this work-around a proper fix should ensure that statically linked mutli-threaded binaries take always the proper locking implementation.
Hush compiler for extern inline warnings by using __extern_inline macro, this also makes gcc 4.3 happy. (Taken from NPTL branch)
Fill in termios_p data structure only if ioctl syscall doesn't fail (as glibc indeed does).
Fix problem in vfprintf when assertion are enabled. Here follow the output of my analysis: __stdio_fwrite expects at least 1 bytes. fputs_unlocked(S,F) calls fwrite_unlocked and this calls __stdio_fwrite only if bytes to be written are > 0, otherwise simply returs 0 (that is correct). During the parsing of format spec it could happen that __stdio_fwrite is called passing an empty string and with assertion enabled it will abort.
Fix some locale multibyte tests failures ad below:
Add optimized memcpy implementation for sh4 (from Stuart Menefy @STMicroelectronics). This implementation is based on 'backward copying'.
Add INTERNAL_SYSCALL macros for sh
Fix posix_fadvise[64] functions to return the error number in case of failure instead of -1 and setting errno, according to SuSv3 (IEEE Std 1003.1 2004 edition) specification.
Use __always_inline for _dl_gettimeofday as well.
Add work-around for powerpc.
ldso: removed dead code.
Add globally __stringify macro in libc-symbols.h. Remove all other duplicated definitions.
sh: Fix SYSCALL_INST_STRx to work for SH-2[A] core by using the __SH_SYSCALL_TRAP_BASE macro.
i18n: Fix mbrtowc function to handle 0xc0 and 0xc1 sequence.
ldso: do not use hard-coded fd in _dl_dprintf. Use dl_debug_file consinstently.
libdl: use stderr consistently.
ldso: allow undefined references to weak symbols
Fix comment.
sh_ldso: Fix typo: missing semi-colon.
Fix compilation problem whit the following config options: UCLIBC_HAS_STRING_GENERIC_OPT=y UCLIBC_HAS_STRING_ARCH_OPT is not set by making WORD_COPY_FWD macros visible.
Fix scandir function to reset the errno when the selector returns zero(no entries) modifying the errno. The attached test case implements a dummy filter that returns alway no entries, but change the errno. scandir is not expected to fail, just returning 0 entries.
Move _dl_iterate_phdr into libc.so.0 and libc.a (as glibc does). Currently we have an implementation in ld.so and libdl.a.
Fix typo: missing )
Changed Copyright and License statement according to COPYING.LIB.boilerplate
Changed Copyright and License statement according to COPYING.LIB.boilerplate
Make wcsxfrm visible also when LOCALE support is disabled.
This patch fixes locale-mbwc test failures when __UCLIBC_HAS_LOCALE__ is disabled and __UCLIBC_HAS_WCHAR__ is enabled. The only locale available when __UCLIBC_HAS_LOCALE__ is disabled is the C locale, the others locale are skipped.
Make __UCLIBC_HAVE_ASM_CFI_DIRECTIVES__ visible in case the arch supports this feature. SH4 will use this in some aseembly files for the NPTL implementation. Add now safely on trunk.
Fix wcswidth function when LOCALE support is disabled while keeping WCHAR support enabled. This solves two testcases: tst_wcwidth and tst_wcswidth.
Two other absolutely safe change that will be used by NPTL, aimed to simplify merge.
A missing change when we recently released a lot of fix on localae support
Added do_awk commanf for invoking awk parser. It will be used for generating some file on-the-fly on the NPTL case.
Go deeper while cleaning string directory to remove TARGET_SUBARCH implementation too.
CLean librt/*.oS too (NPTL will add some).
Move kernel-features.h header from the linuxthread directory to a common one (libc/sysdeps/linux/common/bits) so that any function can access to supported kernel feature (i.e. getdents).
Silent compiler warning regarding undefined macro
ldso: do not comment out unused variables, just delete it.
libm_sh: Re-added sh specific files erroneously removed recently, and moved under a better folder.
libm_sh: fix libm build for sh
ldso: performs bootstrap relocations only if required by the arch. It is controlled by ARCH_NEEDS_BOOTSTRAP_RELOCS macro.
Follow naming convention for tst-regex2 input file. All others are .dat suffix.
Remove check for the relocation type check in the resolver, from all archs.
Added sysdep.h and sysdep-cancel.h for linuxthreads ARM
Re-add _ISbit macro required to build libstdc++ from gcc toolchain.
Pass NO_LONG_DOUBLE flag to basic-test when LONG_DOUBLE support is not enabled in uclibc to fix build.
sh: Fix __SH_SYSCALL_TRAP_BASE for SH2A architecture
Fix typo.
Linuxthreads_old and NPTL must be mutually exclusive.
Fix my previous commit to use preprocessor in the right way !
Use gcc built-in defines for detecting SH cores instead of uclibc config option macros (aligning SH to all other archs).
Make long double support available for sh too.
Use __always_inline instead of __inline__
Added string.h header for strerr prototype.
Fixed makefiles inclusion flow to pass actual configuration variable values. Test build system modified to be similar to uClibc one: * test custom logic moved from Makefile to a new Makefile.in (to be included by Makefile). * Makefile same for all tests and just used for including all other needed makefiles.
Add position independent code for crt1.S. This will generate a Scrt1.o that is linked to executabled when compiled as PIE code (position independent executable) without requiring relocation in .text section (not allowed on uclibc/sh4).
Merge branch 'master' of git+ssh://carmelo@git.uclibc.org/git/uClibc
sh: add cacheflush syscall wrapper
build: Include Makefile.commonarch from common Makefile.in
test_librt: Fix build system for shm_open/unlink tests
test_librt: Fix shmtest.c test case
sh: Add a prototype for the gcc __set_fpscr internal function
sh: Add a prototype for the gcc __set_fpscr internal function
build: Move test build flags in Makefile.in
test_tls: Rename tst-tls16 to tst-tls-at-ctor
test_tls: Add two new tests for tls tst-tls{16,17} taken from glibc
ldso_tls: Refetch dtv from memory if THREAD_DTV has changed
build: Get rids of PIC macro using compiler flag __PIC__ instead
build: Get rids of PIC macro using compiler flag __PIC__ instead
build: Do not define -DPIC longer through build system
libc: Add missing header for memset
libc: Add missing header for memset
libc: Remove pointless header string.h
Merge branch 'master' into nptl
libc: Fix typo in include/rpc
libc: Fix typo in include/rpc
nptl: sysdep headers re-factoring
nptl_test: sysdep headers re-factoring
nptl: sysdep headers update for i386, mips and x86_64
libc: Add a common sysdep header
libc_sh: Add a sysdep header for sh
libc_sh: Update memcpy to use the ENTRY macro
nptl: Fix clean target to remove generated files
nptl_sh: Fix build problem with FUTEX_CLOCK_REALTIME
ldso_sh: Provide only one definition for elf_machine_type_class
libc_regex: __libc_lock primitives are actually available on uClibc
libc_regex: __libc_lock primitives are actually available on uClibc
libc: Remove compiler warning due to old-style function definition
nptl: Remove compiler warning due to old-style function definition
nptl_db: Remove compiler warning due to old-style function definition
build: Fix infinite loop when no threading support is enabled
nptl: Harmonize objects and headers makefile clean targets
sh4: Fixes for SH-4 without an FPU
libc: Fix non-NPTL threads build
libc: Provide both getpgid and __getpgid symbols
test: Update gitignore to take into account new tests added.
libc: Add canonicalize_file_name function
nptl_sh: Fix compiler warning due to shadowed variable
nptl: Remove nptl/sysdeps/generic directory from include list
libc: Handle cancellation in non multiplexed socket calls
nptl: Fix libpthread build when UCLIBC_LINUX_SPECIFIC is disabled
libc: Sort HEADERS_RM alphabetically
Merge commit 'origin/master' into prelink
libc_utmp: Fix getutmp and getutmpx for x86_64
Merge commit 'origin/master' into prelink
libc_tls: Do not include generic libc-tls from arch specific implementation
Revert "libc_tls: Do not include generic libc-tls from arch specific implementation"
Merge commit 'origin/master' into prelink
Merge commit 'origin/master' into prelink
sh_fpu: Do not allow inclusion of fpu_control on not SH4 core
libm_sh: Move fenv functions into sh4 sub-folder
libm_powerpc: update buildsys to use TARGET_SUBARCH
Merge commit 'origin/master' into prelink
nptl: get rid of preprocessor warning when __ASSUME_TGKILL is not defined
nptl: get rid of the last preprocessor warning when __ASSUME_TGKILL is not defined
buildsys: fix make release target
buildsys: headers target should not depend on sysnum.h
Revert "ldso/i386: support protected symbols"
Revert "ldso_sh: add support for protected symbols to SH"
Revert "ldso/arm: Correct protected symbol resolution"
ldso: get rid of _dl_lookup_hash
release 0.9.32-rc2
bump version to 0.9.32-rc2-git
Merge remote branch 'origin/master' into prelink
Merge remote branch 'origin/master' into prelink
nptl:arm: add a wrapper for .cfi_sections pseudo-ops
ldso: use ADDR_ALIGN instead of hard-coded value
nptl: fix use of IS_IN_LIBPTHREAD macro
ldso: use ADDR_ALIGN instead of hard-coded value
buildsys: prefer the form HEADERS_RM-$(<config>)
Revert "buildsys: prefer the form HEADERS_RM-$(<config>)"
Merge remote-tracking branch 'origin/master' into prelink
libubacktrace: generic implementation based dwarf
libubacktrace: enabled for all archs indeed.
buildsys: minor fixes in Makefile.arch for microblaze
buildsys: minor fixes in Makefile.arch for C6X
Merge remote-tracking branch 'origin/master' into prelink
buildsys: fix pregen target (!NPTL with LOCALE)
ldso_tls: fix compiler warning due to missing cast
fts: fix warning due to old-style function definition
Merge remote-tracking branch 'origin/master' into prelink
libubacktrace: fix makefile clean target
Merge remote-tracking branch 'origin/master' into prelink
ldso: arm: fix build when prelinking is enabled.
ldso: fix build with PRELINK enabled and !TLS
ldd: take LD_LIBRARY_PATH into account
libdl: remove _dl_ldsopath from libdl.a
config: tidy-up of config targets
config: revise defconfigs strategy
config: add support for <custom>_defconfig
ldso: disable the implicit path search in stand-alone mode as well
ldso: minor fixes to implicit search path
ldso: let people disable to lookup into LD_LIBRARY_PATH
linuxthreads: fix typo in __UCLIBC_HAS_IPv4__ macro
resolver: add a dependencies for DNS resolver feature
buildsys: do not install ld.so linker script
libc: do not rely upon ulimit kernel syscall.
buildsys: s/CROSS/CROSS_COMPILE/g
libubacktrace: use -funwind-tables rather than -fexecptions
libc: allow to backtrace out of abort call
libubacktrace: use -asynchronous-funwind-tables rather than -funwind-tables
libdl: fix dlclose handling of symbol scope
ldso/mips: fix symbol lookup for JUMP_SLOT and COPY relocations
libc_arm: avoid multiple version of __aeabi_unwind_cpp_pr dummy code
libubacktrace:arm: libgcc_eh.a not needed
inet:rpc: fix authnone_marshal in multithreading context
tests: fix tests build (LDFLAGS_GNUHASH not longer defined)
tests:math: fix build of math tests for SH4
ldso:sh: fix compiler warning due to unused-but-set-variable
ldso: remove duplicated assignment with TLS symbol
inet:rpc: fix build in !NPTL case
nptl: fix compiler warning due to unused-but-set-variable
nptl: fix compiler warning due to missing prototype
libc: elf: explicitly include uClibc_page.h to make PAGE_SIZE visible
Chris Metcalf (1):
Make _dl_dprintf buf non-static to avoid multithreading bugs.
Chris Packham (1):
libc/sysdeps: add __kernel_long and __kernel_ulong
Chris Zankel (18):
Add myself as the maintainer for the Xtensa architecture.
Omit adding 'OUTPUT_FORMAT' to the libc.so linker script if the architecture didn't provide one (Xtensa, for example, is such an architecture).
Xtensa: Provide an architecture specific sigaction and sa_restorer function in libc to avoid having to place executable code on stack.
xtensa: the size of the elf_gregset_t array is actually 128.
xtensa: Fix spill routine.
xtensa: The Xtensa-specific strcmp.S file is testing the __UCLIBC_HAS_LOCALE__ macro but it does not include <features.h>, so that macro is never defined. This causes problems with strcoll when locale support is enabled.
xtensa: The Xtensa port needs to define the __UCLIBC_TRUNCATE64_HAS_4_ARGS__ macro so that a dummy argument will be inserted before the long long length argument, which is expected to be in an even/odd register pair.
xtensa: Stack unwinding on Xtensa requires that the return address register always be valid. This patch fixes a part of ldso that had been using an Xtensa CALL0 instruction to get the current PC value, which temporarily clobbered the return address register. The revised code just loads the address of a label in the code. See my change to GCC from 2007-12-20 for more info (http://gcc.gnu.org/ml/gcc-patches/2007-12/msg01023.html).
xtensa: add sigcontext.h
xtensa: use atomic instructions instead of a syscall
xtensa: add a set of atomic intrinsics
xtensa: fix a misnumbered register in sigsetjmp
ldd: ELFCLASSM was not defined for the Xtensa architecture
xtensa: add a stub user.h file
xtensa: sysdep.h needs to include sys/syscall.h
xtensa: add missing atomic intrinsics
test/math: add libm-test-ulps-xtensa file
xtensa: fix setjmp that didn't save all registers correctly
Christian Bruel (1):
libm_sh: add optimised assembly implementation of lroundf and lrintf
Cristian Morales Vega (1):
Do not define unimplemented functions
Cédric VINCENT (1):
ldso: fix standalone execution on x86_64 architecture
Dan Moulding (1):
NPTL: Fix undefined reference to PRIVATE_FUTEX with 2.6.18 kernel
Daniel Jacobowitz (1):
mips: do not save variables in "hi" or "lo" across system calls
Daniel Mack (11):
extra/Configs/Config.in: drop "default n" lines
libc/inet/resolv.c: comment on #endif lines
inet/resolv: add ns_{put,get}{16,32}
inet/resolv: add ns_name_pton, ns_name_pack and ns_name_compress
inet/resolv: Add dn_comp
inet/resolv: add dn_skipname and ns_name_skip
inet/resolv: add ns_initparse, ns_parserr, ns_skiprr and ns_msg_getflag
inet/resolv: add res_mkquery
inet/resolv: add res_ninit and res_nclose
include/resolv.h: provide __res_state._u even if !__UCLIBC_HAS_IPV6__
inet: build all res_* and ns_* functions conditionally
David A Ramos (2):
Fix ctime() standard compliance bug
inet: add ether_aton testcase
David Anders (2):
fix ARM types that are known to have MMU's to select ARCH_HAS_MMU
add ARM 7TDMI to processor selection list
David McCullough (90):
DIRS was not set in this makefile and could be inherited from the environment.
Allow Config to override OPTIMIZATION flags.
uClibc working with 2.0.x and 2.4.x m68k uClinux kernels, the PIC stuff in crt0.S may not be quite right yet.
ptrace for m68k debugging.
uClinux 2.0 doesn't have the poll system call, just check for the definition before using it.
The rules to build sysconf_$(TARGET_ARCH).c were broken when cross compiling.
Added "psignal" function
Added /etc/hosts processing (parses everytime like a real one :-)
Added res_init and res_query
Reduced the size of sigsets to the minimal needed. Apart from the size, it has the added advantage of giving the C++ build of m68k-elf-gcc a clean bill of health.
New crt0.S with all init done in 'C' code. Added in support for C++ contructor/destructor tables.
g++ compatible math defines.
For some reason the fancy attribute tags were not working on m68k so I followed environ example which uses asm and it seemed to fix the problem nicely.
Do not remove const and extension when compiling with the elf tools.
Add an empty DIRS target incase it gets inherited from the env.
Clean up some issues for building on m68k.
Quick fix to setjmp/longjmp/sigsetjmp etc to make them work. This should really be fixed to fall into line with the other archs.
Code did not match the prototypes, from what I can tell it should be using size_t as the header files have it already.
Change the last 2 "make" invocations to use $(MAKE).
Up the m68k defaults a little so that uClibc will support a g++ build.
ldso build always used $(NATIVE_ARCH)-uClibc-gcc, which doesn't work for cross build (ie., m68k under i386). Changed it to use $(TARGET_ARCH) instead.
Changes needed to build the ldso dir for m68k. I haven't tested it, who knows if it will work, it just compiles cleanly :-)
The m68k-elf compiler chokes on this code when compiling for PIC as compile_regex is one big function (relative function calls further than cpu32 can do).
Fixed vfork so the child doesn't trash the parents return address.
Added this guy, nothing needed here really.
the minimum needed for now
sysdep.h was not providing all the needed bits to build working asm with some compilers, so define any macros we need that are not defined already.
Changes to support autogenerated syscall.h
Changes for new auto-generated syscall.h
If HAS_MMU is false, then use asm-$(TARGET_ARCH)nommu rather than asm-$(TARGET_ARCH) as the link for include/asm.
Added stpcpy and strcasestr along with some code to test them.
Fixup the atexit weak alias for elf, need to include <features.h> to get the correct value for the HAVE_ELF define.
The weak_alias macro was not genertaing asm with the correct alias names.
The main part of the C++ support is the definition of __BEGIN_DECLS and __END_DECLS in this file based on the __cplusplus define.
Added __BEGIN_DECLS and __END_DECLS to the files that didn't have it and that I could see needed it.
Fixup the pipe system call for the SH target. The FD's are returned in registers.
Make sure the weak aliases are defined before the functions/vars they use as stubs, otherwise, some compilers (ie., m68k-elf) tie them to the local symbols and the weak aliases do not work.
Fix a couple of warnings
Added sigset_t casts so we behave like the other platforms.
Add hstrerror, it just points to strerror like h_errno.
Add in changes from philipc@lineo:
Add cmsg_nxthdr function for the cases where the headers do not so it inline.
Make _PATH_VARRUN actually point to /var/run.
With all the headerfile changes, some functions didn't get there arg types fixed up.
Hack the 68000 last ditch abort to work for all 68000 targets.
Add in an ARCH_CFLAGS placeholder so scripts can mod it.
merged the two startup files so that uClinux people always get the correct arg processing whether they are using PIC or not, and vice-versa for the MMU folks.
Add in support for inet_netof, inet_lnaof, inet_makeaddr and hstrerror.
Add sbrk and friends Fix bug in setjmp (jmpbuf changed size)
Fix simple malloc to work on systems with an MMU
Don't print an error if the utmp file doesn't exist, getutent will return NULL as expected.
Added insque/remque support
The resolver is still using the old API so we cannot use the new resolver version numbers or apps get confused.
Clean up builds on "sh" to use the right ARCH dirs
* Added /etc/shadow support (Config selectable) * Moved some file paths from code into <paths.h>
Add in clone (untested)
Added locale and lastlog
Added a dummy romfs target so this stuff slots nicely into the uClinux distro.
Fixed broken shell syntax.
Changes so that this file builds if we are not using threads.
At some stage I was getting conflicts on the SH platform with the two i_am_not_a_leaf functions, changing the name of one is harmless and fixed the problem at the time. Not entirely sure it's still required.
pread and pwrite were broken in several ways:
Fix a number of compile time warnings so that uClibc will build with -Werror using a 3.0.4 version of the sh-linux-gcc compiler.
Fix some more warnings for non-thread-enabled compiles.
Added __kernel_fsid_t to satisfy some apps that need it. Definitions taken from 2.4 kernel sources for each of the platforms.
Fix a delay slot problem, this gets some apps working on SH, a good number are still seg-faulting.
Somehow the bit of code that add the offset of envp to argv got lost and envp was a very small number and not an address. I think this fixes most of the SH platform.
If the initfini.pl script changes, regenerate the crt[in].S files.
Fix a memory corruption bug.
Fixup JMPBUF_UNWINDS so that is will compile if used :-)
Add in clone and make the assembler PIC/msep-data friendly.
Fixup thread support for the 5200/5307 coldfire platforms.
If the wait failed in pclose it would return a random status code instead of -1 as expected.
add brk for m68k
If floating point was enabled, setjmp would write to memory well past the end of the buffer.
Using -g when doing the initfini compilation breaks the SH4 case pretty badly. I have removed -g for all platforms as I suspect no one wants it for the initfini creation process.
Use a define for the path to /etc/TZ
updates to the uClinux-dist romfs and uClinux shared library targets.
Fix FP handling alignment problems on ARM platforms without an FPU, patch from Vadim Lebedev <vadim(a)7chips.com>.
restore the coldfire changes
Fix the double sub #48, should have been an add :-)
fix coldfire/68000 support properly this time, ifdef logic was back to front.
more uClinux shared libs fixups
Fixup __libc_open to use varargs and match the prototype.
Some small fixups for the h8 support and add the h8s platform support.
setjmp was trashing r12 which is bad and can cause apps to crash if they are using r12. r12 is supposed to be preserved across C function calls. r0-r7 are trashable :-)
Sleep was returning the wrong value because:
Add in a default file for m68k.
Microblaze port from the uClinux-dist, contributed by John Williams <jwilliams(a)itee.uq.edu.au>
Make sure we remove -fomit-frame-pointer from the ldso build. It's inclusion will cause the loader to crash when jumping to the application.
David Schleef (111):
test proggy for strtol, strtoul
Reimplemented "make install" target. I left the old one as-is, under the assumtion that someone will get confused if it suddenly changes.
First cut of MIPS port
Copied bits/*.h from Debian MIPS libc6-dev 2.2.2-4 package.
Header cleanups to fix compilation. Mostly a hack, pending figuring out the best way to do some things.
Copied sgidefs.h from Debian libc6 2.2.2-4 for MIPS. Should go into the main include/ directory, but we'll hide it here for now.
Needed for libm
termios test program, since I'm having difficulty on powerpc
Test to check for proper stat mangling.
The mmap syscall has 6 arguments, which has various implementations on different architectures.
Random quick-and-dirty evil malloc checker.
added __GNUC_PREREQ() macro
Added powerpc-specific mmap syscall, 'cause we're special.
Random change to get a log message: Previous change is to make this header more compatible with the kernel and not with glibc.
Changes to make types.h more compatible with the Linux kernel.
Added -Wall
Fixing flak from the directory rearrangement
Nasty hack to get around inconsistency between dynamic linker entry and kernel entry to crt0.o.
Makefile targets to symlink arch-specific headers into include/ (only used on mipsel.)
Added definition of __THROW
Add warning message if Config doesn't exist
Change to allow compiling against unconfigured kernels. Creates symlink to include/asm-${arch} instead of include/asm.
Added additional cleaning
Changed dependencies of gcc-uClibc.h to ../../Config instead of clean
Fix to autogen bits/syscall.h, like i386
It is now autogenerated
Need to include sys/syscall.h because of other changes
Debian package building scripts
Get rid of warning messages and spurious diffs
remove bits/syscall.h when cleaning
*** empty log message ***
The prototype Config file for x86 was changed to Config.i386
Install a link for /lib/ld-uclibc.so.0
Make shared library installation conditional
Small fixups for powerpc
First cut of PowerPC port. It works for hello world, but has lots of debugging information is still there.
Added #ifdef DEBUG where appropriate. Fixed icache clearing during _dl_init_got(). Added a few more reloc types. Added out-of-range check for R_PPC_REL24.
Add test for proper realloc() behavior.
The previous termios.h strongly appeared to be from a different architecture.
PowerPC has a different kernel interface for termios. Grrr...
fixperms needs the correct name for ld-uClibc
Better rule for locating dynamic linker
Changes to build cross-compiling libraries
Fix typo.
Better generation of control, fix up DESTDIR
Fix the /lib link
Changed uclibc-gcc to uclibc-toolchain. Added fixups for changes in the Makefiles.
Need to create $(SYSTEM_DEVEL_PREFIX)/usr/bin
Change name of package to uclibc-toolchain. Various changes following the Makefile changes.
Add a cvsignore for this dir
Fixes for finding appropriate kernel headers, changelog entry
Little script to create a properly-named snapshot for Debian packaging
Fix problem with version naming
include/bits from glibc-2.2.4-1
Merged patch from pre-glibc-2.2.4 files
depend on kernel-headers, not kernel-headers-2.4
Disable posix threads support
Add missing <errno.h>
_mmap.o should be added to libc.a, not crt0.o
Added .cvsignore
Added winsize structure from before glibc-2.2.4 update
Limited Debian architectures to the ones we can actually build. Improved mksnapshot script; now adds a bogus changelog entry. Added fixlinks script that automatically converts symlinks to conform to Debian policy and updated rules to use it. Added another bogus man page, prolonging the pretense that I'll actually write real ones.
powerpc/elfinterp.c: Powerpc works now. Major rework; most relocs should work now. R_PPC_JMP_SLOT correctly being lazily relocated. hash.h: Added a field in elf_resolve to store a ppc-specific address. boot1.c: Added debugging code. Disabled check that fails on powerpc because the string literal requires a reloc that isn't performed. Added check to ignore d_tag if it is out of bounds, as has been observed with powerpc binaries.
Enable ld.so on powerpc
Fix common C ambiguity.
Change the output filename to correspond to the package version.
Notes about how powerpc/bits was constructed.
Added build-stamp for Debian
Updated notes
Don't define _GNU_OBSTACK_INTERFACE_VERSION, because we don't provide obstack.
Added a few items on my wishlist, removed some stuff that is finished.
Debian upload
Fix build-depends to use kernel-headers-2.4. Should satisfy more autobuilders?
Notes on Build-Depends
strsignal() is a GNU extension
Fix dependencies
Fix calculation of PLT entry index. Caused segfaults on second call of a lib function.
Remove unused file
Fix buggy R_PPC_RELATIVE relocation. Symptom was that strings internal to a library were not relocated correctly, specifically sys_errlist[].
Rewrite vfork() as C, should now work. Changed longjmp.S and setjmp.S to use GCC's internal ppc-asm.h, and added macro to disable FP save/ restore in longjmp and setjmp. Fixed name of _setjmp() (was __setjmp). Fixed _setjmp to be PIC.
Disable ldso directory if DODYNAMIC isn't true, in addition to HAVE_SHARED
Fix: libuclibc-dev should depend on libuclibc0. Elaborated descriptions.
libhowdy.so needs to be compiled with -fPIC
Fix TARGET_CFLAGS to include -fPIC when needed. Libs were being compiled without -fPIC.
Removed TARGET_CFLAGS definition, since it was moved to toplevel Rules.mak
update my list
A little script to strip out unused portions of shared libs.
Update version
mksnapshot: updated version and filenames. control.in: changed dependency from kernel-headers to kernel-source packages. rules: force HAS_MMU=true, change mipsel to mips, untar kernel-source package include directory and use that as kernel source
Fix typo
Try adding mipsel to the architectures
Additionally remove libc/tmp
Special rules for mipsel. Force some variables in Config, in case they're wrong (they are.) Remove Config during clean.
Build fix for arm
Check in new debian snapshot
Account for new upstream version. Fix shlibs, because they were broken. Add INCLUDE_THREADS to Config.
New Debian snapshot. The release has ld.so for mips fubared.
Removed handling for R_PPC_REL24, since it is deceptively useless.
Make assembly code PIC-compatible.
use ds account on cvs.uclibc.org
use uClibc_config_fix.pl for configuration
Change branch to fallthrough. Unclean, but it removes last R_PPC_REL24.
updated to 0.9.11
updated kernel source package to 2.4.18
uploading new snapshot
Make sure that CROSS="" for native building.
Moved old README to INSTALL, and wrote a new README that is much more like an introduction to the project.
fix mksnapshot and update documentation.
update to last Debian upload. Dumbass Debian maintainer forgets to check stuff in.
Make ldd work even more like GNU ldd by appending dummy load addresses
Update CVS to Debian 0.9.18-1 package
Denis Vlasenko (264):
syslog.h: allow prioritynames[]/facilitynames[] to be defined const (selectable by #defining SYSLOG_NAMES_CONST)
des.c: move 0.5k of static data on stack, they are used only temporarily by des_init.
include/sys/mman.h says that msync exists only on MMU. Make msync.c agree on this.
execXp should go to next PATH dir on any error except ENOEXEC, not just on ENOENT (in particular, on EPERM). At least glibc does so. Fixing this.
Remove stray code alignment (.align 16 and .align 4 directives) from i386 and x86_64.
introduce __uc_malloc, so that users can intercept libc internal OOM.
convert des.c to use __uc_malloc (-70 kbytes of bss)
patch #3: make resolv.c use __uc_malloc
make pwd_grp.c use __uc_malloc
make utent.c, getpass.c use __uc_malloc
make getnetent.c, md5.c use __uc_malloc
make regex_old.c, ruserpass.c use __uc_malloc, replace "buf = malloc(BUFSIZ); if (!buf) abort();" by __uc_malloc elsewhere.
sgetspent: add missing free/__uc_malloc calls (spotted by Peter S. Mazinger <ps.m(a)gmx.net>)
add libc_hidden_xxxx for __uc_malloc
fix assembler error. libc_hidden_data_def cannot work on COMMONs, thus need to initialize stuff with 0 to force it into bss. All hell can again break loose if future gcc will be smart enough to ignore it.
Fix author name and copyright notice in __uc_malloc.c
realpath: reduce stack usage from 3*PATH_MAX (12k) to 1*PATH_MAX (4k). reduction is achieved by direct use of user-supplied PATH_MAX sized buffer for result (without intermediate copy) and changes in copy_buf[] usage - now it is used for both "source" pathname and link name (it works because they have to be less than PATH_MAX combined, otherwise we return NULL).
add hidden_proto's for __uc_malloc (patch by Bernd Schmidt <bernds_cb1 at t-online.de>)
Factor out the core of vprintf() into separate function vprintf_internal, so that: * vprintf() does locking and __STDIO_STREAM_TRANS_TO_WRITE thing, then calls vprintf_internal * vsnprintf, vdprintf.c, vasprintf.c use vprintf_internal directly
Remove vestigial locking init from sprintf routines.
restore erroneously removed hidden_def for vdprintf
fix breakage in old_vfprintf case
even more fixes for vda-made breakage in vXXXfprintf (pointed out by Peter S.Mazinger)
remove "register" from _vf[w]printf_internal declarations too
Functions should be either exported in public .h files and marked with libc_hidden_proto/def(), or not be exported in .h files and be hidden (or even static if possible). We have five functions which violate this. Fixing:
amd64 string ops: replace some instructions by smaller ones, e.g. testb $0xff, %cl -> testb %cl, %cl
amd64 string ops: use alignment more carefully, and comment it. By capping max padding to not be bigger than three next insns, we avoid having ridiculously big NOPs like this one:
reinstate external visibility of inet_ntoa_r, and add it to arpa/inet.h header.
build system: improve install_headers. Now it uses dedicated script instead of inline makefile commands, which helps readability. It also installs asm[-generic] and linux subdirs from kernel headers (previously it had to be done separately). Lastly, it passes each uclibc header thru unifdef, which strips #ifdef UCLIBC_INTERNAL conditional from headers. Currently it's a no-op (no such #ifders in tree). The plan is to have libc_hidden_proto(foo) migrated to headers and guard them by these #ifdefs.
Experimentally move libc_hidden_proto(time) to time.h. The only code change observed is actually a case where we were not doing that as needed:
__uc_malloc: remove stray semicolons
build system: use a bit more aggressive gcc/ld optimizations, mostly related to ELF section ans padding, not code gen. Resulting reductions in size (only biggest ones are shown) uClibc.t4 - new, uClibc.t3 - old:
install_headers.sh: detect a case when kernel headers are already installed in target dir, and dont try to copy them again
Rules.mak: fix -falign/-malign mixup
guard against older ld's not understanding --sort-section alignment
install_headers: properly quote things
install_headers: do not exit if unifdef "fails", it's ok
Split kernel headers installation from "make install_headers". It is "make install_kernel_headers" now.
realpath: do not set bogus errno when readlink fails.
test-canon: stop checking realpath buffer in case realpath returns NULL (the buffer contents is undefined); also check errno more thoroughly (bugs were seen slipping through)
fix "make install_kernel_headers" to not create asm-generic for 2.4 kernels.
Moving libc_hidden_proto's into #ifdef UCLIBC_INTERNAL block in string.h and strings.h. This caught unguarded string ops in libc/inet/ethers.c __ether_line_w() function.
suppress "asm declaration ignored due to conflict with previous rename" warning. It seems to be bogus. Comment contains extended description.
add an URL to relevant gcc bugzilla entry
Introduce and use small[u]int type. Changes in size:
getopt: do not needlessly use static structure. Reorder structure members and change some of them into smallints to reduce bss and text: text data bss dec hex filename - 2403 12 40 2455 997 libc/unistd/getopt.o + 2252 12 0 2264 8d8 libc/unistd/getopt.o
replace "if (p) free(p)" by just "free(p)" - free(NULL) is safe.
convert two more static ints used as flags to smallints
arm memcpy: fix the case when src=dst
__uClibc_main.c: save ~70 bytes by not checking that /dev/null is indeed a char device with correct (maj,min). (If it's not such a char device, the system is screwed anyway, nothing can be done about it...)
Slight size reduction by use of smallints/consts:
Makefile.kconfig: whitespace fix top-level Makefile.in: add TODO
fix fallout from string.h libc_hidden_proto removal
add missing includes of unistd.h for smallint usage remove a few duplicate includes of unistd.h
fix compile breakage in libc/string/wcscasecmp.c by adding include <wchar.h> in strcasecmp.c
build system: stop creating ugly double-slash symlinks like fenv.h -> ../../libc/sysdeps/linux/i386/bits//fenv.h
Rework smallint machinery so that it will reliably fail to compile even if arch overrides smallint size. Makes it easier to spot bugs on such arches.
suppress a few "might be used uninitialized" warnings. No code growth.
fix fallout from libc_hidden_proto removal
libc/inet/addr.c: fix broked indentation and bad style. No code changes.
libc/inet/resolv.c: use ip6.arpa instead of ip6.int for reverse IPv6 DNS resolv. rfc4159 mandated this 3 years ago. Closes bug 1020.
fix bug 1577: '`' is not an acceptable digit for strto[u]l(). Code size is not changed on i386.
libc/stdlib/stdlib.c: fix whitespace damage. No code changes (verified with objdump)
dlfcn.h exists only if __HAVE_SHARED__ ("we are built with shared lib support"), not when !__HAVE_NO_SHARED__ ("arch can theoretically support shred libs")
Rename HAVE_NO_SHARED to ARCH_HAS_NO_SHARED, otherwise it's too confusing with HAVE_SHARED
fix trivial mismatch in return type of build_wcs_upper_buffer() (int/enum). clases bug 3234.
Remove __PRINTF_INFO_NO_BITFIELD hack, UCLIBC_INTERNAL can be used instead, and it's slightly shorter. Also removes stray macros from public <printf.h> header and uses spaces for comment indentation.
Fix bug 575 and other small problems noticed along the way. The bug: this blocks in syslogd is stopped: #include <syslog.h> int main() { int i; for (i = 0; i < 10000; i++) syslog(LOG_INFO, "Testing, disregard...................."); return 0; } Fix: set O_NONBLOCK on fd to "/dev/log". Other fixes: do not try to write to fd -1, do not spin forever or EAGAIN, use constant sockaddr instead of recreating identical one each time, eliminate one intermediate function (SUGPIPE sig handler), use smallints where appropriate, add a few comments.
syslog.c: fix indentation and style. No code changes.
syslog.c: fix a buglet in prev-last commit: logic inversion in closelog
close bug 473: 1. names with two consecutive dots are not valid 2. if name ends with a dot, dont try appending search domain(s) alos a few small optimisations are here.
Fix spurious testsuite failure
Heed a warning: "string" was assigned to char*, changing that to const char*
shrink getopt a bit by using smallints. Run tested (busybox testsuite)
Fix failure in test/inet/gethost_r-align: we were closing a FILE, but did not record that fact by setting a variable to NULL, and then we used it for reading! While at it, small reduction in bss. Run tested.
Use more natural way to return a value in __read_etc_hosts_r:
Fix hard-to-rigger locking bug in vsyslog(): SIGPIPE handler was attempting to re-acquire an already taken lock. While at it, stop checking for sigaction failure which is not possible here. Sizes:
Document the reason why ether tests in testsuite may fail. No code changes.
Remove superfluous attribute_hidden from function definition. I seems to produce spurious warning: libc/inet/resolv.c:1549: warning: 'visibility' attribute ignored on non-class types (seems like gcc bug) and it is not really needed - attribute_hidden was already specified in function _declaration_ so it is not necessary here.
libcrypt/md5.c: Make sp, ep and p variables automatic. There is no point in having them static, they never use their values retained from previous call. Replace strlen(__md5__magic) etc by compile-time constants.
remove a trivial comment. no code changes
des: des_setkey always returns 0, there is no point in checking whether it returns 1.
#include <ifaddrs.h> should be #include "ifaddrs.h"
New .config option UCLIBC_HAS_STUBS, enables fork() stub on NOMMU
implement getgrouplist()
getgrouplist(): ...add files which I forgot to add.
libc/inet/getaddrinfo.c: const'ify some data; avoid using zero-filled constants in bss:
make getaddrinfo to NOT query DNS for IPv6 address if host is in /etc/hosts and it has IPv4 address there. The most common example is "127.0.0.1 localhost". We don't want "ping localhost" to stall and time out on IPv6 queries to, say, inaccessible DNS server, right?
getaddrinfo.c: reformat. no code changes
getaddrinfo.c: improve readability
trivial code shrink by making some strings static
resolver: trivial code trasformations for readability. No logic changes. Code size is the same too.
resolver: fix part of bug 1468: "gethostbyname() fails if DNS server returns more than 23 addresses"
resolver: partially fix bug 660 - do not treat negative response as error
__dns_lookup: document and optimize a bit
resolver: reinstate searching if search domains accidentally nuked in one of recent commits :)
fixing resolver, part 1
fixing resolver part 2: make _res structure members configurable. we don't use most of it anyway.
fixing resolver part 3: fix completely bogus locking in __dns_lookup.
resolver: more locking fixes.
resolver: make getaddrinfo actually respect _res.nsaddr_list; add largish comment explaining what we are doing, and why; fixes to make IPv6-only resolver possible
resolver: improved support for overriding DNS server addresses in _res structure. Used by busybox's nslookup.
resolver: fix some previous TODOs, add new ones.
resolver: move large code blocks to arrange related functions closer. almost no code changes
resolver: separate gethostent and gethostent_r into two .o files; delete two stray files which compile to nothing
resolver: use timeout of 5 (glibc uses that). delete some duplication in constants.
libc_hidden_proto removal, just a few functions
libc_hidden_proto removal, a few more functions
next portion of libc_hidden_proto removal
Last portion of libc_hidden_proto removal. Appears to build fine (several .configs tried)
deal with TODOs left over from libc_hidden_proto removal (fixes build with locale enabled)
fix apparent typo (unnoticed for long time, probably because it didn't affect little endian arches)
fix ioperm build problems caused by libc_hidden_proto removal
fix "make install" with relative PREFIX
fix "make utils" build failure in ldconfig (undefined reference to 'getopt')
fix some unneeded PLT references
libc-symbols: improve comments and make macros a bit more readable. no code changes
signal ops: avoid calls through PLT for __sigXXX ops linuxthreads.old/manager: pointless style fixes, no code changes
libc/string: need additional work to remove libc_hidden_proto's properly
reduce sigset_t size for 128 bytes to 64 bits:
shring sugnal-relared stuff a bit. BTW why constant memset is not inlined by gcc?
fix improperly hidden fwprintf. make two data objects static.
fix improperly hidden fputc_unlocked
add libc_hidden_proto(__cmsg_nxthdr) for mips
rpc: ifdef out xdrrec_{get,put}long if int32 == long, otherwise use xdrrec_{get,put}int32 + trivial transform. eliminate warnings. des: small shrink + eliminate a warning
rpc: should check against max for int32, not int
gethostbyname can use gethostbyname2, saving one nearly 0.5k static buffer
random: use smaller data fields where appropriate
rpc: constify data, localize unnecessarily static data
constify more data
l64a: shrink by 13 bytes, and -1 reloc
optimize signal mask ops. comment out "impossible" errors
fix sigset_t size for mips (it's the only arch with 128 signals). fix _NSIG for it. better document what's going on in sigaction(). seems to not induce any actual code changes (sans mips).
remove checks for "impossible" errors, clarify uses of unoptimized sigXXX ops (they check signo), use faster sigops where approproate.
on Bernd's request, remove commented-out code snippets
hostid: improve extremely unreadable parts *: remove checks of sigaction and sigprocmask results in cases where they clearly can't fail: sigaction(known_good_sig) sigprocmask(known_good_how)
resolver: make new name resolutions reread /etc/resolv.conf if 256+ seconds passed since last read; fix cases where we switch to next search domain instead of switching to new server optimize ip4/ip6 combined cases; rewrite for(;;) loops so that it's clearer what's going on; document buffer usage; add TODOs and FIXMEs (for one, gethostbyname2 does not fill ->h_aliases field in the result AT ALL, and is iffy in general)
getaddrinfo: remove superfluout indentation, fix incorrect one. remove one superfluous statement.
getaddrinfo: runp->ifa_addr indeed can be NULL, don't dereference it ifaddrs.c: cosmetics, no code changes
fix segv on clearenv(); unsetenv("foo"); [was deref'ing NULL], add a few missing ENOMEMs, some code shrinking
setenv.c: further code shrink
setenv.c: tiny code shrink
smaller memcpy
remove __libc_getdomainname alias. google says only we have it.
remove __libc_fcntl[64]
*: remove some __libc_XXX functions: __libc_accept __libc_close __libc_connect __libc_creat __libc_creat64 __libc_fsync __libc_lseek __libc_lseek64 __libc_msync __libc_nanosleep __libc_open __libc_open64 __libc_pause __libc_read __libc_readv __libc_recv __libc_recvfrom __libc_recvmsg __libc_send __libc_sendmsg __libc_sendto __libc_tcdrain __libc_wait __libc_waitpid __libc_write __libc_writev They were removed from glibc 1 May 2004: http://sources.redhat.com/ml/libc-hacker/2004-05/msg00001.html
smaller brk() for i386. Inspected assembly to see it's still valid. text data bss dec hex filename - 44 0 4 48 30 libc/sysdeps/linux/i386/brk.o + 42 0 4 46 2e libc/sysdeps/linux/i386/brk.o
*: remove vestiges of gcc's "bounded pointers" feature, it is dead (not supported by gcc) for years. (more of it remains in multiple copies of sigaction.c)
i386/brk.c: gcc can't figure out how to use %ebx in PIC mode, help it. Code size is the same.
*: document __USE_EXTERN_INLINES better; fix uclibc build if it is forcibly enabled
string/generic/memcmp.c: remove some really paranoid guards for ancient compilers. none of other string/*.c files have them.
Make it again possible to have compact and small stack usage on non-SSE capable processors. I'm doing it the second time.
make all "XXXhidden_proto(" consistently not use a space before '('
Do not install libc-XXXX.h files in "make install". glibc does not have them, so should be safe.
doc snippets about defines we provide and/or use
features.h: add TODO (changing __OPTIMIZE_SIZE__ is a wrong thing to do)
Remove the rest of "bounded pointers" scaffolding. gcc website says" "Bounds Checking Projects... This project has been abandoned" for four years at least.
Add proposed plan of sanitizing sigaction to docs/*
heed compiler warnings about checking non-defined variables in #if directives
sigaction overhaul as described in docs/sigaction.txt Run tested on i386.
remove some duplicates in bits/signum.h. No code changes.
Remove __libc_posix_fadvise[64] alias. It existed on i386 and arm only, and google says only uclibc has it, no users at all.
fix testing "gcc -mpreferred-stack-boundary=2" on x86_64
resolv: fix testcase failure test/regex/tst-regex2.c: fix testcase to compile with just "gcc <file>.c"
memchr: smaller i386 version strrchr: smaller i386 version
since gcc -Os hates us and does not inline string ops, implement inline versions of some of them. Enable only those which result roughly in the same code size as using out-or-line versions.
fix for build failures resulting from "string ops for i386" change
string/i386: smaller, and hopefully easier to read, strnlen().
remove one forgotten '##'. Heeds: warning: type defaults to 'int' in declaration of 'intfcntl'
strncat: shorter version for i386, add small embedded test memchr: add small embedded test strnlen: make small embedded test easier to use strncmp: reformat assembly to make it readable, no code changes (verified with objdump)
memmove: smaller one for i386, with added testing, and with added check for src == dest. run tested.
strchr: a bit faster version for i386 (same code size)
string/i386/strncpy: faster i386 version (same code size), testing code string/i386/*: formatiing and commentary tidying up
string/i386/strncpy.c: fixlet for testing code string/i386/strchrnul.c: new function, adapted from strchr.c
libc/string/i386/rawmemchr.c: i386 version, adapted from strlen() libc/string/i386/strlen.c: small optimization, same code size)
Deal with a few data fields which may be made constant.
libc/misc/locale/locale.c: remove one unneeded static data, rewrite one exceptionally unreadable loop. Heed a few warnings (wrong type for string op params)
libc/misc/locale/locale.c: heed a pile of warnings from signed/unsigned char conversions
extra/locale/locale_mmap.h: fix broken whitespace
libc/stdio/_scanf.c: heed lots of warnings about signed/unsigned chars and such; remove two unneeded static string (inline "str" works better code-size wise).
heed multiple warnings of the type libc/stdio/_vfprintf.c:1892: warning: passing argument 1 of '_[w]stdio_fwrite' from incompatible pointer type
more of pointer signedness warnings removed
more of warning fixes, mostly pointer signedness mismatches
docs/defines.txt: document _extern_inline libc/inet/ether_addr.c: optimize tolower, we ever use it on 0-9a-f libc/inet/ntop.c: optimize tolower, we ever use it on 0-9a-f with locale support on, code size change is:
Remove unused macros
remove stray comment (the identical one is just a few lines down)
add new file to docs/
UCLIBC_CTYPE_HEADER define is removed, as it always equal to "include/bits/uClibc_ctype.h"
extra/locale/gen_wctype.c: remove __CTYPE_isalnum and friends; stop using macros with hidden parameter - that's evil; reformat broken indenting (it was not matching the number of {}s); fix format warnings (int vs size_t vs long)
libm/*: mass removal of:
libc/sysdeps/linux/hppa/bits/signum.h: _NSIG == 65 is the common value, no need to define it here
test/Makefile: make "make compile" install headers first test/regex/Makefile: remove superfluous oprions test/regex/tst-regex2.c: reformat, simplify, and make error messages more informative test/test-skeleton.c: kill child test process on ^C
rename test file
test/regex: make it faster to rebuild and run regex testcase
test/regex/tst-regex2.c: fix test failure. Next one is immediately after...
test/regex/tst-regex2.c: fix the rest of testsuite failures
test/regex/tst-regexloc.c: include ok/bad indicator in the message test/regex/tst-regex2.c: do not exit at the first error
document internal_function
include/libc-string_i386.h: fix a bug where memset('\xff') misbehaves Rules.mak: add -funsigned-char, to forestall future PITA
regex: drop __<funcname> aliases. remove much of unused code. shrink offset tables. disable "likely/unlikely" BE() macro.
regex: remove useless casts on allocations; remove old-style-C function params declarations; change re_comp_buf from struct to pointer (more static build friendly)
new regex: stop confusing ourself with _LIBC being undefined; nuke one struct initializer which was invisibly becoming a memset - this improves speed by x2:
convert yet another old-style function definition
ctype: remove some trivial macros from ctype.h; remove __tolower and __toupper (they existed only in SOME configs!); remove usages of _tolower (some of them clearly buggy) from uclibc code; add a few more -U<define> options to unifdef pass over installed headers; document it on docs/wchar_and_locale.txt
Help unifdef to remove private parts of headers
patch up unifdef to recognize and remove "#if defined _LIBC && something" blocks too (and similar)
fix another corner case in unifdef
remove many functions which just call __ieee754_<function>, define them as aliases instead.
libm/s_nearbyint.c: delete (forgot to do it in prev commit) libm/*.c: minor style tweaks, no code changes
libc/stdlib/_strtod.c: add parens around a | b
libm/*: delete many incarnations of logarithmic gamma function, aliasing them instead af appropriate. Also alias drem to remainder.
libm/e_lgamma_r.c: cosmetic whitespace fixes
libm: remove scalbln implementation, it seems to be less correct than scalbn. instead, either alias scalbln to scalbn if int == long on this arch, or just call scalbn form scalbln.
fix small goof in last commit: should use "long" function (scalbln) as a main one, not "int" one (scalbn).
libm/e_scalb.c: remove unused #ifdef _SCALB_INT branches libm/s_ldexp.c: add TODO
Get rid of the following annoying warnings on ppc: warning: nested extern declaration of '__illegally_sized_syscall_argN' From Stefan Assmann (sassmann AT suse.de)
forgot to remove one #endif...
ldso/ldso/dl-startup.c: make _dl_elf_main static; remove one dead variable. ldso/ldso/avr32/dl-startup.h: remove superfluous definition of START() macro. ldso/ldso/*/dl-startup.h: fix a typo in comment
libc/signal/sigaction.c: s/!=/==/
simple optimizations and style fixes in dynamic loading
replace yet another _dl_malloc + _dl_memset with _dl_zalloc
utils/Makefile.in: de-obfuscate it a bit Rules.mak: use -Os, not -O2
__global_locale must be visible to users, move it outside of #ifdef _LIBC
extra/scripts/relative_path.sh: fix it
ldouble_wrappers.c: remove erroneous libm_hidden_def's
*: remove __UCLIBC_CURLOCALE_DATA, __UCLIBC_CURLOCALE_DATA.x is always equivalent to __UCLIBC_CURLOCALE->x. remove typedef __uclibc_locale_t, it used only in a few places, it is lees confusing to use struct __uclibc_locale_struct everywhere. xlocale.h: hide __global_locale back under _LIBC, bug 53 is wrong in claiming it should be exported. Also hide under _LIBC: extern __locale_t __curlocale_var; extern __locale_t __curlocale(void); extern __locale_t __curlocale_set(__locale_t newloc); # define __UCLIBC_CURLOCALE # define __XL_NPP(N) # define __LOCALE_PARAM # define __LOCALE_ARG # define __LOCALE_PTR
"make utils" now successfully makes utils for target
Partially revent "make utils" fix. This version is less intrusive, but still works! :)
fix ppoll. we forgot to pass 5th parameter to the syscall
libm/ldouble_wrappers.c: add libm_hidden_def's to fix testsuite build test/Rules.mak: don't pass target options to host build test/math/basic-test.c: fix test build error patching file test/unistd/errno.c: fix test build warning
libm: add scalbf, gammaf, significandf wrappers. This makes in possible to enable test/math (not it compiles, but has lots of test failures).
fix nextafterf. by Jie Zhang (jie.zhang AT analog.com)
libm/s_nextafterf.c: forgot to "svn add" it
nextafterf: trying to correct FP exception handling
Add strverscmp() and versionsort[64](). By Hai Zaar (haizaar AT codefidence.com)
forgot to add libc/string/generic/strverscmp.c
ldouble_wrappers.c: fix __signbitl, it was calling itself by mistake. remove wrong casts to long double of long return values. remove lots of empty lines.
Hand-optimize wrappers on i386:
reinstate bits/uClibc_arch_features.h in installed headers, my cross-compile toolchain based on gcc 4.3.1 broke without it.
ldouble_wrappers.c: add long and long long optimized wrappers float_wrappers.c: add xxxWRAPPER1(func) macros. no code changes, but makes this file much shorter.
add comment why do we need _ISbit() macro
docs/probe_math_exception.c: update example libc/sysdeps/linux/i386/bits/mathinline.h: improve __finite() macro, add __finitef macro (why they aren't always macros? why aren't they arch independent?) libm/math_private.h: much better comments on math_opt_barrier() and math_force_eval() libm/s_finite[f].c: improve out-of-line __finite[f]() too (one byte less, yay...)
math.h: fix libm_hidden_proto leak into sanitized headers libm/s_nextafterf.c: use /* */ comments
suppress bogus ioctl on fd==INT_MAX when vasprintf() is called
Makefile.in: comment out deletion of include/ucontext.h, it is included from include/signal.h.
test/math/compile_test.c: "are long double functions even compile/link?" test *: fix everything which prevents above from building
fix typo in comment
libm/Makefile.in: reformat the list of wrappers so that it is easier to modify, sort, etc; use __ in filenames of wrappers which wrap __functions (it may be useful to have function and file names ALWAYS match); remove names of not implemented wrappers (it was generating useless empty .o files). libm/ldouble_wrappers.c: comment out the wrapper which is not compiled anyway test/math/compile_test.c: improve this test, it was optimizing out some calls, and we don't want that.
test/math/compile_test.c: add compile testing of (some) floats
test/math/compile_test.c: make it exit with 0 always
mathcalls.h: remove tons of redundant semicolons; better comment about macros math.h: make macro machinery a bit more understandable
Install other linux kernel header subdirectories too
Reinstate __libc_foo's needed for linuxthreads.old. Now they are only enabled if linuxthreads.old are selected.
fix breakage in x86_64 defconfig
Add EPOLLRDHUP constant
mknod: widen the parameters to match kernel ustat: same, + remove superfluous "conversion" which does nothing at best, loses high dev bits at worst i386/bits/kernel_stat.h: update to reflect reality (wider dev_t) h8300/bits/kernel_stat.h: same arm/bits/kernel_stat.h: cosmetics to match kernel header to the letter
resolver: res_query: do not unconditionally set h_errno to TRY_AGAIN (closes bug 173). cleanups: s/__dn_expand/dn_expand/, remove superfluous dn_expand declaration, remove libc_hidden_proto junk
linuxthreads fixes from Will Newton (will.newton AT gmail.com): * share Sys V semaphores in order to get appropriate SEM_UNDO semantics. * correct guardaddr in pthread_free() for TLS case * move spinlock unlocking before restart() * When exit was called from a signal handler, the restart from the manager processing the exit request instead restarted the thread in pthread_cond_timedwait. (see http://sources.redhat.com/ml/libc-ports/2006-05/msg00000.html)
add linuxthreads support for arm. By Will Newton (will.newton AT gmail.com)
docs/pthreads_hacking.txt: new file
libc/inet/resolv.c:
install_kernel_headers: comment out copying of extra directories, this seem to be not needed
Reinstate {drm,mtd,rdma,sound,video} directory installtion pending some explanation from gurus. Expanded comment explaining _why_ we try to install these exact directories.
libc/string/i386/memset.c: memset 1 byte at a time is a bit gross
Denys Vlasenko (102):
libc/string/i386/string.h: fix -O0 build failure
corrected typo
s/UCLIBC_INTERNAL/_LIBC/g
fix lib_hidden_proto's which have extra ;
testsuite: use KERNEL_HEADERS
testsuite: fix one bug, one warning; extend README (one TODO added)
test/librt: make it build again
math.h: fix trivial typo (missing !): !defined __NO_LONG_DOUBLE_MATH
utent.c: fix a few bugs, and shrink a bit
CLOEXEC: use open(CLOEXEC) if exist; do not check fcntl(FD_CLOEXEC) failure
lckpwdf: remove a wrong comment and one write-only variable
opensock: work correctly on IPv6-only config
remove(): slight readabability tweak, no code changes
wtmp code: style fixes, no code changes
do not pass 3rd param to open() which do not create files
do not save/restore errno around free() calls
comment out "int rexecoptions"; make "char ahostbuf[]" static (was hidden)
rexec.c: small code shrink
rexec.c: style fixes, no code chages (verified with objdump)
md5 passwords: reduce static usage
wordexp.c: fix a bug where we might close stdout
wordexp.c: cleanup - remove old hidden_proto's; remove unused parameter
docs/defines.txt: add a note about possibly obsolete __LDBL_COMPAT
simpler and shorter read_TZ_file() helper
time.c: style cleanup. no code changes (verified with objdump)
strsignal.c: whitespace fixes, no code changes (verified with objdump)
sparc/sigaction.c: note possible bugs by comments. style fixes
convert // comments to /**/; remove empty #if/#endif pairs. no code changes
remove a few more empty #if/#endif pairs
libc/misc/wctype/_wctype.c: make it more readable. no code changes
raise: remove unused hidden weak symbol __raise
sigwait: remove __sigwait and __GI_sigwait symbols - they are unused
sigpause: remove libc_hidden_proto/def
check stat("/etc/resolv.conf") for errors
make x86_64 struct utmp glibc-compatible
syslog: fix openlog(xx, LOG_KERN) and optimize a bit
syslog: use send(MSG_NOSIGNAL) instead of write, thus no need to handle SIGPIPE
ctime: do not use static struct tm buffer
ctime: do not use static struct tm buffer
wchar.c: fix indentation
time,times: stop interpreting negative return values ar errors
remove two checks for gettimeofday error
/etc/resolv.conf: support "timeout:n" and "attempts:n" options
powerpc/bits/sysdep.h: move confusingly placed #undef
getutid is not used internally, removing hidden_proto
regex_old: convert static flag variable to smallint
utent: do not create extra static functions if !THREADS
libutil/login: was totally broken. fixed
i386/bits/syscalls.h: explain how it works. no code changes
i386/bits/syscalls.h: generate better code using more restrictive asm constraints
i386/bits/syscalls.h: explain _BITS_SYSCALLS_ASM
i386/bits/syscalls.h: more compact, but stack-hungry syscall code. disabled so far
resolv: tentatively fix usage of uninitialized DNS parameters
optional /etc/localtime support
time.c: fix unreadable code style: assignments within if(), misplaced comments
resolv.h: fix wring indentation of #ifdef/#endif pairs
workaround GCC PR32219
strverscmp: I forgot to export it
_uintmaxtostr: fix indentation (spaces->tabs), no code changes
vfprintf.c: de-obfuscate if(with nested assignments). no logic changes
vfprintf.c: remove endif comments which clog up the source. no code changes
_vfprintf.c: de-obfuscate badly twisted fragment. no code changes.
vfprintf.c: reduce a chunk of #ifdef forest and remove one goto inside it
sleep: code shrink
sleep: remove commented-out code. no code changes
sleep: check "SIGCHLD is SIG_IGN'ed" first. Saves two syscalls in common case
sleep: employ __USE_EXTERN_INLINES (with necessary fixes)
sleep: tiny code shrink
remove superfluous libc_hidden_proto(memcpy) and #include
*: inline constant __sig{add,del}set and __sigismember
sleep: add comment with test program for SIG_IGNed SIGCHLD
sleep: document testing result on 2.4.x kernels
sleep: include Linus' email in the comment
test/math/*: unbreak
libm: fix testuite failure in modf
libm: fix scalb testsuite failures
libm: fix powf testcase failures
libm: fix rint/scalb testcase failures
libm: fix remaining failures in test-float
libm: fix false positives in double tests
libm: revert wrong ldouble wrapper hack "fix"
libm: remove int_WRAPPER_C99 macro, add test which checks that I did not break it
libm: improve readability of math.h; expand comments and docs
libm: fix tgamma to actually do return true gamma function
libm: disable tail jump trick if __SSP_ALL__ (was using wrong conditional)
ldouble_wrappers: remove i386-specific optimization
ldouble_wrappers: make code less verbose via WRAPPER2 macro
ldso/include/dl-hash.h: suppress compiler warning. no code changes
fix a problem with hidden getutent in non-threaded builds
getaddrinfo.c: improve code readability. No functional changes
getaddrinfo.c: fix incorrect check for ERANGE from gethostbyaddr_r
resolv: simple optimizations and style/readability fixes
Defeat compiler optimization which assumes function addresses are never NULL
getpass: several fixes
getpass: s/sizeof(buf)-1/sizeof(buf)/ in fgets
i386/sigaction.c: slightly more readable form of [rt_]sigreturn definitions
__stdio_WRITE: make code more readable. No code changes
stdio: prevent retries on fclose/fflush after write errors
time.c: Readability improvements - no code changes
MIPS: set _NSIG to 128, not 129. This matches glibc.
bits/waitstatus.h: correctly interpret status 0x007f on MIPS
pmap_getport: use TCP to talk to portmapper if protocol == IPPROTO_TCP.
Douglas Mencken (1):
ldso: fix build error due to missing variable 'st'
Ed W (2):
inet: adjust handling of cacnonname in getaddrinfo
wchar: Fix BOM emitting in iconv_open()
Eric Andersen (2749):
Add in a version number so apps can tell uclib is being used. -Erik
More GPL vs LGPL fixes (sysdeps/getpagesize.c), and some header cleanups. -Erik
Fix up the makefiles. malloc-simple/Makefile forgot to include realloc. test/Makefile used a hard coded absolute path (bad, bad, bad). -Erik
Completely rearchitected the sysdeps directory. -Erik
Many bugfixes, header cleanups, etc. Added abort and glob. It is getting closer... -Erik
More header file cleanup. -Erik
Lots and lots of cleanups. -Erik
Hacked things so longjmp now works. -Erik
Rework all the string handling. Make const stuff be constified. -Erik
Some more major updates to further superate ucLibc from the kernel headers (the way it has been done in GNU libc). -Erik
More stuff I forgot to commit. -Erik
A few updates. -Erik
Forgot this file. -Erik
Temporarily revert to older working set of files. -Erik
Revert to the old set of includes. -Erik
Add needed include file -Erik
Fixed dir/dirent -Erik
Removed old noise. -Erik
fix sys/vfs so it doesn't pull in kernel stuff. -Erik
Add in a bunch of junk. Busybox now compiles (except for mkfs.minix and fsck.minix). Of course, it doesn't link yet due to missing functions, but hey... At least it is now easy to see what isn't working. :-) -Erik
Updated to new scheme for handling syscalls. -Erik
Make some of the rpc stuff compile -Erik
Fix spelling
More stuff. Down to only 43 missing functions before BusyBox will link. Fixed socket stuff so it doesn't pull in kernel headers and stubbed out fork and clone. A few other header file cleanups. -Erik
Add in snprintf and vsnprintf -Erik
Yet more updates. Getting closer.... -Erik
Remove __restrict when not supported -Erik
Repeat after me 100 times: I will always compile before I commit -Erik
Fix up the Makefile for better portability -Erik
Add in some more test suite stuff. -Erik
More missing prototypes.
Major facelift on the test area -- the beginnings of some real testing stuff so we can get this library into shape. -Erik
Makefile sanity fix. -Erik
Sanity fix.
More sanity yet.
This is making far too much sense.
Fix all the makefiles. Clean up some warnings, cleanup some headers. -Erik
Remember to remove libc.a on 'make clean'
More makefile updates
Major update to string handling. strcmp and friends were horribly broken. They now test out as working properly. -Erik
Warning cleanup
Dependancy fixup, and remove some obcolete files.
Remove obsolete file. Fix dependancy.
Dependancy update
Remove obsolete files. Update dependancies.
Update dependancies
Dependancy update
Add in support for shm/ipc.
More cleanups
Forgot to ignore this
Update and simplification.
Formatting update
Formatting update
New malloc routines.
Bug ugly formatting update
Forgot this
Needed now.
New misc tree that actually has misc stuff in it.
Reorg unistd dir
Test cleanup
Finish reorganizing things. At least I think I've finished.
Screwed up non-mmu support. #define was backwards. -Erik
Makefile update
Stupid makefile bug,
Bypass problem with signals for the moment...
More updates
Update to assert behavior
Update excludes
Clean up after ourselves
Ignore more junk
Better syscall building mechanism
More stuff
Fix up ctype.h
Naming fix
Signal test. One test written and already found a bug. -Erik
More updates. Implement strsignal. Add pwd_grp tests
Strip all object files of all non global symbols and .note and .comment, saving a lot of space in the resultant binaries... -Erik
ignore more stuff
A smaller, kinder, gentler regexp implementation.
Switch to doing syscalls in C. Makes things much more easily portable.
Remove io
Need this now.
Link w libcc.
Include real prototype for bcmp
Try removing no-builtin
Cleanup arch support
First pass at arm arch support. Works on my netwinder... -Erik
Revert Makefie changes.
Updates (list_syscalls.sh was missing _syscall0 calls).
Another bug fix. ioctl lacked a ;
Fix dependancy problem
Dependancy fix
More reorg. A place for everything and everything in its place...
Forgot a few things...
Fix a few more screwups.
Support even more syscalls. -Erik
Try adding in a generic cross platform _start.c to make future porting less painful. -Erik
A few more syscalls.
Move syscalls to sysdeps/linux/common (since they are common). Remove _start.S since I now have a portable C version.
Add some more stuff -- {get|set}mntent, getline, getdelim, etc.
Add in arm specific bits.
Fix it so it compiles again.
Remove redundant clone file. Fix Makefile so archs build again.
Remove some minor glibc'isms.
Link vs libgcc to include needed stuff.
Not needed -- apps simply need to link vs libgcc.
Fix makefile bugs
This had some nasty x86 asm inlines it. Throw them away.
Add in a fork test. Fix select so it works.
Ignore leftovers...
Not needed. Seems to work fine without asm...
Add in getprotobyname, getservicebyname, and related junk
Fix up signal handling
More random fixes and additions.
_start.c is a failed experiment. Go back to using asm...
Add in a platform specific _start
Fix up stat so we translate from kernel stat to libc stat. Try to fix up a few little things with dir entry reading. busybox now compiles, and seems to basically work... :-) -Erik
Oops. Fix up stat. Again.
Header file cleanup
More header file updates
Fixup some PMTs
First pass at fixing readdir by adding a getdents wrapper...
Move config stuff to a file named "Config". Makes sense to me...
getcwd did not include the alloc-space-as-needed-on-NULL-buffer feature which busybox needed. So I added it.
Remove need for the bloated sysdep.h -- we don't need it, so axe it.
Fix symbol problem. Add in arm support -- might even work...
Need these includes, so add 'em.
More cleanups. Fix things so tinylogin compiles. Fix a bug in getdelim -- patch from David Whedon <dwhedon(a)gordian.com>.
Make spelling of uClibc be consistant.
Fix doc blunder.
Fix doc blunder
Fix doc blunder.
Fix up a few messes so it compiles cleanly again.
Add in tmpnam() support from David Whedon <dwhedon(a)gordian.com>, rework include/stdio.h, and fix up the resultant damage.
Remove environ from _USE_GNU wrapper.
Fix it so files are not stripped when debugging (doh!). Fix up strip rules. With this fix in place, I can now find what is wrong with malloc... -Erik
Doh!!! I am an idiot. I had broken malloc by disabling getpagesize(), and I didn't even do it for a good reason. Fixed, so malloc should work again... -Erik
Bad Erik. Repeat after me: "I will always compile before I commit". -Erik
Turn off debug noise
Some cleanups from Manuel Novoa III <mnovoa3(a)bellsouth.net>, and a bit of extra cleanup in the test makefiles.
Add in flock (though nobody should use it...)
Oops -- this should not have debugging hardcoded...
Fix a bug in memcmp -- don't terminate the compare on a NULL, keep comparing up to n bytes, till the are found to be either the same or differernt.
Add in an additional test for memcmp suggested by Mathias Lewin <mln(a)sys.sigma.se> (I just checked in a fix for memcmp to make it pass).
Some cleanups from W. Greathouse <wgreathouse(a)smva.com> (and a few of my own)
Several updates from W. Greathouse
A few cleanups. Fix fflush so it remembers to init stdio.
Add yet another missing header file
Handle fork and vfork on a per architecture basis...
A number of updates from Manuel Novoa III. Things look good...
Sync version number with Makefile
This file violated policy and directly used kernel headers. This fixes it by using our own copy of the stuct in question.
Just define __kernel_off_t ourselves...
Move stuff out if pwd_gep that doesn't belong there (getpass, utmp stuff)
Seems I forgot these...
A bunch of updates, part from Manuel Novoa III (such as more long long support), and other updates by me (better cross platform, cross-compiler, etc, support. Now compiles with 2.0.x kernels for armnommu.
Carefully tell folks when their Config is screwed up.
Duh. This was so wrong.
Oops. Extra #endif...
Patch from James Graves <jgraves(a)deltamobile.com> to get m68k started. Should be just sysdeps/linux/m68k left to hack at this point...
Oops. left strftime.c in twice.
Make error msg even friendlier.
A large update from Manuel Novoa III <mnovoa3(a)bellsouth.net>.
When doing a 'make clean', clean all subdirs, not just the current arch.
Makefile cleanups. For starters, OPTIMIZATION was missing...
Ignore generated files.
Cannot portably pass a short via va_args, since it will be internally converted to an int on many platforms. So make it be an int explicitly and call that good enough. -Erik
Manuel Novoa III modified malloc.c and avlmacro.h to reduce code size by using functions instead on Inlining (size vas speed tradeoff). I ran the results through indent. Looking pretty good IMHO.
Update makefile to match the new malloc code
Clean test dir on 'make clean'
Thanks to James Graves <jgraves(a)deltamobile.com>, we now have a first pass at getting m68k working. It may have some problems, but should now be fairly close.
Patch from James Graves <jgraves(a)deltamobile.com> to better handle m68k. Also fixes 2 very important malloc bugs! Anyone using malloc (esp mmu-less) should update and recompile. -Erik
"I will always compile before I commit." "I will always compile before I commit." "I will always compile before I commit." -Erik
Makeheader files be more like GNU
I've been working on fixing up the rpc crap. now it is only _mostly_ broken, a big improvement. Still doesn't compile...
Make the implementation match the header file.
Reduce dependancies -- don't use sysconf() internal to libc.
Fix naming error. s/sigsetjmp/__sigsetjmp/g
USe the name crt0.o, and cp it to $(TOPDIR)/libcrt0.o
Use the name crt0.o, and cp it to $(TOPDIR)/libcrt0.o
Use the right name.
Remove generated files. Bring Makefile behavior into sync with other arches.
init var to 0 to avoid warning
Warn using $(WARNINGS)
If they have an x86, but HAS_MMU is false, warn and sleep(10) since 99.999999999999999999% of all folks compiling on x86 have an MMU. Otherwise, folks will see that malloc mysteriously doesn't work... -Erik
First pass at making this work with the new libcrt0.o location.
Remove and ignore unwanted generated binaries
Fix termios handling. Now synced with behavior of GNU libc. -Erik
linux 2.0.x kernels have broken header files. It is silly to be so tightly coupled to kernel headers (since the 2.2 ones work with 2.0 as well), so I'm checking in include/net.
Added common handling of errno.
Facelist/cleanup for several syscalls. Added poll.
Clean all subdirs on 'make clean'
Symbol cleanup/bugfix. Add in needed global.
Add poll, so this is now needed
Add wrapper for old termio interface
Remove the nonexistant __sigaction
Add first pass shared lib support into Makefile. This could use some refinement...
Ignore generated binaries. Add a Config usable by most stock x86 systems.
Remove generated files.
Makefile fixes
Remove generated files
Ignore generated files
Oops. Forgot to check these in...
Remove an extra "/" from the crt0 path
Fix arm so it actually works.
A little update to wait* and a minor syscall cleanup.
Update the comments a wee bit.
"I will always compile before I commit." "I will always compile before I commit." "I will always compile before I commit." -Erik
Now works on StrongArm (using crt0.S) and arm7tdmi/uClinux with the arm-pic-elf compiler (using crt0pic.S). -Erik
Minor comment update
Reworked all test suite makefiles (man did they need it).
Bring into line with proper sest suite behavior
Add in NATIVE_ARCH
Always use system libc, to facilitate bootstrapping new architectures. -Erik
Oops. Should be LDFLAGS, not CFLAGS twice
This is a silly update to the makefile to test the new script used when doing a cvs commit. I hope it works. -Erik
This is a silly update to test my change to the script that emails folks after doing a commit. I hope it works. -Erik
Don't trash regs r0-r2, fix thanks to Michiel Thuys <michiel.thuys(a)intersil.com>.
Commit a pointless change to test more updates to the logging script. -Erik
I hereby commit a sin. features.h is now going to _lie_ and claim that this is GNU libc. Too many pieces of code look for GNU libc version numbers. So uClibc is now going to lie and claim it is GNU libc. This makes, for example, networking apps work much better since /usr/include/linux/socket.h does the wrong thing otherwise. There are lots of other examples. -Erik
Fix up the set of include files pulled into resolv.h
Bring into sync with a fairly current glibc header file. -Erik
Update networking includes.
Make the __GLIBC__ define be conditional. Stub out gnu-versions.h -Erik
Fix up the networking includes -Erik
Update the build system a bit. -Erik
Fix the worst of the damage so it actually compiles now (though, strictly speaking the entire pile of rpc dung is infect damage). Anyway, hopefully NFS using things may now be able to work... -Erik
Try enabling rpc support by default now. With a bit of luck it might even work... -Erik
Fix broken dependancies. -Erik
Wierd. Whats _null_auth doing here? -Erik
_void_void_null_func never returned. I noticed this yesterday in crt0.S and Michiel Thuys <michiel.thuys(a)intersil.com> noticed the same thing in crt0pic.S. -Erik
Include ptrace support so debugging will hopefully work. -Erik
Add in a silly test to check that argc, argv, and environ are working as expected... -Erik
It turns out that vfork was completely broken. That was why it wouldn't run on my little arm7tdmi/uClinux boards, since without vfork working, nothing works on uClinux. It took me forever to find this, since other problems were hiding this one. Big, huge, sigh of relief. -Erik
Doh! I forgot a #ifdef such that ptrace ended up in each and every syscall .o file. -Erik
Remove times and all the foolishness surrounding it. There is a syscall that does this, so use that. -Erik
Revert stdio to initializing itself. Not quite a pretty but that ensures that we don't blow up by using too much stack space, and simplifies the job of supporting new architectures, since they don't have to mess with calling foo init functions in crt0 and cleaning up the resulting damage. -Erik
Implement getdtablesize(), which is used by the rpc crap. -Erik
Try to automagically pick the correct dynamic linker. -Erik
Silence warnings -- add func declaration. -Erik
Add missing ffs, used by rpc crap. -Erik
Add ffs func declaration -Erik
Remove now irrelevant comment.
Use __environ instead of the GNU extension environ. -Erik
Add MAP_FAILED per spec -- patch from Michael Shmulevich <michaels(a)jungo.com>
Use MAP_FAILED.
I just changed "net" to "inet" to better follow the directory structure of libc5 and glibc. Fix the makefile accordingly. Folks will want to 'rm -rf net' to remove the old "net" directory. -Erik
Add an SH port done by Jean-Yves Avenard of Hewlett-Packard - Embedded and Personal Systems. Thanks! -Erik
Update to "malloc" so it will work on CPUs not supporting non-aligned words. malloc still only works for little-endian CPUs... Patch by Jean-Yves Avenard
Patch from Jean-Yves Avenard to add missing siglongjmp entry and fix a bug in setjmp for SH
div and ldiv are required for ISO 9899 -Erik
Fix two bugs. First, gethostbyname was doing dns queries when given an IP address. Secondly, when doing reverse dns lookups, it was appending the domain, even if a domain was already attached. -Erik
Let system dependant things override common things.
This actually fixes things I believe.
This is a touch cleaner, avoids using the comma operator.
Sigh. Turn debugging back off.
Forgot to increment i
Update arm for the new way of entering main. BTW, I can now run things on arm as a shared library, using the glibc shared lib loader. :-)
This evening I've been investigating why linking with the shared uClibc library was not working when booting busybox as init, even though it workes when run on my desktop system. I made boot floppy with just /dev, a few /etc entries, busybox dynamically linked vs uClibc, and /lib with shared uClibc in it. And just as several people have reported, it didn't work.
strtok_r.c was not being compiled in, so fix that.
Use LDFLAGS, don't always include -nostdlib...
Patch from Jean-Yves Avenard to move the getopt globals to their own file, since at least on SH, weak variables with initial values (.data stuff) were not working. Moving these to their own file seems to be a good way to handle it.
Fix up some long standing iterative symbol usage problem, noticed today by Michael Shmulevich, which was caused by the grafting in of GNU libc header files. -Erik
stat and mknod cleanup, take two. Put all the needed junk into syscalls.c for clarity. -Erik
I just grabbed the bits dir from glibc 2.1.3 on a sparc box to facilitate the sparc porting work being done by Mathew Bosworth. -Erik
Add strnlen
Reworked the password stuff to be reentrant. Group stuff is still needing to be reworked. -Erik
Make alloca work using the compiler builtin -Erik
Add in wordexp support (mostly stubbed out for now) since the busybox shell, lash, is about to start using wordexp. -Erik
Hmm. Seems I left wordexp off. oops.
Delete wordexp. There isn't much point in having this since so few apps use it, and it is just a stub anyways. Better to just skip it.
Add index and rindex
Fix the header file for index, rindex and similar
Add strxfrm and strcoll
Hah. It turned out that index and rindex were _already_ there and already implemented as wrapper funcs. And so just the header files were wrong. Anyway, axe the old index and rindex. -Erik
Wow. I'm all full of stupid mistakes today. Fix strxfrm -Erik
Add powerpc port done by David Schleef <ds(a)schleef.org>
Add in a setjmp test from David Schleef
Fix up breakage resulting from flipping the sense of some defines. Change from defining things to "0" in the disabled case to outright undefining them, lest code that does an "#ifdef FOO" get inadvertantly triggered. Remove now unneeded lines from Rules.mak which makes the command line smaller and avoids redundancy (since this stuff is now pulled in via features.h). -Erik
Move yet more stuff into the uClibc_config.h file
With the Official Declaration of coff being dead, we can forget about wrapper functions and just use weak symbols. -Erik
Sync i386 up with _all_ the glibc 2.1.3 include/bits headers, since we will end up needing a few more of them anyways, and all the other arches have the full set anyways. -Erik
Add a sneaky backwards compat hack from Michael Shmulevich
Sync with glibc i386 bits.
Add sigintr, from a patch by Michael Shmulevich
Add in the sysvipc patch from Michael Shmulevich
Debug should be off by default
Move the dirent stuff. I suppose it is system dependant, but then it really should be grouped together too. And it needed to be grouped more then it needed to be in sysdeps/linux/common
Add in alphasort (working fine) and scandir (just a stub for now). -Erik
Seems most folks don't have /sbin in their path
Add in the timezone global from time.h, from a patch by Jon Nelson <jnelson(a)boa.org>
I think this fixes the dependancy problems. Manuel, can you double check that this is what you intended? -Erik
Fix some strange formatting, so the compile looks prettier.
Put regex back in
Fix from Jon Nelson for error in timezone -Erik
Stub out localeconv. Please look over this to check it is correct.... I started trying to read the glibc code -- but that code is far too messy to be read. So I just wrote a silly C app against glibc, set the locale to POSIX, then called localeconv(). I wrote this version of localeconv.c so it returns the same stuff. -Erik
Add in random(), make rand use that under the hood. Fix the include file so folks know random is now there.
It seems ARM 2.4.x kernels do not have iopl. Also add missing bits/sem.h for ARM so everything now compiles and runs. -Erik
Fix a bug noted by David Beamonte <dbeamonte(a)intelnet.es>, so that we define "__linux__" in uClibc_config.h, not "__linux_".
Add in daemon.c, now used by busybox. -Erik
Accomodate mmuless systems.
Add in delete_module -Erik
Compile the compiler last
Get the full set of module creating syscalls in place. -Erik
Make a naming change to be consistent with other cross compiling tools. Set up a default lib dir off the root of the uClibc compile dir. This really needs more thought, but is good enough for now I think.
Update the ignore file to match
Fix include/errno.h to not use kernel header, and instead use bits/errno.h. This required we use _LIBC instead of __LIBC__ to be consistent with glibc. This had some sideffects in sys/syscalls.h. While fixing things, I made everything use __set_errno() for (eventual) thread support. -Erik
Fix up more leftovers resultant from fixing _LIBC
Update temp file handling and use a single function to do all the heavy lifting (most of the heavy lifting stolen from glibc, but reduced a bit).
Add missing time()
Posix 1003.13 POSIX_MULTI_PROCESS specifies that execle() should be there, so I just wrote it up. -Erik
Remove all the __THROW macros
Add missing alias siglongjmp = longjmp; -Erik
Bring sh and i386 longjmp implementations into sync
Add in a libcrypt implementation. About 8k. -Erik
Remove the old crypt implementation
getnetbyname.o, res_init.o and res_query.o were missing from the Makefile, patch thanks to John Hall <John.Hall(a)optionexist.co.uk>
Nobody should be using the SYS_ syscall names. Use the __NR_<foo> names instead. -Erik
Add missing header file for daemon.c, add missing functions into unistd.h. I still need to implement getlogin.c fpathconf.c, but they are required for IEEE Std. 1003.13-1998 POSIX_FILE_SYSTEM conformance and we don't have them yet. But we will very very soon. :-) -Erik
Oops. I forgot the header file -Erik
Update the ignore targets
Add in a trivial getlogin implementation
Stub out fpathconf() -- FIXME -Erik
Use the real getnetbyname(), not the stub in resolv.c
Only compile in daemon() if the target has an MMU. -Erik
Initial checkin for ld.so. This is a combination of effort from Manuel Novoa III and me. I've been working on stripping out arch dependant stuff and replacing it with generic stuff whenever possible. -Erik
Ignore generated stuff. Add a 'make install' target that works. -Erik
Ok, seems this _must_ be compiled as PIC code. -Erik
Revert my syscall changes. The _syscall# macros are not PIC friendly and don't work. Back to nasty asm...
Always use __NR_<name>, not SYS_<name> -Erik
Fix up compiler name
Define where the shared lib loader now lives... -Erik
Fix up the main makefile. Autobuild ld.so and install it when appropriate,
Make sure that we list the shared lib loader as a required lib by explicitly linking against it. That way 'ldd' tells us what we need to know. -Erik
These are needed for arm ld.so support (not at all working yet...) -Erik
Silence a warning
Avoid a chicken-and-the-egg problem. Use $(LD) to compile the libdl library, not $(CC). -Erik
Disable an ugly bug-workaround for ancient versions of gcc. -Erik
Make sure 'make install' creates needed dirs.
Be more strict with the glibc style malloc implementation. Return NULL when folks do a malloc(0) using malloc-930716.
Be more strict with the malloc implementation. Return NULL when folks do a malloc(0) using malloc-simple. -Erik
As pointed out by Michiel Thuys <michiel.thuys(a)intersil.com>, this was checking sizeof which was pure bloat and in many cases wrong. -Erik
Move libdl and udate build method a bit -Erik
Update ignore target
Be really sneaky and use GNU ld special stuff so that whenever folks use the unsafe gets, they will get a warning from the linker. muahahaha. This method will soon be applied to fork() w/o an mmu etc... -Erik
Revert my ill-advised change to force the shared lib loader to always be linked. Just make libc.so link vs the shared lib loader and everything works fine. Duh. Thanks to Michael Shmulevich <michaels(a)jungo.com> for clueing me in. -Erik
Fix up default .so number. This should avoid conflicts with libc5 libraries...
Some minor makefile fixups
Oops. I forgot to check this in last night, so if anybody built uClibc during the last 18 hours it would have failed. Sorry about that... -Erik
Keep major number in sync with the toplevel makefile
Be more careful about not hard coding names.
Missed these
Ok, this should finish things up -Erik
Don't hard-code the major number
oops again! I forgot to pull in the arch specific stuff, and forgot to update those makefiles. -Erik
Ignore generated binary
Ignore strerror
Just use 'ls -l' since ls -sh lacks sufficient granularity
A few more compilation updates
More trivial changes.
Ignore stuff
Patch from Tom Walsh <tom(a)cyberiansoftware.com> to fix a thinko on my patch.
As noted by Michiel Thuys <michiel.thuys(a)intersil.com>, the weak alias for srand was in the wrong file, causing rand.o to be needlessly included in some cases.
Yet another large update to ld.so. In this iteration I finally got the C based syscalls working, which greatly simplifies what it takes to get new architectures running. -Erik
I messed up the comment
Eliminate the useless _dl_interpreter_exit function
For m68k I forgot a needed #undef
Add in missing ARM support. I really need to port this whole thing to use a modern version of elf.h from glibc. -Erik
Get rid of the a.out header file
Fix up a comment
Sanitize the calling of _dl_linux_resolver so it can be read by mere mortals, and so it says what it means. Ick this stuff was nasty. -Erik
Yet another major rework. This time around, rework it to no longer use linux kernel header files. -Erik
I forgot to check this in. -Erik
Another cleanup. Never pass addresses as an 'int' -Erik
Some more updates and explanation
Avoid needing to distinguis between the install dir and the build dir. Use both automagically when compiling. -Erik
Some more minor updates. Add in some debug stuff, and a way to print out addresses _early_ on in the process.
Describe what this routine is supposed to do so we can port it to other achitectures.
Dont segfault when folks run ld-uclibc as an executable.
This is kindof neat. With this update, you can now simply set your PATH and things will now simply compile vs uClibc. Or you can add INSTALL_DIR/usr/bin to your path and use it as a cross compiler. Either way, it works now. -Erik
Initial sparc port, thanks to Mathew Bosworth <mbosworth(a)metaflow.com>, who sent this to me a month ago and I forgot to check it in. Oops. Better late then never. -Erik
This patch allows powerpc to compile again. It also checks if we are compiling for an arch for which uClibc has an ld.so or not, and otherwise sets things up to use the system ld.so. -Erik
Another update to make sure things work properly on x86 now.
Fixup ppc to powerpc
Add in inet_ntop() and inet_pton() -- ported from glibc 2.2.3 by Cory Visi <merlin(a)phear.lwz.org>
Change FILENAME_MAX to be only 255. Max filename on ext2 is 255, so there is no reason to allocate 4k. Change working of execvep.c per patch from Matthias Kilian <kili(a)outback.escape.de> so that there is not a fixed 127 byte buffer. Too easy to overflow... -Erik
Put in but leave commented the DL_DEBUG define
Use the symbolic name, don't hard code.
Looks like I forgot to commit this.
Some very minor cleanups
Make sure types are pulled in
Add in a qsort, alphasort, scandir test from Jon Nelson, jnelson(a)securepipe.com
A patch from Jon Nelson <jnelson(a)securepipe.com> to make scandir sort things as it is supposed to do.
Turns out alphasort was totally broken. This fixed one works. -Erik
Add in libutil, based on Cory Visi's variant of Michael Shmulevich's libutil port. I have reworked the code quite a bit so that the stuff that is supposed to be in libc is in libc, and I added a bunch of missing stuff so the libutil interface matches that of glibc's libutil. The only caveat is that libutil/login.c is currently a stub. -Erik
Yipe. This was still pulling in kernel headers. -Erik
compile up libutil
By default, leave out the RPC junk (it adds over 30k). Add in a compile time option to include it if NFS support is wanted (does anyone every use this for anything else these days?) -Erik
Add in an older libc5 glob implementation, which is a bit thinner. -Erik
ignore generated stuff
Don't hard code path to TARGET_CC
uClibc now has a math library. muahahahaha! -Erik
Add in _dl_strrchr
minor formatting cleanups
Ignore generated file
Fix up naming of ld.so so every uses the same define. The top level was using one name and the ld.so-1 dir was using another (they happened to be the same). Fix that. -Erik
Check if ld.so is included in the NEEDED list. If so, do not _again_ try to fix up its symbols since they are already fixed up, thank-you very much.
Seems a few apps need this one...
These are needed for ash-0.3.8
Oops. Forgot the makefile updates
Fix broken resources.h
Fix 'make clean' so it clean the rpc dir
Fix 'make clean' target
Fix up the 'make clean' target
A patch from Matthias Kilian <kili(a)outback.escape.de> to fix -DDEBUG_MALLOC so that it works for realloc too. -Erik
Fix up the 'make clean' target
Fix the 'make clean' target
Bring powerpc back into line so it compiles again.
Fix a couple silly bugs in this test
Change 'crypt' to 'libcrypt'
Rework where libraries get installed to. Now thew will be compiled and dropped into a uClibc/lib dir when compiling, which will make life a bit easier when installing and cleaning up. Preface uClibc with 'lib' so ldconfig will recognize it as a library. Make all libraries have the uClibc version number attached, making upgrades possible by using the traditional symlink to the .so name plan. -Erik
Ok, this should finish off my massive ro-organization. The source tree is less messy now (which helps), all libraries are placed into uClibc/lib when compiling, all libraries now use a consistant mechanism for being built, all libraries use a consistant naming scheme where the lib name includes the uClibc version number, which makes ldconfig happy and willing to work with us. -Erik
Add missing header file for arm
I'd broken powerpc crt0.o installation
This file was missing on arm
Add in a libc.so link as well
These seem to be missing also
Should not call make on ldso/libdl
Fix up a few little problems
Oops. I left in some debugging noise. Also some minor formatting updates.
Oops again. We do want to print this info, but only when _dl_trace_loaded_objects is true (i.e. when doing an 'ldd') -Erik
Sigpause was broken. Now it is fixed. -Erik
Move the default ptrace.c to common, but let arches override it (such as m68k which has some asm in its version). -Erik
Add in tempnam()
Patch from David McCullough <davidm(a)lineo.com> -- do not try to build ldso when we don't support shared libraries...
Fix up some problems noted by August Hoerandl <ahoerandl(a)gmx.at> when cross compiling with shared lib support, there were spots where the native 'ld' was mistakenly being called.
I wasn't building the libdl shared lib anymore. Make each lib install a libfoo.so symlink as well as a libfoo.so.0 link, since gcc is currently only looking for files ending in .so. wierd. -Erik
Wrap getline() inside #ifdef __USE_GNU
Patch from Andreas Neuhaus <andy(a)fasta.fh-dortmund.de> gcc was looking for crt0 in the wrong dir. Oops!
Stub out libresolv for now. Some apps try to link with it (though almost always erroneously as a result of configure scripts that were poorly done). This will let such apps compile... -Erik
rewrite to accomodate devfs
One last structural change. Install header files to INSTALLDIR/usr/include so we now parallel the behavior of the standard tools.
Update for the SH port from Jean-Yves Avenard <jean-yves_avenard(a)hp.com>
Cleanup the math.h header file. It was broken when enabling doubles but disabling long doubles. -Erik
We need the definition of HUGE_VAL fpr some apps. Include it. -Erik
Add in missing capset and capget syscalls. Stub out syscalls when missing rather then just omitting them... -Erik
Add in some more GNU compatible locale stuff. I only implement the C locale of course. util-linux needs this stuff to compile...
Enable mlock and friends if __UCLIBC_HAS_MMU__ is defined. util-linux needs this to compile.
Add in message queue support, based on work from <tapu(a)371.net>. This is required to compile util-linux
Fix regex support to be compatible with 4.2 BSD regex library. This is the last bit that was needed to get util-linux to compile.
Make powerpc compile. Needs this header...
Don't try to run ldconfig unless it exists
These are needed for arm to compile
Comment out broken test
Sometimes (often) the kernel will return things other then -1. Deal with it. -Erik
Define "NM = $(CROSS)nm" and use $NM and $AR in get-needed-libgcc-objects.sh in all cases.
Remove the now obsolete "headers" target. Fix call to get-needed-libgcc-objects.sh to we define NM and AR properly.
warn folks that libresolv is a stub
Cleanup some stupid warnings
Add in an initial TODO list. Please add stuff as needed (and feel free to work on items in this list as well). -Erik
decouple this from strchr
oops.
Put the locale stuff back how it was till we can get a proper implementation that doesn't suck so badly. -Erik
Teach the ldso stuff to use the proper elf.h header file, not a local copy. -Erik
Add a new 'readelf' util I wrote this weekend. -Erik
Update the TODO file
Add in a test for outb (that currently fails)
Get rid of the unused LDSO_VERSION
Default to malloc-930716 for x86
Default to testing shared libs.
Silence a few warnings.
Some socket cleanups
Cleanup the toploevel makefile handing of shared libs. Add weak_alias define, and set things up so nasty old coff toolchains can now compile things and should actually work again. -Erik
Make sure these use the local sysdep.h header file
Some sparc updates from Stanley <ngstanley(a)cwc.nus.edu.sg>
Use sys/mman.h not asm/mman.h -- we don't want kernel headers... -Erik
A few new todo items
Default to something like a strongArm, (i.e. has an MMU)
Don't create a fake readelf app. We are creating a real one now. -Erik
Fix a really stupid bug with ttyname, thanks to a patch from Stefan Soucek <ssoucek(a)coactive.com>
Yet more ldso cleanups. Be more discriminating about when using inlines and when using real functions. Make things be more portable by providing a default C routine to locate the got. -Erik
Some silly grammar stuff
Make all the uClibc tests use the --uclibc-use-build-dir flag
Be consistant for all the client code, and use TARGET_CC with --uclibc-use-build-dir
Add in (stub out really) __libc_current_sigrtmin, and __libc_current_sigrtmax so current versions of ash will compile. -Erik
I am very proud of myself. I managed to write a working _start for x86 entirely in C -- no asm required. muahahahaha! -Erik
Make strrchr not call other string functions. Hopefully speeding it a bit.
Now that our compiler wrapper is up to it, we can now use TARGET_CC to compile ldso, simplifying the process of passing in special CFLAGS and such (and simplifying the build in general since we no longer need to go directly to LD to link things). -Erik
Make some nice SEND_ADDRESS_STDERR and SEND_NUMBER_STDERR macros that operate inline, to help when debugging ldso (i.e. before we can do things like function calls). -Erik
Note missing struct _res in resolv.h
These are needed for powerpc to compile
A few build updates
I went nuts and wrote a generic rint implementation. I think it is correct per the man page and a little testing seems to show it works. -Erik
This commit finishes adding support for the old m68k-coff toolchains by working around a missing header file in the compiler shipped with the uCsimm and uCdimm. This should make the folk in Toronto happy, since now they can use the latest CVS version of uClibc. -Erik
This was violating policy and using a kernel header file... -Erik
Add in "HAVE_SHARED" so shared libs build or not as needed -Erik
Patch from Shane Nay, who noticed that these were not properly labeling functions as such, thereby hosing the shared lib loader.
This adds in support for PIC on x86. Unfortunately, this will break all arches till they add in an libc/sysdeps/linux/<arch>/bits/syscalls.h file. Sorry about there, there was no other way... -Erik
Make PIC a config option
Add in missing syscalls.h for powerpc
Looks like we lost clearing errno
Step one in a process to ween ourselves off of using asm/unistd.h. This will break the build for a bit. -Erik
Don't include asm/unistd.h
Don't even threaten to include asm/* stuff
Stub out an initial version. Manuel will be writing some code to autogenerate this stuff...
Cleanup and don't require LIBC to be defined for the syscall numbers.
Cleanup to not use kernel headers at all. -Erik
Replace the crypt implementation with one based on crypt(3) from minix, fixing a licensing problem with the previous version. Manuel did the initial port, and I fixed it up to be reentrant. I hope I didn't break anything... -Erik
Oops. I forgot to check this in... -Erik
I missed an item when reentrantifying des.c, reuse a smaller field for md5.c -Erik
Add a dlopen test
Add syscalls.h for ARM
Fix a silly typo
Just take whatever the kernel headers gave us, spaces and all. This is to accomodate arm, where rmk has made the syscall numbers be very very strangely setup, -Erik
Autogen include/bits/syscall.h for ARM -Erik
Force our child libs to link vs libc
Allow the shared lib loader to fallback on the builddir if everything else fails. Let <arch>-uclibc-gcc --uclibc-use-build-dir set the shared lib loader to the one in the builddir's path. -Erik
Scrub up the tests a bit, and force everybody to use the build dir, so nothing need be installed... -Erik
ignore generated stuff
Oops.
Scrub a couple of ints
Merge arm support into the mainstream. This change is pretty minor, just carefully memset 0 strings before using them, and also referencs strings via the GOT for ARM as well. -Erik
Merge the arm port into the main tree. The final version (the one that actually works) is the most excellent work of Shane Nay <shane(a)minirl.com>, who took what I had been doing and fixed it.
Finish up merging the arm port into the main tree.
Renamed as extra/Configs/Config.i386
Fix missing libresolv.so
Note that ldd needs a rewrite
forkpty.c uses fork(), and so must be disabled when HAS_MMU=false -Erik
Don't change options on based on path -- use command line options or ENV variables only. The current behavior violates the principle of least surprise... -Erik
Note missing shadow support
Fix strxfrm, which was broken (thanks to Shaya Potter <spotter(a)us.ibm.com> for noticing, and cleanup a warning. -Erik
This config seems to be basically correct for arm uClinux systems. -Erik
Workaround an old m68k-coff compiler problem
A patch from Michal Moskal <malekith(a)pld.org.pl> to include partial IPV6 support. This adds things like gethostbyname2(). Off by defaut, of course,
Fix the code for finding the interpreter, which was I had totally screwed up the first time... -Erik
Rewrite of ldd so it works as expected, and does not invoke the shared lib loader at all. This will allow us to throw out the support code for that from ld-linux.so.0 -Erik
ldd rewrite is done
Seems weak_alias wasn't working as expected...
Add missing in_addr_t
Use uClibc's ldd, not the system one which is probably broken anyways. This ensures correct answers, and prevents all the annoying segfaults from the system ldd. -Erik
This commit merges David Schleef's updates to the build system, which a few tiny fixups here and there from me. Seems to work just fine and will hopefully be a bit better behaved. -Erik
This takes about 6k off the size of the x86 shared lib loader... -Erik
Scrub up a few things I forgot. Add a few more cleanups. -Erik
use ln -fs
Some cleanups needed for things to compile and work as expected with the new build system... -Erik
We already have tar.h, so might as well include cpio.h as well...
Forgot this...
Oops. USE_CACHE was disabled and didn't compile when enabled since I'd forgotten a one liner... -Erik
Fix missing function when USE_CACHE is enabled -Erik
Turn off USE_CACHE by default (so ldconfig, by default, isn't needed). Fix a stupid typo in dlib.c where I had several weak symbols set up backwards, breaking libdl (dlopen and friends), -Erik
Elimintate spurious trailing /
search_for_named_library forgot to wipe the target string, so each time around the loop it was getting bigger...
If /etc/ld.so.preload was size 0, the shared lib loader would choke and die. Test for non-zero size as well, -Erik
Try search for the shared lib interpreter. Eliminate all double "//"s from the output -Erik
This syncs things up with my local tree. Mainly changes installer issues, and syns things (as far as I am willing) with Dave Schleef's tree. We may need to go another round or so, but we do seem to be converging...
Fix behavior when installing the devel env, since somewhere along the line this got messed up...
Update the build system, yet again. I hope this is the last time... Here is the basic theory of operation: SHARED_LIB_LOADER_PATH/ <The location where the shared lib loader will be installed and where the compiler will cause apps to look for it.> DEVEL_PREFIX/ bin/ <contains gcc, ld, etc for setting PATH=$DEVEL_PREFIX/bin:$PATH> lib/ <contains all runtime and static libs> include/ <Where all the header files go> SYSTEM_DEVEL_PREFIX/ usr/bin/ <contains arch-uclibc-gcc, arch-uclibc-ld, etc that might be installed by a .deb or .rpm into /usr/bin, but can happily live under DEVEL_PREFIX> PREFIX This is prepended during 'make install's allowing you to shift things to be installed under some alternate location (such as when building a .deb) -Erik
Don't blow away existing files when trying to install a ldso symlink...
Oops. Symlink args were backwards...
Begin removing some unnecessary inlining, and fix naming of _dl_fprintf which should really be _dl_dprintf -Erik
Fix the library searching routine so it is way simpler, and so it matches the routine in ldd.c
Sync up ldd behavior
I rewrote strcat without any function calls.
I just wrote a stpncpy() since someone wanted it
Use malloc on arm (since I've never bothered to write sbrk)
Add in TARGET_PREFIX, which was still used in a few spots (and appropriately so). Leave this hidden and set to a sane default since nobody should really need to change it...
Fix SYSTEM_DEVEL_PREFIX to allow install of the <arch>-uclibc- spoofer toolchain to any arbitrary directory...
Add in a make release target
A few more (final?) cleanups for the installer behavior. I now think things are working perfectly (perhaps I shouln't think so much)
Fix the "install_target" target to install to $(PREFIX)$(TARGET_PREFIX)
use some #defines internal to the ctype functions to eliminate them calling other tiny ctype functions. Now all ctype funcs will end up with no extern references, which ends up shrinking both the uClibc shared lib and shrinking client code. -Erik
Proper support for tests spannint multiple .o files -Erik
Put a bandaid on getpgrp behavior
powerpc doesn't have sbrk yet, so use "malloc", not "malloc-930716"
Don't use --uclibc-use-build-dir for the tests unless BUILD_UCLIBC_LDSO=true
Fix a stupid bug causing the ld-uClibc entry to be lost.
Fix a silly bug with the header file
Fix problem with possible redundant entries.
Add byteswap.h, per glibc
Add missing shadow.h
atoi, atol, atoll, and atof are supposed to be functions, not macros. -Erik
Get rid of non standard macros for things that are functions
Add the __fopen prototype, since I pulled it from stdio.h
Use "stdin", "stdout", and "stderr", not "_stdin", "_stdout", and "_stderr", since this is what gcc and libgcc expect... -Erik
Make gdb/gcc/binutils happy
elide some debug noise
Add "__write" as a weak alias for "write"
This will hopefully make global constructors and destructors work
Fix goofy formatting
Minor update
Wrap up some long long stuff in __UCLIBC_HAS_LONG_LONG__
"Kim B. Heino" <Kim.Heino(a)bluegiga.com> reports
Preevaluate some stuff so it only gets run once, speeding the compile
Patch from Andrew Ip <aip(a)cwlinux.com> to add ftime, allowing openssl to be built.
Patch from John Tyner <jtyner(a)cs.ucr.edu> to avoid redefined symbols by piping results through uniq
Add lockf
Recurse into 'file'
Oops
Add in a simple vfork test
Fix the vfork test so it actually works this time. -Erik
Rev all the header files to sync things with glibc 2.2.4
Update to accomodate the header file changes
Finish syncing up arm
Scrub up a few test things
Add in missing file
Optimize for size, and disable expensive inlining
Gut this file, and quit referrng to _IO_* junk
Silence stupid warnings caused by bad kernel network includes
Silence a silly warning
re-enable ntohl and friends
Add inb, outb and friends,
Be more careful about not redefining stuf
Duh.
Make iopl and ioperm work
Sigh. Erik mucks it up again...
Add in gcvt()
Fix a stupid typo...
Fix prototype
Minor cleanup
Fix nasty behavior difference from glibc -- also fixes getline() -Erik
Turn off optimization when debugging
Add in some math lib tests
termcap.h is supposed to be part of ncurses, and has no place in the C library includes.
Cleanup brk/sbrk
Silly little changes
Minor cleanups
Patch from David McCullough <davidm(a)lineo.com>:
Yet more minor cleanups
Wohoo! David McCullough found the bug! His comments follow:
Minor update
Patch from Miles Bader <miles(a)lsi.nec.co.jp> to support the v850. He sent this patch to me a month ago, but I forgot to apply it...
Add strndup, written by Stefan Soucek <ssoucek(a)coactive.com>
Add missing values.h
A small patch from Erwin Authried <eauth(a)softsys.co.at> *) changed ARM crt0.S / crt0pic.S selection -- depends on DOPIC now. *) Minor tweek to syscall definitions
Beef up the fork test, checking for proper SIGCHLD behavior
Erwin Authried <eauth(a)softsys.co.at> noticed that _XOPEN_SOURCE is supposed to be a number
Turn off program_invocation_name and friend
Revert global old mmap usage, and do it per arch
Oops. I merged things backwards. Lets try that again...
Geez, I really screwed that one up. Lets try that one again... Revert mmap to where it was in rev 1.41 of this file, -Erik
Fix comment
This commit makes large file support actually work (when enabled in the config file). I've tested this and it works for me. -Erik
In theory, this adds readdir64 and friends. Dunno if they work yet or not.... -Erik
This header file was broken, breaking signal handling on ARM. This update fixes it... -Erik
Bring these into line with glibc 2.2.4
Fix up sig handling so it is more in sync with glibc behavior
These are now obsolete
Oops. Forgot this one....
Disable fast search by default (doesn't work on coda for example)
Patch from Jari Korva <jari.korva(a)vtt.fi> to fix a memory leak in dns_lookup.
Add statfs64
Patch from Jari Korva <jpkorva(a)iki.fi> I found some support in uClibc for IPv6 but I needed some more... Enclosed is the patch containing following modifications:
A couple of TODO items
Add missing sched.h
Fix the clone syscall so it actually works.
Initial first (lame) pass at making a pthreads library. This works for me when linking staticly on x86.
Sync up m68k headers
Sync up mipsel headers
Turn off dtype
Make it obvious that dtype is disabled
Sync up sparc headers
Scrub up some lingering problems preventing readdir64 from working and creating several *64 problems, particualrly when client apps used -D_FILE_OFFSET_BITS=64 -D__USE_FILE_OFFSET64. All better now. -Erik
Oops. Forgot these
I fixed readdir64
This is a .c file
Fix comments. Attempt at c++ global constructor support.
Silly me. I left in a define which caused statfs64 to recursively call itself.
Another todo item
Add an initial clone from glibc. Needs fixing.
Fix default install dirs
Be more careful able not shadowing with var names
Can't use CLK_TCK in here since /usr/include/bits/time.h now defines that as __sysconf(_SC_CLK_TCK) causing infinite recursion. -Erik
Fix up pathconf and friend so that test suits can work
A few symbols needed for testing
Oops. Lets try that again.
pathconf can't use fpathconf or it will block opening FIFOs
Add missing ctermid. Also add putc and getc (in case they get undefined which is a valid thing to do) -Erik
Cleanup abort() so it behaves itself a bit better
Add acct syscall. Fix sigsuspend which was totally broken (it needed a wrapper)
Finish off the getc putc adjustment
Fix support for sysv style signals
Adjust naming for __FORCE_GLIBC__ to __FORCE_GLIBC and add support for __FORCE_NOGLIBC per Brian Stafford <brian.stafford(a)office-logic.com>
Seems we were lacking an acos() implementation
Totally rework the math library, this time based on the MacOs X math library (which is itself based on the math lib from FreeBSD). -Erik
Default to building C89 math stuff only. Cleanup some warnings. -Erik
Adjust configs for updated math lib
Finish ajusting math lib options. Close out a couple of todo items.
Add this so madplay will properly configure itself using oss as a default output device. -Erik
I just spent a bit of time writing up a FAQ... -Erik
Move powerpc specific optimizations (courtesy of apple) to powerpc subdir. Put together a theoretical framework for adding arch specific optimizations. Havn't tried this yet but it looks correct... -Erik
Oops
Fix path problem,
Fix naming so things will actually work -Erik
Silly us. Don't try to free alloca'd memory. -Erik
Work around broken m68k kernel headers... Grumble.
Oops
Wrap uClinux specific stuff, so this will run on macs and such that have an MMU -Erik
Much faster version of 'make install' -- it was doing one fork per header file... Ugh. -Erik
Oops...
Use consistant paths
Move the FAQ. Add a docs dir. Add in a report on thread support. -Erik
Sync regex with glibc 2.2.4. I need to add an option to select a minamalist replacement. Coming soon... -Erik
My adjusted 'make install' was missing include/linux subdirs. Try just using 'cp -a' and see if anyone complains and makes me use tar or something.
Add include/sys/reg.h to make gdbserver happy
Always use --uclibc-use-build-dir
Add support for mmu-full m68k systems, such as oldworld macs. -Erik
Update TODO list a bit
patch from Jari Korva <jpkorva(a)iki.fi>:
Add basename and dirname. Write memrchr. -Erik
Use the asm version by default on x86. Tag _start as a function.
Update my email address. I am no longer andersen(a)lineo.com
Oops. I accidentally commited some experimental test code (which was broken) yesterday. Revert that bit. -Erik
Steven Carr noticed that uClibc's inet_aton() is stricter then in glibc, since no trailing blanks was permitted, such that inet_aton("192.168.1.1 ",&value); would work with glibc, and fail with uClibc. This brings uClibc's inet_aton() behavior into sync with glibc's behavior. -Erik
Use tar instead of cp -LR for make install, since older GNU cp (i.e. RedHat 6.2) don't support -LR -Erik
Fixup autogeneration of bits/syscalls.h
Ignore tmp dir
Add the website into CVS
Update the docs and website
Forgot this
Fix snapshot link
Oops. Revert debugging defines
Miles Bader <miles(a)lsi.nec.co.jp> noted that I'd broken setting OPTIMIZATION from the Config file. Revert that. -Erik
A very large patch from Miles Bader <miles(a)lsi.nec.co.jp> to bring v850 back into working condition. Thanks Miles! -Erik
Update some URLs
Bump version number to 0.98 -Erik
Support older link name
update website for release
Text update
Grammar
Sigh. More grammar fixes
More scrubbing
Add udhcp
More Updates.
Add in the missing get_kernel_syms syscall
Remove erroneous allow-shlib-undefined
Change 'cd <foo> ; bar' to 'cd <foo> && bar' for proper error checking
Change all 'cd <foo>; bar' constructs to 'cd <foo> && bar' for proper error checking -Erik
Support arch specific optimizations (examples shown for x86 and ARM). Autodetect target architecture by asking the compiler. -Erik
Add a test for a sigchld bug
Cleaned up test that doesn't need manual intervention. -Erik
New and improved!
Silly spelling error
Turn off the useless personality crap
Fix usleep to work correctly. Fix sleep behavior in the presence of SIGCHLD. -Erik
Take the shorcut version, which is good enough for nearly all normal usage. -Erik
Once again, rework the signal handling to be even more correct. We no longer segfault when running test/signal/sigchld.c, which exposed a bit of a rats nest. The problem ended up being a erroneous syscall defination, but in the process of finding that out, I scrubbed things up nicely and adapted things to use the rt_ signals if they are available. This now passes all the signal tests. -Erik
Sync SH header files with glibc 2.2.4, so it can actually have a chance (at least in theory) of working. -Erik
Oops. Disable threading. -Erik
Fix a few things I'd missed when using old (2.0.x) kernels. -Erik
Patch to add rcmd support, from Stefan Soucek, which I'd long ago forgotten. Oops. Needed some minor scrubbing for bitrot, -Erik
Cope with all variants of 'gcc -dumpmachine' output
Fixes from M. R. Brown <mrbrown(a)0xd6.org> to fixup some little compile nits with the SH architecture, and support SH4,
Enable several more syscalls.
Oops. I'd accidentally enabled a #define for __NR_get_kernel_syms so turn that back off -Erik.
Make getopt act the same regardless whether the app was staticly linked or dynamicly linked. Obeys the principle of least surprise. -Erik
Add missing inttypes.h
Support statvfs and statfs. Added getmntent_r (and made it use strtok_r instead of strtok), taught getmntent to use getmntent_r. -Erik
Fix formatting. Stub out pthread_join and pthread_exit for now. -Erik
Fix stupid typing problems
Support tmpfile64 (just a weak for tmpfile) -Erik
Use public interface, not a glibc style private one -Erik
Fix stpcpy function declaration
Mahe 'make clean' remove generated bits/syscall.h, as noted by "Kim B. Heino" <Kim.Heino(a)bluegiga.com> -Erik
Scrub malloc handling
Remove "-Wl,--no-undefined"
Fix duplicate of timezone
Be more carefull about erroring out of shell fragments. Try to enable -falign-functions if avilable.
Fixup v850 architecture autodetection, from Miles Bader <miles(a)lsi.nec.co.jp>
Patch from Stefan Soucek <ssoucek(a)coactive.com> to remove alloca (when non-reentrant) since alloca can blow the stack pretty easily on mmu-less.
Patch from Michael E Brown <mebrown(a)michaels-house.net> to support setting DEVEL_PREFIX and BUILD_DIR at runtime instead of having to recompile the wrapper. Minor changes by me.
Don't show shell fragments
Fixup comments regarding large file support (it works these days) -Erik
Rework termios wrapping code to try and do the right thing. -Erik
Allow people to exclude regex code, since it is huge (27k)
Fixup broken termios stuff. No, really this time. -Erik
Implement mempcpy
Doh! I broke getmntent when I added getmntent_r! This fixes it. -Erik
Recommend making symlinks, not copying the config file. -Erik
Build a native uClibc ldd
Ignore native ldd
Allow people to override the TARGET_ARCH setting
Eliminate C++ style comments
Scrub the way libraries are linked. Use ld, not gcc, to avoid chicken-and-egg problems when building gcc toolchains. -Erik
Fix indenting
Cleanup makfile, use ld to avoid chicken-and-egg problems when building gcc/g++. -Erik
Failed to call sort before calling uniq in several spots, thereby causing ld to choke during the gcc build. -Erik
glibc test apps failed to be static when told to be
Build glibc test apps static when told to. Make tiny live up to its name.
Don't use target strip on native binary
Rework naming for shared lib loader to avoid potential nameing conflicts with std header files. -Erik
Remove old named file. Fix headers on updated one.
Remove the now obsolete d-link tree. Update things to cope with the new naming -Erik
Oops. We lost -FPIC in the shuffle... -Erik
More build system cleanups...
Oops. typo.
Sigh. Typod it again
We don't need an ARCH_CFLAGS2, just fixed the ordering on ARCH_CFLAGS
Make libc depend on ldso
Depend upon libc
Both _dl_simple_ltoa and _dl_simple_ltoahex use buffers of size 21, but we were feeding them strings that were just 13 bytes long... Thanks to spudmonkey(a)racsa.co.cr for noticing! -Erik
Enable fdatasync
Patch from Brian Stafford <brian(a)stafford.uklinux.net> to fixup support for Unix98 PTYs, and optionally exclude the older junk.
Hide all reference to wchar_t so configure won't get confused -Erik
Tell ld explicitly when stuff is supposed to by dynamically linked -Erik
Oops. I forgot to add -Bdynamic to this one. -Erik
Clearify error message
Enable fcntl64, and fix fcntl when large fils is enabled.
Don't waste space warning about tempnam()
Allow apps to use varargs.h (not that they should)
Make sbrk common, add arm/brk.c, cleanup leftover damage
oops
Fixup build a bit. Be sneaky and include everything into a single .c file, making stuff be even smaller.
Fix up all non-x86 arches to cope with the latest ldso update -Erik
Miles Bader <miles(a)lsi.nec.co.jp> noticed that `make install' tries to build ldso stuff on non-shared-library systems. And Matthew Bloch <mattbee(a)soup-kitchen.net> noticed that we need to create some dirs before installing some stuff, so fix that as well. -Erik
Fix the bug where binaries built with older toolchains would segfault. Turns out that 'ld -nostdlib' was the culprit. Who wouldof thought... -Erik
Updates to the v850 architecture from Miles Bader <miles(a)gnu.org>
Create a changelog vs the 0.9.8 release so people can track exactly what has changed...
Minor touchups
Go back to using ld, now that I've found the real problem...
Make it so powerpc can work despite lacking brk().
Force DOPIC be true when HAVE_SHARED is true. Don't define -D__PIC when DOPIC is true, since the compiler does that for use when -fPIC is set. Some minor formatting cleanup. -Erik
Default to using malloc-930716 on ARM systems, since it is about an order of magnitude faster.
Doh! I'd included sbrk.o twice...
Add in setfsuid() and setfsgid() so lpr-0.72 can compile. -Erik
Add missing sys/fsuid.h
Fixup setjmp implementation so it actaully works as expected -Erik
Fixup util build
Fixup xfree86 entry
Fix spelling error
For now, don't let googlebot and friends spider the cvsweb stuff, since my little DSL line can't deal with the load. I'll reenable this in a few days when I get things colocated. -Erik
make sure all utilities will build even with older toolchains by using our own local elf.h header rather than the system one. -Erik
Fix makefile so it actually works when cross compiling -Erik
Fixup setjmp and longjmp so they behave themselves properly now on both x86 and arm... -Erik
Don't complain about _GLOBAL_OFFSET_TABLE_
Fix/simplify longjmp. Fix toplevel mips settings
Don't assume uid=gid
Be ever so pedantic and explicitly tell tar to use stdin, not to just assume it. -Erik
Add install_utils and install_target_utils targets, so people that don't like my amazingly cool ldd and readelf tools, can (most unwisely ;-) ignore them. -Erik
Bump version number to 0.9.9
Add in a configurator script. Now people can put stuff like this:
Add an example of how to use this thing.
Cleanup grammar and wording
Add in syscalls.h for mipsel, thanks to Steven J. Hill. Remove and ignore generated syscall.h files from sparc and mipsel.
Scrub up a few little things.
Fix hstrerror
Several little additions and cleanups. Add getw() and putw(). Add in some missing header files (netipx/ipx.h include/lastlog.h include/sgtty.h include/sys/perm.h) -Erik
Update the working apps list. Not 100% completed, but getting close and I'd rather not lose this... This has taken a _lot_ of time... -Erik
Don't free memory prematurely
Fix some typos...
Add in a weak for __adjtime
Oops
Grr. I should learn to compile stuff before committing
procmail now works
I just wrote up gethostent(), sethostent(), and endhostent() -Erik
Add in a weak __mempcpy for mempcpy to make certain GNU programs happy. bother...
Do not expose the weak_alias() junk to the world. Wrap it inside an #if defined _LIBC -Erik
Oops. Fixup the defaults
Add in support for the Hitach H8/300H architecture, contributed by Yoshinori Sato <qzb04471(a)nifty.ne.jp>
Allow sparc code to at least compile
Oops.
Add a config file for sparc
Add include guards
Be consistant about the ways in which asm/unistd.h might be included to avoid gratuitous conflicts... This is a hack till we have proper _syscall macros for all archs. -Erik
A few more little cleanups
Adjust sparc port do it now actually works. -Erik
Fix path
Fixup arch substitution
Fix headers
Minor cleanups
Rework powerpc to be consistant with the other arches. -Erik
Fixup mips so it now works and provides basic functionality
Fix naming error in brk.c, enable faster malloc by default
Make powerpc default to faster malloc
Update changelog
Update text for release
use X/Open __sysv_signal name, then use the weak name for sysv_signal -Erik
OOps.
Fix __adjtimex symbol
Updates from Martin Sieper
Dont choke when chown fails. Try to be more portable...
HAVE_SA_RESTORER is supposed to be true, not false, on most arches. -Erik
Mark Robson noticed that our strcasecmp() behaviour was not standards compliant. Brian Stafford then provided these new implementations, which apprear to properly follow SUSv2. -Erik
Fix silly buffer overflow
Several test suite updates. The testatexit, teston_exit, and pthread tests were contributed by Stefan Soucek
A number of naming updates in preparation for adding in proper threading. Most of this is from Stefan Soucek, with additions and changes as needed from me.
Fix copyright message
Fix missing longjmp symbol
Disable a lingering bit of wide char junk
Geoffrey Espin noticed a $ that should have been a double $$ since Make make eats $'s.
Patch from Yoshinori Sato <qzb04471(a)nifty.ne.jp> to fix up ptrace for the Hitachi h8300
Several mips cleanups/additons from Geoffrey Espin.
Use sizeof(sa_mask) instaed of sizeof(sigset_t) since sa_mask is not always a sigset_t... Fix from Geoffrey Espin.
A ton of cleanups. Eliminate some useless code. Much better debugging code now. -Erik
Eliminate circular dependancy
A few more little fixups
Some more updates. Darn -- arm needs the mprotect hack
Fix defines so debugging works as expected
Whine and exit if people link against GNU libc or GNU libc linked shared libraries.
Support strong_alias and begin merging usage of weak_function
Make shared libs properly list the correct ld.so in the interp field by being sneaky.
Miles Bader writes: Programs that don't use stdio crash in the `exit' function, because they call through the pointer__uClibc_cleanup, which has a value of 0. It has a value of 0 because __uClibc_main.c initializes it to the address of `__stdio_close_all', which is a weak symbol (and so is 0 if stdio is not used). This patch from Miles fixes it, though we need to audit __stdio_close_all usage to be sure...
Doh!
Rename __stdio_close_all to __stdio_flush_buffers. Eliminate an unnecessary variable
Doh! Miles Bader noticed a couple of spots where I forgot to mark __stdio_flush_buffers with weak_function. Oops!
Add a test from Stefan Soucek for pthread_cond_timedwait(). On mmu-less ARM perhaps sigsetjmp() isn't working?
Merge in the pthread library. This is the linuxthreads library taken from glibc 2.1.3 and ported to work with uClibc by Stefan Soucek and Erik Andersen (me). Stefan has hacked things up such that linuxthreads runs on MMU-less systems (tested only on arm-nommu). Erik cleaned things up and made it work properly as a shared library. -Erik
Several needed cleanups to the gcc wrapper. -Erik
Enable thread support
This is a bit less messy
oops. I had accidentally typed in "clean" when I meant "clone". This fix makes pthreads actaully work on powerpc. -Erik
Fix from John Rigby to fix stat() so it actually works.
Miles Bader noticed that I'd messed up by always pulling errno in, regardless of whether it is being used... -Erik
Add ldexp to the !C99 list, since it is defined in POSIX as being part of the classic math lib stuff. -Erik
Lose the _GNU_SOURCE and just add __USE_GNU to the one file that needs it, since we definately do not want silent remapping of functions to their large-file counterparts. -Erik
When vfork is not available and we have an MMU, then use fork() -Erik
Oops. I forgot to commit this file...
Update string tests per glibc 2.2.5's string tester. Looks like our stpncpy is flunking... -Erik
Let the large file stuff be cancelable
Several mips fixes from Geoffrey Espin. With these, busybox with ash/vi/etc now works just fine with uClibc on mips.
This should be a little better...
Test for libcrypt (which is partly broken ATM)
Update todo list
Per discussion with Manuel, when we call __stdio_flush_buffers from abort() and from _exit(), we need to ensure that flushing will not cause us to block. So use fcntl to set the fd's to non-block mode...
Add a better error msg
Fix a corner case which I had botched. -Erik
Several naming cleanups so threads work properly again
IEEE Std 1003.1-2001 says that the "fclose() function shall fail [with] EINTR [when] the fclose() function was interrupted by a signal". But looking in the current uClibc stdio.c for some bizarre reason we had a special case where when errno was EINTR, we would keep on trying instead. Doh! Fix that, -Erik
Fix the compiler wrapper yet more...
Support isblank()
Both Miles and Manuel complained about this one. I was silently losing all -Wl calls...
Yet another iteration...
Joerg Schmitz-Linneweber recommends using tar -f - instead of -O to prevent interference with the TAPE env var
Try this version instead...
When messing with fd NONBLOCK status, put things back the way we found them afterwards. As was, this hosed things up for fds shared with a parent process. Very bad for shells... Oops. -Erik
I shouldn't try to program when sleepy, since I totally botched the fcntl interface... -Erik
Remove elimination of __BEGIN_DECLS/__END_DECLS
Adjust function naming and make sure everything is properly static to avoid symbol leakage. -Erik
Patch from Miles Bader: All the -M* options should suppress linking (right now, only `-M' does).
Enable pread/pwrite
Thomas Fritzsche noticed that __open_etc_hosts was only changing a local copy of the FILE pointer, thereby causing /etc/hosts lookups to fail with Resolver errors. This patch from Thomas fixes the problem.
Fix rpc + threads so it now compiles.
Proper support for setting h_errno
Patch from Miles Bader to restrict common truncate64/ftruncate64 syscalls to 64-bit systems, since we can't be sure that the _syscall macros can cope with 64 bit args on 32 bit arches.
Remove an erroneous -L-
Don't try to return stuff from void funcs
Odd. This seems to be in the wrong spot...
Give the label a ; so compilers have no excuse to whine
Fix redefinition problem
Fix redefine problem
Doh! Tests were not being compiled with warnings and optimization
don't pretend to be reentrant yet
Be consistant and use an unsigned char * throughout
Don't redefine stuff
Add an md5crypt test
A few more little cleanups
Lose the -nostdlib, which causes problems with older binutils, and add some fflush calls, since it seems streams are not flushed before an exec
Fix C++ support
Remove some debugging code
Patch from David Schleef to check for proper 16-byte aliged stack pointer on powerpc
Major rework of the include files to eliminate redundancy and to better support each arch. This is a really big patch... -Erik
Patch from M. R. Brown <mrbrown(a)0xd6.org> to fix pthread support for SH, and fix vfork
Fix for some comments, from Miles Bader
Patch from Miles Bader to allow Large File support on the v850.
oops. I forgot to commit this...
Patch from Steven J. Hill to allow both mips and mipsel to be built
Doh!
Doh! Doh! Doh!
Doh! A search and replace bug...
Move syscall.h generation to the top level Makefile -Erik
Remove generated stuff, restore sh/sys/procfs.h from M. R. Brown
Remove sys/io.h include, since not everyone has it
Seperate out the symbol resolution debugging, so it doesn't clutter things up when we don't care about symbol resolution problems. Make the lib loader always look first in the directory where the shared lib loader was found. -Erik
Avoid forced -lpthread lnkage when threading is enabled
Add in this missing header file
Don't install CVS files into the devel dir
Allow some failures to simplify building gcc
Fixup ldd behavior to match recent ldso change
Fix broken links
Add thread support. Eliminate the useless extra "s
Fixup redefinition of NL_ARGMAX
Fix thinko
Fix a segfault in scandir for empty directories. After looking over our version, I'm adopting the scandir from glibc (with minor changes) instead as it seems simpler and already correct.
Remove the chdir, so we can test things like empty directories
Merge in an ugly pile of rand* functions from glibc. :(
Build our own crti.o and crtn.o with a cross arch method that I can live with much better the what glibc does. -Erik
Remove an unused variable
Add some symbols needed for C++ to work. Temporary hack...
This should be the last piece needed to make constructors work (using a native gcc toolchain). The gcc wrapper still needs some touchups, but we seem to be _there_. Also some touchups to try and shrink uclinux binary sized by stubbing out unneeded stuff. -Erik
Add implementations of strtof() and strtold(). These are a bit lame, since internally I'm just using strtod, but that keeps things small, and has the side effect of making these easy to write. -Erik
Do not enable debugging for initfini.s and friends. Won't work anyways. -Erik
Don't call null ctors/dtors. -Erik
Setup so ctors/dtors can run. Disabled for now, since they do add a little bit to binary size... -Erik
Oops! When I fixed the debug flags, I forgot to make things be PIC, so do that now. -Erik
Update the config script to behave a bit better
Fix link to daily snapshot
Fix non-elf support (in theory). Revert misguided change suggested by arcturusnetworks, since Miles Bader reports it is unnecessary. -Erik
Hide libc specific junk inside a #ifdef _LIBC to avoid namespace pollution, noted by Miles. -Erik
Support gnu error(), patch contributed by Andrew Ip <aip(a)cwlinux.com>
Add missing updwtmp() and fix broken makefile
Fix location of crt0.o
Don't let this worry about _init and _fini
Add strptime, and commonize some locale strings -Erik
Oops. Forgot to check this one in
Build crti.o and crtn.o with optimization enabled -Erik
Remove the C++ support stubs, since these now live elsewhere and these stubs were preventing the real stuff from working properly. -Erik
Enable trace support by default, since it only costs 300 bytes anyways, and people seem to expect it. -Erik
Add initial support for compiling cpp code. -Erik
Let older arm cross compilers work -Erik
Cleanup header files a bit. -Erik
Resolve symlinks when determining the real ld.so path, which is now used as the default library search location. -Erik
Bart Visscher <magick(a)Linux-Fan.com> has added some missing IPV6 support, and added several additional reentrant networking functions such that iptables now runs with IPV6 support.
Merge glibc random, which gets us a much better RNG and a reentrant one as well. It is not much bigger than what we had, so... -Erik
Fix missing defines. Forgot to check this in. -Erik
Revert my symlink detecting change for now, since it breaks things. -Erik
Add new debug target (disabled by default) so that when debug is on we now default to resolving symbols permanently.. -Erik
Initial mips ldso porting effort from Steven J. Hill. Not yet complete, but off to a fine start.
Prevent uninitialized use
Attempt to follow symlinks if possible, and use that directory for the base library directory. -Erik
s/off_t/__off_t/g
Fix compile problem when ASSUME_DEVPTS=false getpt.c: In function 'getpt': getpt.c:83: 'have_no_dev_ptmx' undeclared ... oops. -Erik
Doh! search-n-replace bites again
Patch from Bart Visscher <magick(a)Linux-Fan.com> fixing some missing pieces of the conversion to reentrant functions.
Update Changelog in preparation for a release. -Erik
Compile in flockfile and friends by default -Erik
Support getttyent and friends so ncurses will compile
Bump up version number
Update TODO list for next release
Alphabetize
Fix anon password
Update webpage
Update the FAQ a little bit
Be kind to robots
Add the ttyent.h header file
Always build the utils. Always clean libc/misc, since there is some auto generated stuff in there -Erik
Put the chdir back, to simplify testing now that scandir doesn't segfault anymore
Add some phony targets
Update webpage a little bit for clarity
Fix grammar
Remove include file, in case it is broken. We don't need it here. -Erik
Fix incorrect ordering of -L and -l options, which prevented things like iproute2 and XFree86 from linking. -Erik
Patch from Miles Bader to be less militant when doing a make clean.
Add in a knob to disable %m support -Erik
It doesn't make sense to supress linking for -i or -r, -Erik
Include our own copy of struct sysinfo to avoid binary compatibility problems with Linux 2.4, which changed things. And thereby reduce by one more the kernel headers we depend on... -Erik
Patch from Steven J. Hill to fix pthreads on mips
Patch from Steven J. Hill to disable __fsetlocking when threads are disabled. Bug is my fault. oops. -Erik
Mips config fixes from Steven J. Hill
Implement sqrtf(), needed for libstdc++ on arm -Erik
More mips support from sjhill
Add in support for ftruncate64 on both ARM and x86 -Erik
Add support for getrlimit64 and setrlimit64. Fix some problems with the getrlimit and setrlimit syscalls. -Erik
Rework __gen_tempname() to better match glibc, and add mkstemp64(), which is needed for busybox ash when using largefile support. -Erik
Add glob64.c, and add support for glob64 when large file is enabled. -Erik
Patch from Miles Bader to fix the spots I'd messed up.
Patches from Yoshinori Sato <qzb04471(a)nifty.ne.jp> to fix h8300 support for pthreads and update for the latest and greatest.
Remove function declartions from include/features.h, create a separate header file for those, and fixup references. -Erik
Last bit for old config system
Doh! This is _still_ wrong. Fix potential buffer overflow. -Erik
Steven J. Hill's latest mips dynamic loader updates
m4(a)brecis.COM noticed a typing problem with the getuid syscall. OOps.
Steven's patch contained a spare SEND_NUMBER_STDERR call that was spamming us. Kill that. My bad for not spotting that when merging. -Erik
Remove unused variable -Erik
Remove gratuitous symlink trashing
Run dos2unix on these files
run dos2unix on these files
Adjust beinning
Doh! I forgot to commit this...
Be certain that
Add the xopen swab() function, contributed by Kensuke Otake <kensuke(a)phreaker.net>
Since pthreads work on powerpc, at least mention the option.
Richard June <rjune(a)bravegnuworld.com> noticed that setutent was only opening utmp readonly. Oops.
Patch from Jim Treadway <jim(a)stardot-tech.com> to eliminate use of alarm() and therefore SIGARLM in the resolver and to instead use select, which is much cleaner.
Richard June <rjune(a)bravegnuworld.com> noticed that pututline was only writing the first sizeof-a-pointer bytes to the utmp file. oops. -Erik
A ton of updates from Dwayne Fontenot <fontenot(a)jacques.activebuddy.com>. Thanks Dwayne!
Revert this file back to where it was so m68k can compile again. Oops. I'd hosed things up for m68k with the header file rework. -Erik
Teach initfini to build properly on arches where gcc tries to be sneaky behind our back... -Erik
Add a fun pointer to make apps happy
Patch from Axel Barnitzke <barney(a)xkontor.com> to fixup a problem with getpass() echoing passwords...
Faster implementation from Miles Bader
Add libungif-4.1.0b1
undefine __USE_FILE_OFFSET64, since we absolutely do _NOT_ want interfaces silently renamed under us or very bad things will happen. In this case, statfs64() ended up recurively calling statfs64() instead of statfs().... -Erik
Avoid defining __USE_FILE_OFFSET64, since we do _NOT_ want interfaces silently renamed under us or very bad things may happen... -Erik
Support ISblank properly
Per discussion on the mailing list, fix getpass properly. -Erik
Create a much more careful ftruncate64 implementation, that should address all the concern Miles had with the earlier versions... -Erik
Remove from syscalls.c, leave just ftruncate64.c and truncate64.c which have implementations that works... -Erik
Add truncate64.c
Re-enable clnt_perror. Patch from Miles Bader.
Add creat64 -Erik
Fixup __USE_FILE_OFFSET64
Add finite() to C89 math lib, since it is needed... -Erik
Bump up version number...
Russ Dill noticed that the symlinks for libpthread didn't match the other links. Fixed now. -Erik
Some minor updates per discussion with Miles Bader -Erik
Fix libpthread compile for sparc
Mention pthreads for sparc
Teach powerpc to whine loudly about using -fPIC when a R_PPC_REL24 is encountered... -Erik
Update Changelog
John Traill <john.traill(a)motorola.com> noticed that on powerpc a dev_t is _not_ a quad type, but a simple int. Doh! We fixed that months ago, but subsequently lost the fix, so this restores things.
SEND_NUMBER_STDERR is supposed to be calling _dl_simple_ltoa(), not _dl_simple_ltoahex(). Numbers are not supposed to be in hex. -Erik
Add a list of known bugs. Update the docs in preparation for a release. -Erik
A last minute addition
Minor doc update
Update TODO list
Patch from Jim Treadway <jim(a)stardot-tech.com>: The internal __getgrent function doesn't allocate enough memory to hold the trailing NULL pointer in the gr_mem member of the returned 'struct group *'.
Fixed stpncpy() implementation from Manuel
Manuel and I were looking into a problem with applications failing to link (undefined reference to `main') when the .o file containing main was contained in an static library(a '.a' ar archive). It turns out that due to its single pass nature, GNU ld was failing to pull it into the build. This sticks a dummy reference to main() into crt0.o, so that when an application is linked with the main() function in a static library, we can be sure that main() actually gets linked in. -Erik
Fix dummy main reference so it works...
Remove strong aliases to symbols that we don't define in uClibc
Stub out pread and pwrite when not available
Patch from Martin Proulx to remove weak_aliases for non ELF compilers in __uClibc_main for the _stdio_init and _stdio_term functions. Since weak_aliases are defined as hard aliases for non ELF compilers, these 2 symbols ended up to be multiply defined, as those two are defined in stdio.c.
Patch from Martin Proulx to not do ELFish things when not ELF.
Patch from Mike McDonald to make gethostbyname_r() not fail for things like gethostbyname("192.168.0.1"), which should work even when the /etc/hosts and /etc/config/hosts files do not exist.
Patch from Axel Barnitzke <barney(a)xkontor.com> to add basic support for struct _res. This is a minimalist implementation, but should work for most anything out there.
Patch from Axel Barnitzke <barney(a)xkontor.com> to fix handling of the isinf() macro, which was a casulty of my grafting the glibc header onto out math library.
Minor updates.
Add support for mmap64 -Erik
Don't use $(PWD), use $(shell pwd) instead
Bah. Fix (non)password issue.
Rework libcrypt based on the openbsd crypt implementation so that it passes the DES validation suite. setkey_r, encrypt_r, and __des_crypt_r are not really reentrant now, and that should be fixed (or we should drop crypt_r and friends which are not supported by SuSv3). -Erik
Stupid libgcc.a from gcc 2.95.x uses __write in pure.o which is a blatent GNU libc-ism... Cope. -Erik
Make ldd and readelf work even with byte swapped binaries
Patch from Steven J. Hill <sjhill(a)realitydiluted.com>:
Patch from Tobias Anderberg <tobias.anderberg(a)axis.com> to remove the .asm calls
Add missing sysctl.h and queue.h
Ensure that make clean really cleans up after itself
Speed things up by eliminating lots of needless exec calls -Erik
No real need to make ldd.target and readelf.target be static...
When it is going to fail silently anyways, whine loudly and abort early with instructions on what to do... -Erik
Fixup build a bit more
Fix funky use of brackets
Add missing braces
Rework the math library tests per the glibc math test code, with many unsupported tests disabled for the moment. -Erik
Fill a few little holes in the math library
Another mips patch from Steven J. Hill:
First pass attempt at an alpha port
Implement readdir_r. Audit for proper thread safety and locking. -Erik
Begin the process of reworking the time functions for proper time zone and locale support (in theory). More work is still needed. -Erik
Oops. Stupid typo.
Majorly rework to also cope with architectures which do not use the socketcall system call, but instead implement each fundamental networking function directly as a system call. -Erik
Fixup for architectures that do not supply the ipc system call, but implement the ipc functions as separate system calls. -Erik
Fix the defines which I had backwards
Add a default syscalls.h that will just error out. Add in syscalls.h for alpha.
Add a config file for alpha
Fix this one up so it works
Small cleanups for alpha
Fix some silly bugs and type problems
Several bugfixes for problems that showed up on alpha -Erik
Fixes for 64 bit arches
Use the default version in include/sys instead
Add a missing #include
Cleanup slightly
Several h8300 updates from Yoshinori Sato <qzb04471(a)nifty.ne.jp>
Send the -s to the linker
Pass the -s to the linker
Fix ldd so it correctly handles search paths of just one entry (per fix in ldso a while back), and correctly matches the search order in the shared lib loader. -Erik
Fix libcrypt, thanks to Vadim Berkgaut <berk(a)rc.ru>
Fix a couple of silly bugs I'd left in while fixing things -Erik
Patch from Tobias Anderberg <tobias.anderberg(a)axis.com> to abstract out page alignment issues. As we we were assuming 4k pages, which need not be the case...
Fixup and unifiy version numbering. Automate versioning updates. Propagate fixes across makefiles. -Erik
Patch from Yoshinori Sato <qzb04471(a)nifty.ne.jp> to use C_SYMBOL_PREFIX for confused compilers, such as for v850 and h8300, per suggestion from Miles Bader.
Update content a bit
Now that was silly
Silly me. ldd.target is for the target system, so don't use-build-dir when compiling... -Erik
Cope with systems that don't glob all these together, but use separate syscalls. -Erik
Make syscalls.c way more generic. Now works on alpha... -Erik
Needed for the alpha port -Erik
Fixup some silly bugs I added earlier -Erik
Make these properly cope with 64bit systems -Erik
Cool. An even better way to get the gcc include dir which eliminates several external program calls, thanks to a suggestion from rmk. -Erik
Put GCCINCDIR here, which is the only place it is needed. -Erik
don't include the linux dir. Pointless and broken. -Erik
And with this, the alpha port is not basically working. -Erik
Doh! A silly typo broke select... -Erik
Fix dependancy for util target -Erik
Fix dependancy. again.
Fixup totally broken locking code... No storage for the mutex, wrong ifdef macro.. -Erik
-#ifdef _POSIX_THREADS +#ifdef __UCLIBC_HAS_THREADS__
Rework setenv, getenv and friends per the latest glibc code, but cleaned up for readability. Merge in putenv. Add clearenv as a side effect. -Erik
Patch from Robert Griebl <griebl(a)gmx.de> to support getusershell() and friends.
Doh!
Oops. Forgot to check this in. Thanks Martin Volf for noticing -Erik
Kill the libc-lock headers, which we do not use and which are not correct for uClibc. Fix setenv locking to behave itself. -Erik
A patch from Ted Phelps to fix popen(). Ted writes: There is a minor bug in the implementation of popen(). In the case where the file descriptor returned from its call to pipe() is the same as the file descriptor that it is meant to be (where the dup2() branch is not taken), the end of the pipe is still closed by close(reading) even though it shouldn't be. Thanks Ted!
This patch from Rik Faith <faith(a)alephnull.com> fixes a potentially non-NULL terminated string problem that could result from the use of open_memstream(). Manuel may have a better solution, but this one works for me, since with this plus the popen fix I can now run things like gdb properly. Thanks Rik!
Yipe. As Joseph Chiu noticed, sockvec is supposed to be an int* not an int.
Write a new strxfrm that doesn't make function calls. Uses the same logic as before but unrolls the func calls and thereby eliminates some steps and some bytes. Now adds just 40 bytes to .text. -Erik
Cleanup the mess, remove now obsolete files -Erik
Silence warnings, clean things up. -Erik
Don't use fixed buffers if we have an mmu such that malloc and realloc are cheap. -Erik
Begin efforts at reentrance by seperating out the stuff that isn't reentrant and labeling it, and making everything else const. -Erik
Fix pthreads to use the rt signals if present -Erik
Fix a silly bug...
Prevent buffer overflow
Implement ttyname_r -Erik
time() is implemented in syscalls.c -Erik
Add support for sigtimedwait and sigwaitinfo -Erik
Ah kant spel mi name
Some cleanups so utmp/wtmp behaves. Fix potential use of uninitialized memory. Prepare to reentrantify the utmp stuff. -Erik
Shuffle the logic around a bit
Shuffle the logic around a bit -Erik
Implement strerror_r. This is per SuSv3, not glibc which does something different. -Erik
Re-backport all the rpc stuff from glibc 2.2.5. This allows us to make this junk (and I do mean that ;-) thread safe without undue pain. Adds 12k worth to the code size I'm afraid, but since I never use NFS and therefore never include this stuff, I guess thats acceptable. I still need to enable the multi-threaded bits... -Erik
Make things more re-entrany, kill some cruft. -Erik
kill cruft
Update rpc headers. Add missing some headers -Erik
Patch from Martin Proulx <mproulx(a)okiok.com> to support the i960 architecture.
Some commentary -Erik
Fix locking. Kill
Fix thread locking so it works -Erik
Rework and kill pointless static variable -Erik
Silly name change
Rework, reduce the size, add proper locking -Erik
Kill kernel_version.c, which is completely meaningless crap and didn't even work. -Erik
update as far as i've double checked things thus far -Erik
Eliminate all the pointless globals from getcwd(). Default to using the getcwd syscall instead, when it is present. -Erik
Make sure the sccsid tags never get compiled in. -Erik
Cleanup the getcwd implementation (again) since I broke it last night. Restore malloc-ing when buf=NULL for the syscall version... Move getcwd to libc/sysdeps/linux/common and out of syscalls.c so there is just one getcwd.o object present. -Erik
A simple test for getcwd -Erik
Oops. Looks like I broke ttyname. Fix it. -Erik
Fix incorrect comment re malloc-930716 -Erik
Fix DNS resolution so that it once again works. I'd broken it when adding some locking code. -Erik
Several test case cleanups -Erik
Fix a bug reported by Michael Weiser <michael(a)weiser.saale-net.de> which could cause incorrect invocations of g++. Cleanup a few things. Add a new --uclibc-ctors flag allowing one to apply ctor/dtor support to regular C code. -Erik
Some Rules cleanups, better gcc-3.1 support. -Erik
Cleanup the function pointer comparisions -Erik
Add support for doing the mmu-less thing -Erik
Update the webpage for release -Erik
Commit the full changelog since the last release -Erik
Some release notes -Erik
Update the README a bit -Erik
Kill this file. Don't need it. -Erik
Update my TODO stuff
Last Changelog update
Remove noise
Fix spelling
Fix support for 2.0.x linux kernels. Oops. -Erik
Fix silly spelling error
Fix spelling
Rework compiler optimization code to be smarter -Erik
Don't try to compile the target utils unless told to do so. -Erik
Fixup target util handling -Erik
Per "Marshall M. Midden" <m4(a)brecis.com>, remove double define of _PATH_LOCALE.
Several cleanups/fixes from Marshall M. Midden <m4(a)brecis.com>
This patch, from Ronald Wahl <rwa(a)peppercon.com>, fixes the spots where I screwed up and forgot to fix realloc to use free_unlocked() instead of free(). Thanks Ronald!
Patch from Ronald Wahl <rwa(a)peppercon.com> -- kill references to the obsolete PTHREAD_MUTEX_FAST_NP, and change the default mutex type to adaptive
Change the default structure of the installed toolchain -Erik
fix this header so it behaves itself -Erik
Fixup where locals shadowed globals -Erik
Resync the install defines -Erik
Add a bunch of extra pedantic annoyingly strict checks -Erik
Disable ldconfig.target for now -Erik
openlog could deadlock when called from vsyslog, so allow recursive locking, -Erik
Oops. missed a spot -Erik
Fix clone so it compiles -Erik
Make clone work, part 2. -Erik
Add a weak to make apache happy -Erik
Only enable elf2flt support when using elf toolchains -Erik
Stupid filesystems like cramfs fail to guarantee that st_ino and st_dev uniquely identify a file, contrary to SuSv3, so we cannot be quite so precise as to require an exact match. Settle for something less... Grumble... -Erik
Patch from Larry Doolittle <ldoolitt(a)recycle.lbl.gov> to cleanup connect_dns() and simplify IPV6 support by reducing the number of ifdefs sprinkled about.
Kill namespace pollution in getrpcent.c. Silence other rpc warnings by fixing prototypes. Fix global stuff so it should behave itself properly now, -Erik
Cleanup namespace leaks by prepending __ to global stuff to indicate it is (alledgedly) private. -Erik
Fix namespace pollution by hiding statfix and statfix64 by prepending an __ to the name. Not perfect but better. -Erik
Doh! search-n-replace strikes again -Erik
Finer grained locking in __connect_dns() so we don't hold the lock while sending packets out onto the wire. -Erik
Fix a typo
Patch from Ronald Wahl <rwa(a)peppercon.com> to fix a memory leak
Add missing stropts.h
Per bug report from Ronald Wahl <rwa(a)peppercon.com>: ...inet_pton breaks since tolower is implemented as a macro and its argument is evaluated more than once:
Tobias Anderberg <tobias.anderberg(a)axis.com> noticed that we were opening the socket() as SOCK_STREAM instead of using SOCK_DGRAM like we should have done.
The mips config files were broken, and failed to define NM for some reason...
Note updated toolchains are available -Erik
Kill this stale file
Add missing pthread_condattr_getpshared and pthread_condattr_setpshared -Erik
Add both pthread_mutexattr_setpshared() and pthread_mutexattr_getpshared(), which were missing -Erik
Rework pread and pwrite support so it should actually work. Add support for pread64 and pwrite64. Fixup llseek a bit. -Erik
Silence a couple of silly warnings -Erik
Patch for a silly bug from David Blythe
stupid cut-n-paste bug -Erik
Do not assume NULL termination on the ut_id field. Thanks to mac12(a)po.cwru.edu for spotting this one.
Odd. Got a copy of junk in here.
Disable debug stuff by default
__morecore need not be a function pointer
We don't need the debug versions
Fix from "Gerhard Uttenthaler" <uttenthaler(a)ems-wuensche.com> so that cfsetspeed would actually be compiled in.
Miles Bader implemented a new mmap based malloc which is much smarter than the old "malloc-simple", and actually works, unlike the old "malloc". So kill the old "malloc-simple" and the old "malloc" and replace them with Miles' new malloc implementation. Update Config files to match. Thanks Miles!
Fix spelling
Rework syscall handling. Rewrite syscall handlers for x86 and ARM. Prepare to kill the UNIFIED_SYSCALL option and instead have it be a per arch thing that is either enabled or not for that arch. -Erik
Add some syscalls which I moved out of syscalls.c -Erik
Add support for people calling syscall() -Erik
Take advantage of the new syscall stuff on x86 and arm to kill the ldso specific syscalls and use the generic ones instead. -Erik
Implement syscall() for arm -Erik
Kill cruft. Build ldd for the host system by default. -Erik
Cleanup from Neal Crook fixing some formatting and eliminating some "sh: cd: ./lib: No such file or directory" errors.
The __set_errno macro _must_ match that defined in include/bits/errno.h. We can't tack in the return -1 since then when people include errno.h, the return -1 mysteriously vanishes... Setting the __set_errno back and restoring the 'return -1;' calls to each _syscall[0-n] macro makes mips syscalls work again. -Erik
Kill ill advised find command that was not doing anything productive, but did annoying things instead. -Erik
Ok, I get it. sjhill kept adding the 'find' command since include/sgidefs.h wasn't getting scrubbed. Fix it so this symlink gets properly scrubbed, even for mipsel. -Erik
Oops. I accidentally omitted the actual mknod() function. -Erik
Avoid errors in case some loon has explicitly included linux/kernel.h (even though doing so is very dumb). -Erik
Always build utils by default -Erik
You fool foolish. Goodbye level 2.
Patch from Alexander Pevzner <pzz(a)pzz.msk.ru> to fixup things when invoked as the C++ compiler to to automagically add include/g++ into the include search path, and automagically add -lstdc++ and -lm into the set of automatically linked libraries.
Patch from Martin Proulx <mproulx(a)okiok.com> to fix i960 create_module() support.
More i960 support
Per discussion on the mailing list, simply vfork -> fork mapping to only apply iff we do not have vfork available, which is simpler and more reasonable. -Erik
Sigh. A bit more cleanup.
Joseph Chiu <josephc(a)idealab.com> found an off-by-one bug. oops!
When DODEBUG and HAS_WCHAR were enabled and HAS_LOCALE was disabled, wchar.c wouldn't compile: wchar.c: In function `__mbsnrtowcs': wchar.c:631: `__ctype_encoding_7_bit' undeclared (first use in this function) This fixes it by keeping the locale specific asserts hidden when not relevant. -Erik
remove BUILDTIME since it is not used
Just in case, crash if somehow `exit' returns anyways -Erik
Unify calloc (its the same thing regardless of the underlying malloc implementation). Fix problem reported to bugtraq about problems with integer overflow that can occur during the computation of the memory region size by calloc (and similar functions) which could result in a subsequent buffer overflow. -Erik
Rework RPC code once again. By default, only enable the stuff needed for NFS mounts, rsh, and similar. -Erik
Fixup the last missing pieces of thread locking -Erik
Several pthreads updates. Enable linuxthreads_db. Several fixes related to thread local storage. -Erik
When symbols are missing, its supposed to be an error... -Erik
Per suggestion from Miles Bader, move calloc.c to libc/stdlib. Also, Manuel notices that I forgot to check for when nmemb=0, which would result in a segfault, so fix that case as well. -Erik
Message catalog support for internationalization is not currently provided by uClibc, and here I have added macros to disable it. -Erik
Apply integer overflow security fix for "CERT Advisory CA-2002-25 Integer Overflow In XDR Library" http://www.cert.org/advisories/CA-2002-25.html Patch from Solar Designer <solar(a)openwall.com>.
Updates to the working apps list from Kagan Kongar. Thanks!
getopt tests
missed a file
rework getopt. no read need to split this one up since the parts are so tightly coupled.
Rewrite getenv
Changed my mind. Keep this separate. -Erik
Remove some noise
Cleanup crypt and remove the crypt_r stuff, since SuSv3 (IEEE Std 1003.1-2001) states that crypt need not be reentrant. -Erik
Add getrpcent.c to default rpc build
Cleanup to avoid some undefined behavior -Erik
Avoid bad things happening on macro expansion... -Erik
Cleanup some silly warnings
Add missing include file
Cleanup warnings and fix prototypes -Erik
Fix locking
Fix locking -Erik
Make some strings const -Erik
Update status of reentrance support
Update default config files
Disable unused unifed stuff -Erik
Remove unified syscall support (it should just be a per-arch decision, with syscalls.h adjusted to match). Add symlinks to make tools like mklibs.py be happy. -Erik
Fix a silly bug with using fstat64 instead of just fstat. No reason for 64bit stuff just to check perms. -Erik
I missed a file
Make pump happy. Add in this header. -Erik
Patch from Stefan Allius and Edie C. Dost to let ldd and readelf compile under solaris.
Patch from Stefan Allius and Edie C. Dost to add SuperH shared library support. This also adds some cleaner error handling, which I (Erik) then ported over to x86 and arm. In addition Stefan added the following fixes:
Fix license. I meant to say LGPL... -Erik
I reworked syscalls.h to match how I'm doing other arches. Stefan Allius and Edie C. Dost has some concerns about the perl script used to general crti.o and crtn.o and added their own versions. These versions will win since they are built last,
Missed a spot -Erik
Patch from Stefan Allius and Edie C. Dost: In linuxthreads/errno.h the functions __errno_location and __h_errno_location wasn't safe against calling before the library is initialized.
Add a simple test for shared lib ctor/dtors -Erik
Shuffle things around a bit. Looks a little cleaner. -Erik
Move destructor attribute tag
Bump version to 0.9.13
Update the FAQ
Make powerpc compile once again -Erik
Oops. missed a spot. -Erik
For some perverse reason we were not registering destructors for dlopen'd libraries. This fixes that. -Erik
Fix a stupid typo messing up powerpc support -Erik
Disable this code for mips, which does things quite differently... -Erik
Patch from Stefan Allius to remove obsolete printfs
Cleanup error returns to avoid warnings -Erik
Patch from Stefan Allius, avoid compiler warnings (unused variable)
Doh! I broke it. oops. Patch from Stefan Allius to fix it.
Be more path independent
Link ldso vs libgcc.a and eliminate baggage caused by not previously linking vs libgcc -Erik
New and improved fork for mips, thanks to the fine folks at Brecis Communications.
Initial piece of unified syscall support from Brecis Communications
Add in __uClibc_syscall
Ok, bad idea. didn't work. -Erik
Update todo list a bit
Update Changelog for release -Erik
Update webpage for release
update todo again
Add missing thread-safe locking. -Erik
Move old stuff into old-news
spacing
Fix spacing
Ugh. Make uClibc cross compile with gcc 2.95.x and threads. I wonder if this is serious enough to warrent 0.9.14? -Erik
Geez I'm an idiot some times. I shouldn't code when I'm exhausted. I _totally_ screwed up the locking on exit and atexit such that it didn't do any good at all. -Erik
Fix alignment, minor cosmetic changes -Erik
Fix use of __pthread_once, and fix rpc usage of thread local storage.... -Erik
Test threads when appropriate
Fix the gcc wrapper to include crtbeginS.o and crtendS.o when we are compiling PIC code, and use crtbegin.o and crtend.o when compiling non-pic code. As was caused problems, esp on powerpc... -Erik
Doh! missed a spot. -Erik
I missed a spot. -Erik
Only try to install existing binaries -Erik
Update to version 0.9.14 -Erik
Add missing include/thread_db.h file, as reported by Simon Posnjak -Erik
Move all malloc tests under test/malloc/
Do not prevent people from making mmu-less builds on mmu-full systems. -Erik
Patch from Jarkko to fix drand48 to not use long long when long long support is disabled in the uClibc Config.
Remove h8300 special case
Replace all instances of _LIBC_REENTRANT with __UCLIBC_HAS_THREADS__ -Erik
Demonstrate that dlopen() RTLD_NOW is currently broken. -Erik
Cleanup exit a bit, from Ronald Wahl
Yet more rework to make __getgrent and the functions that use it reentrant... -Erik
Directly use kernel types for uid_t, gid_t, and dev_t to avoid the need to translate these entities... -Erik
Be prepared to call __pthread_initialize_minimal
Open a lib that is not so closely coupled with gdb
Based on work by Stefan Allius, arrange for early initialization of pthread stuff. Also, don't bother building libthread_db unless we are debugging. -Erik
Work from Stefan Allius which allows superH to use the common method for building crti.o and crtn.o
Call the pthread setup junk early if possible.
Add a .note section to make gdb happy
some updates from Stefan Allius to make up the SuperH shared lib loader build properly. Mostly just sprinkling casts, and making static some things that should be static.
missed const-ifying this one.
SuperH config update
Fixup struct _res handling so apps using struct _res can actually compile ("worst standard ever!") -Erik
Eliminate wrapping of struct stat and use the kernel version directly. Eliminate all the attendant baggage. Fix internal types to match kernel types more closely. -Erik
Only build libthread_db when both threads and debug are enabled -Erik
Stupid cut-n-paste error
Remove some noise
mode_t was being promoted to an int by gcc's __builtin_va_arg, causing bad things to happen. This makes it explicit, so pthread using apps are no longer broken... -Erik
Revert mode_t change. Sigh. As Manuel so eloquently put it: "this is the way we hose our code... hose our code... hose our code... this is the way we hose our code... all thanks to glibc" -Erik
Hide .hidden stuff unless explicitly enabled -Erik
Support _syscall6 and _syscall7 for arm -Erik
Rework errno handling to be kernel header free -Erik
Rework struct stat/stat64 handling to eliminate kernel headers -Erik
Ignore generated binaries
Split out the arch dependant errno_values.h junk into arch dependant files. -Erik
Fix broken link
Split out the definition of struct stat into the new arch specific bits/kernel_stat.h file. -Erik
Break dependancy of bits/types.h on the asm/posix_types.h kernel header, which is not directly usable for many architectures. -Erik
Break dependancy of bits/types.h on the asm/posix_types.h kernel header, which is not directly usable for many architectures. -Erik
Ignore generated stuff
Use bits/kernel_stat.h, not asm/stat.h -Erik
Avoid `ECANCELED' redefined on mips -Erik
Simple shared memory test
ignore generated stuff
Make shm stuff work properly. -Erik
Finish off the bits/kernel_stat.h cleanup for proper __USE_FILE_OFFSET64 handling. -Erik
Use the kernel version of struct msqid_ds directly, since we don't do any of that silly translating... -Erik
Kill the HAS_LONG_LONG option. It really did not make a lot of sense to exclude it, gcc always supports long long, and we never fully excluded long long anyways (off64_t for example). -Erik
Update version to 0.9.15 in preparation for making a release -Erik
Make bits/kernel_types.h include guard names match the include guard names used by the kernel's asm/posix_types.h to eliminate gratuitous conflicts and let our file win over the very-likely- to-be-broken kernel header file. -Erik
Oops. I got the include guard wrong. Fix it per current value in include/asm-v850/posix_types.h on cvs.uclinux.org -Erik
Implement missing readdir64_r.c -Erik
No need to hide this stuff when _DIRENT_HAVE_D_TYPE is not defined... Nothing too sacred in there and it can be used for other things... -Erik
Move the _DIRENT_HAVE_D_TYPE test to avoid breaking fileutils -Erik
Make sure that bits/syscalls.h always includes bits/syscall.h -Erik
Semonstrate a problem where weak symbols referenced in shared libs are not being overridden when those same symbols _are_ overridden by other shared libs in the main app. Ick. -Erik
Update changelog for release
update for release
Final update
fix grammar
Fix broken getpriority syscall, per email from Marshall M. Midden -Erik
Fix a silly bug notices by Ronald Wahl <rwa(a)peppercon.com>
Oops. Turns out I broke statvfs() and fstatvfs() back in February, when I accidentally changed them unconditionally into the 64 bit versions... Oops. -Erik
Support fstatvfs64 and statvfs64 -Erik
Make sjhill happy, and revive memalign -Erik
split-out memalign and realloc -Erik
Add in some weak aliases to allow C99 apps to compile w/o defining _ISOC99_SOURCE, per what glibc does. -Erik
Fixup multi-line string -Erik
As noted by Bill Huang <billhuang(a)redsonic.com>, the gid and uid were reversed in putpwent(). Oops. -Erik
Patch from Tiago Marques <tmarques(a)viaconnect.inf.br> -- fall back to using SOCK_STREAM if SOCK_DGRAM fails. -Erik
Fix some locking problems noted by Manuel. __getgrent() was always called under lock, but the callers did not share the same locks... -Erik
Don't run floating point opcodes when code is compiled -msoft-float -Erik
Add missing _dl_dprintf arguments, as noticed by Tero Lyytik�inen <tero(a)paravant.fi>
Some minor C++ support updates
Fix a thinko -- I used the wrong symbol to check for LFS support. -Erik
Fix stupid typo noticed by John Mullin <john.mullin(a)homenetcomm.com>
Use __UCLIBC_HAVE_LFS__ not __USE_LARGEFILE64 to decide if 64 bit interfaces should be used. -Erik
Update index
Add url
A bug fix from Alexey V. Neyman:
A few additions
Replace _LIBC_REENTRANT with __UCLIBC_HAS_THREADS__ -Erik
Sigh. OpenBSD used /usr/bin/{true|false}
This commit contains a patch from Stefan Allius <allius(a)atecom.com> to change how uClibc handles _init and _fini, allowing shared lib constructors and destructors to initialize things in the correct sequence. Stefan ported the SH architecture. I then ported x86, arm, and mips. x86 and arm are working fine, but I don't think I quite got things correct for mips.
Patch from Stefan Allius <allius(a)atecom.com>: ----------------------------------- In extra/Configs/Config.sh I added the INCLUDE_PTHREADS statement and change the default values for BUILD_UCLIBC_LDSO and HAVE_SHARED. ----------------------------------- In extra/scripts/initfini.pl My last patch removes two labels, which migth be used by the .size statements. (Sorry, but I'm a perl beginner) I fixed it. ----------------------------------- In libc/sysdeps/linux/common/initfini.c I fixed two warnings "nested extern declaration of `i_am_not_a_leaf.. ----------------------------------- In libc/sysdeps/linux/sh/__init_brl.c brk.c sbrk.c I fixed some compiler warnings which comes from a wrong inclusion order. -----------------------------------
Patch from Stefan Allius <allius(a)atecom.com>: 'wcschrnul.o' appeares two times in MOBJW2
Patch from Marshall M. Midden <m4(a)brecis.com> to fixup crt0 for mips where I had made a mess
Support O_STREAMING
Octal to hex
It turns out that __thread is now a gcc keyword. We used __thread in a few spots in our header files. In this change I do a s/__thread/__thread_id/ so we no longer conflict with newer CVS versions of gcc (such as the patched up gcc 3.2 included with RedHat 3.0). -Erik
Patch from Christian MICHON <christian_michon(a)yahoo.fr> to reimplement my little initfini.pl script in awk. This eliminates uClibc's compile-time dependancy on perl, and lets us use the much lighter weight awk, which facilitates building uClibc standalone environments.
Kill the now redundant initfini.pl -Erik
Kill a warning. Patch from Joel Coltoff <joel(a)wmi.com>
Remove -fuclibc-ctors
Fix malloc so it compiles and works when using pthreads -Erik
Add a test from Alex King <alex(a)morrison.king.net.nz> which shows a failure in ptsname when ASSUME_DEVPTS=false -Erik
Add in an initial list of the differences between glibc and uClibc. This is not complete, but covers some of the main points. -Erik
Echo mmu-less warning where appropriate
This patch, based on a patch from Stefan Allius, lets us pick an appropriate awk implementation at compile time, so we can again compile on Solaris and whatnot. -Erik
Update freeswan entry, per success report from Arne Bernin
When UNIX98PTY_ONLY was false, but Unix 98 ptys were in fact working and functional, everything would succeed but then we would return a failure due to a silly logic bug. This patch fixes it so things will work correctly regardless of the UNIX98PTY_ONLY setting. -Erik
A patch from Arne Jonsson <arne.jonsson(a)i3micro.com> to allow uClibc's libpthread to run on linux 2.0.x kernels which lack poll() and therefore must use select() instead.
Actually install libdl.a -Erik
Be nicer to gcc -- add a link for crt1.o
Overwriting the crt1.o link is fine
Doh. Add a missing #include to interp.c. I wonder why it used to work? Perhaps the wrapper bug miles fixed? Regardless this is very much needed. -Erik
Sigh. Lets not use LD to link, or we lose the INTERP field. -Erik
Put it back the way it was. Sigh.
Fixup depends
Add in a horrible hack that seems necessary for the Hitachi SH processors to work properly. -Erik
A patch from Arne Jonsson <arne.jonsson(a)i3micro.com>:
Remove my horrible SH hack infavor of this fix for initfini.awk from Stefan Allius <allius(a)atecom.com>, which does a better job.
For now, comment out the broken part
Fix a silly typo for Manuel -Erik
Use a nifty macro to make testing gcc features simpler and easier to read. -Erik
Use '#ifdef __linux__' not '#ifdef linux'
Fixup script to avoid potential spurious whining over empty object files. -Erik
Add a simple realloc test -Erik
Ignore generated stuff
Ok, this commit is _huge_ and its gonna change the world. I've been working on a new config system on and off for about 6 months now, but I've never been fully satisfied. Well, I'm finally am happy with the new config system, so here it is. This completely removes the old uClibc configuration system, and replaces it with an entirely new system based on LinuxKernelConf, from http://www.xs4all.nl/~zippel/lc/ As it turns out, Linus has just merged LinuxKernelConf into Linux 2.5.45, so it looks like I made the right choice.
Don't force gcc 3.2 on the world -Erik
Allow 'make clean' on the test stuff to work with the new config system. -Erik
Fix a lingering reference to Config -Erik
Skip the dependancy on .config for now
Oops. Kill generated binaries.
Make it so arch specific stuff can be simpler. Initial attempt at making CPU_CFLAGS, which should allow things to be optimized per-CPU and/or per-system. -Erik
Don't assume i386
Fix udhcp link
It looks like I lost DEVEL_TOOL_PREFIX. Put it back. -Erik
Fix PIC configuration, so shared libraries once again work -Erik
A few cosmetic adjustments, and fixup the makefile a bit
Update TODO items
update all the Config files for the various arches so they work with the new config system. Hopefully I got everything here correct... -Erik
Default to SH4
kill some ancient stuff that appears to be lingering
Use "include_config" not "include-config"
Patch from "Cho, Seong-Myun" <smcho(a)xecurenexus.com> to limit things to the lower 16 bits of 'id'.
Patch from M. R. Brown <mrbrown(a)0xd6.org> to get rid of "depreciated multi-line string literals" warnings
Yet more config system updating.
Properly prefix some symbols
Another update to initfini.awk and initfini.c from Stefan Allius to hopefully address SH wierdness. Now works on other architecture properly as well.
Several SH lib loader patches by Stefan Allius <allius(a)atecom.com> and "M. R. Brown" <mrbrown(a)0xd6.org>
A patch from Vincent Sanders to fix the arm implementation of ioperm() and iopl()
Oops. Fix compilation on arm. -Erik
Add link to search google's uclibc archive
Don't use ENTRY(), make the asm explicit -Erik
Kill sysdep.h and fixup the SH asm to not use it. -Erik
I dunno why there were align 5, but align 4 is much more sensible.
Fixup so we use soft-float when HAS_FPU is disabled. -Erik
Export TARGET_ARCH
Patch from M. R. Brown to fix 'make defconfig'
Patch from Stefan Allius. Include CPU_CFLAGS when compiling initfini
Patch from Stefan Allius -- export LIBGCC
Kill legacy DOPIC=true assignment
Standardize LIBGCC_DIR
Expand NIS comments
A patch from Danny Lepage so that we do not setting on symlinks when looking for a device match, and instead keep looking till we find the correct device.
Massive scrubbing of the shared lib loader error handling. Move all configuration options into the new config system. -Erik
Fix gcc-uClibc.h dependancies
Fixup handling of disabled options
Cleanup soft-float support
For now, leave the "Oddly enough, __fsetlocking() is NOT threadsafe." comment as an mjn3 only item.
Cleanup patch from Simon Rowe
Fix up a compile error
Recognize 'n' tristate/boolean symbol value in the .config file, allowing more convenient manual editing of the .config file. Patch by Petr Baudis, skimmed from linux-kernel mailing list.
Increase maximum .config line size to 1024.
Update soft-float handling
Add missing blank line
Fixup function prototype for __uint128_t which fixes the compile on powerpc with gcc 3.2. -Erik
Update doc reference
Merge an update from upstream
Large cleanup patch, based in large part on a patch from Stefan Allius, which adds a great deal of sanity.
Update the docs
Another SuperH patch from Stefan Allius. This make it so the SuperH lib loader can be compiled by GCC 3.3
Some minor changes from Stefan Allius to make conf and mconf compile under Solaris.
Construct a default arm configuration
Doh! Leave ldso debugging off by default..
Fix a silly compile bug
Leave ldso debugging off by default
Cleanup everything
Add a default for sh
Kill the now obsolete uClibc_config_fix.pl
Add defaults for powerpc
Add CPU_CFLAGS-y into LIBGCC_CFLAGS so multilibs gcc will behave itself. Revery the "=" to ":=" change, so people like Miles can set stuff in their .config
Patch from Stefan Allius to fixup SuperH ARCH_HAS_MMU and ARCH_HAS_FPU
Disble unimplemented function prototypes
Patch from Stefan Allius for libgcc multilib support
Use NATIVE_CC. Don't hard code using 'gcc'. -Erik
Disable ldso debugging. It should not be on by default.
Scare people away from enabling locale support for now.
Re-enable the strchrnul and rawmemchr tests
Patch from Stefan Allius: avoid implicit casting of void *(64bit) to int(32bit)
Patch from Stefan Allius, rebuild extra/config/conf if it is missing following a make clean
Patch from Simon Rowe to try and build asm libm code only when HAS_FPU is set. If you don't have an FPU then usm FPU code isn't going to help much...
Final update for 0.9.16
Manditory typo..
Make sure we have __linux__ defined
typo fixes
For arm use -mcpu for the moment, since it seems to work
Update from upstream
Don't link to us.kernel.org
A powerpc patch from Ronald Wahl:
Add missing quotes -Erik
Implement sendfile64 -Erik
Minor cleanup -Erik
As released in uClibc 0.9.16, regex was being compiled without wide char support, even when the rest of uClibc was. This led to anyone using regex segfaulting... -Erik
I was an idiot and put _fini into the wrong register. Duh. This patch from David Meggy fixes it...
Ronald Wahl writes: I noticed that dlclose() does not work since libraries loaded with dlopen are not marked as "loaded_file". This breaks apache with dynamic modules. I append a small fix against uClibc-0.9.16.
Ronald Wahl writes:
Fixup minislang link
Stefan Allius writes:
Patch from Luc Van Oostenryck to fix a buffer overflow in getlogin_r
Add in a pread/pwrite test
Only build the 64 tests when relevant
Doh! I screwed that one all up. Lets try that again... -Erik
Fix it for real this time.
Remove obsolete files
Stefan Allius writes:
Cleanup a few structural wierdnesses
This draws from an old patch by David Blythe for the now-dead unified syscall interface. I reworked his old patch considerably and cleaned up his version of bits/syscalls.h with some sneaky macro magic. And I implemented a powerpc correct version of pread/pwrite -Erik
For now, revert Ronald Wahl's change to dlopen. We need to look into what is breaking dlclose() further... -Erik
Update to sync up with glibc 2.3
cut-n-paste typo
Stefan Allius writes: 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.
Per suggestion from Stefan Allius, change DO_MPROTECT_HACKS to the more clear FORCE_SHAREABLE_TEXT_SEGMENTS.
Aidan Van Dyk noticed that _toupper and _tolower were misbehaving. This corrects them, per SuSv3.
Silence some whining
Implement dynamic atexit handling. Adds a few bytes and a dependancy on malloc (via realloc). -Erik
Remove use of $(strip) when no longer needed. Fixup DODEBUG so when debugging is enabled we don't enable all the major optimizations. -Erik
Update verbage regarding NIS
Patch from Aidan Van Dyk to make _toupper and _tolower work properly, reverting my wrong reading of SuSv3
Patch from Stefan Allius: - 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
Kill SVR4_BUGCOMPAT
Rework usershell.c, as the old one was packed full of unhandled failures, returned stack allocated memory, and misbehaved itself in a number of other annoying ways, -Erik
Doh! Manuel noticed I'd put the CFLAGS before DODEBUG, killing any chance of actually building with debug symbols. -Erik
Act more like the GNU version. Accept multiple args. Accept/ignore the "--" option since we always do that anyways. -Erik
Patch from Yoshinori Sato to update the h8300 architecture.
Cleanup use of in6addr_loopback and in6addr_any
Oops.
Doh! As Stefan Allius points out, I forgot to properly review this change.
Oops. As Pavel Roskin notes, I forgot to conditionally include the __fsetlocking call in libc/unistd/usershell.c. It should be wrapped and only included if __UCLIBC_HAS_THREADS__ is defined.
Use 'install' rather than 'mkdir -p' for target directories. Add $(PREFIX) to avoid leaking things at install time. -Erik
Fix the defaults to make them be sane
Fixup sysconf to report the correct answer when UCLIBC_DYNAMIC_ATEXIT is enabled.
Make support for global constructors and global destructors be configurable, so people who do not need or want ctor/dtor support can disable it and make their binaries a little bit smaller. -Erik
Fix compilation on mips
Kill a bit of unused cruft
Silly me, I forgot to include features.h
I forgot to include features.h
Spelling fixes -Erik
Don't leak outside of the target area when installing things. -Erik
Make the arm cpu-specific optimizations work properly
Properly allocate memory when size is 0, but so is buf
For now, always claim we have exactly one cpu. It should generally be the truth...
Fix the other instance of getcwd
Override optimization settings when debugging
Looks like this is in fact needed to properly debug dynamically linked stuff, so put it back but add a check for NULL
Implement the rest of the missing include/net/if.h interfaces -Erik
This is based on a patch posted to lkml by Petr Baudis on 23 Nov, which was then considerably hacked up by me. This eliminates the separate lxdialog and instead directly uses the lxdialog internals. This allows 'make menuconfig' to be much faster. -Erik
I forgot to kill these files in my last commit. -Erik
Change some variable names so we are more consistant with what the linux kernel uses. -Erik
Cleanup the case when using the system shared lib loader -Erik
Remove a stray ')'
Avoid silly namespace pollution
Fix broken ignore file
Add in a stub libnsl library to make stupid configure scripts (i.e. openssh) do the right thing when used with uClibc's gcc wrapper (which does not currently prevent system libraries from leaking into the link). -Erik
Fix typo noticed by V.Radhakrishnan
Add portmap and patch from Steven Elling
Based on discussions with Stefan Allius, change it so that we always build a crt0.o and a crt1.o. crt1.o will support ctors and dtors if such support is enabled. One more gratuitous toolchain support issue is thereby removed... -Erik
It seems SCO puts touch in a wierd place
Oops. Patch was vs 5beta.
When -shared is specified, meaning they wish to create a shared library, we need to disable adding start files (i.e. crt0) since it isn't supposed to be creating an executable, just a shared lib. -Erik
Use crt1.o when ctor/dtor support is enabled
Rework things such that staticly linked applications can use 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
Move the soft float check
Only build the ncurses stuff when it is needed, based on a patch from Stefan Allius (though the extra/config/Makefile rework is mine), -Erik
Dop not restrict the IFTODT() and DTTOIF() macros when _DIRENT_HAVE_D_TYPE is not defined. -Erik
Patch from Stefan Allius. Only build config stuff when needed.
Thanks to Siim Vahtre, add mplayer
Be sure we have a crt1.o file. Use the asm version by default. -Erik
Rework sparc architecture support so it will compile and run. Seems to be working... -Erik
If they call dlopen with anything other than RTLD_LAZY or RTLD_NOW then we need to error out.
Lineo has ceased to exist and is no longer a sponsor
Disable the __USE_EXTERN_INLINES versions of these headers, which use non-existant glibc internals.
Hide unimplemented and legacy ecvt and friends from configure. -Erik
mention the uClibc root_fs now available on uclibc.org
Patch from Nick Fedchik to support ether_aton
Implement lockf64 -Erik
Fix warnings
Patch from Jay Kulpinski: __decode_dotted() does not count the null terminating byte of a hostname in the DNS response. This causes lookups to fail if the DNS response doesn't compress domain names in the message.
Update website dev image blurb
Patch from Robert Schwebel -- support ncurses installed in /usr/local
Strip off unwanted quotes from ARCH_CFLAGS. Attempt to enforce consistent sort order, 'gcc -print-search-dirs' behavior, etc by forcing the build into the C locale. -Erik
Update build rules a bit. fix quoting problems. Update default x86 compiler optimization to not force building i386 opcodes.
Remember to also export LC_ALL in addition to setting it. -Erik
Only include lockf64 when large file support is enabled, fixing a problem noticed by Jeff Mock. Sorry about that. -Erik
Looks like sigaction on arm needs adjustment, so split this into a common header file and a default implementation.
Missed an endif
Add in arm specific sigaction implementation to fix sa_restorer behavior so it works as expected
Update sigaction syscall names to act more like glibc. Fix the x86 sigaction implementation such that gdb can actually debug signal handlers. Gdb behaves much better now, for example, on multi-threaded apps. -Erik
Patch from Brett Hunt at micron.com to fixup potential segfaults during 'make menuconfig'
Fix indenting. Per patch from Nathan Field at ghs.com, change LINUXTHREADS_PTHREAD_THREADS_MAX to properly point to "__pthread_threads_max".
Per patch from Nathan Field at ghs.com, add a couple of variables needed to make gdb happy when debugging threadded apps.
Per patch from Nathan Field at ghs.com, fix __pthread_initialize_manager so it locks before calling clone when under a debugger, and unlocks on success or failure of clone when under a debugger.
Per patch from Nathan Field at ghs.com, fix the mips __compare_and_swap inline function. Without this fix, pthread_mutex_lock/pthread_mutex_unlock don't work on mips.
Just be a bit less different from latest glibc version in comments and in the files where variables live.
Update malloc behavior on malloc(0) to be consistant with malloc-930716 behavior, i.e. return a NULL.
Kill the needless '#if 1'
Rewrite powerpc crt0.S for proper ctor/dtor handling
Shuffle two lines so the comment applies to the correct line.
simpler method for getting a 'main' reference. Make _init and _fini be weak so people won't need to fix their compilers
Making atexit weak does nothing for dynamicly linked apps. And for staticly linked apps it entirely prevents destructors from running unless atexit is called for some other reason. So if they enabled ctor/dtor support we need to have a call to the real atexit for dtors to work properly. If people don't want the extra 4k or so of junk in their static apps, they should leave ctor/dtor support disabled. -Erik
Cleanup makefiles and make clean a bit
Update a tiny bit
Update ignore list
Update tests to be somewhat consistant with the rest of the world
Shuffle OPTIMIZATION setting a bit
Update crt0 for arm to provide the main reference a bit more nicely, and make _init and _fini be weak for people with broken compilers -Erik
Hopefully this will work as expected. I have no way to test but this should be correct.
Hopefully this is correct
Update architecture specific support to consistantly generate a crt0 and crt1 file. Most arches still need to be updated to call __uClibc_start_main() rather than __uClibc_main().
Doh! Fix potential stack corruption caused by dynamic atexit allocating size incorrectly.... -Erik
Add FAQ entry for "sh: can't access tty; job control turned off" -Erik
Ok, people are probably going to hate me for this... This commit changes the type of 'struct stat' and 'struct stat64' so they use consistant types.
I thought it would be smaller to inline since these funcs are small. Well, not inlining saves 300 bytes, so do that instead. -Erik
Better stat tests
Don't clean config system except on 'make distclean'. Remember to clean locale stuff on 'make clean'
Finish up fixing stat and setting various system types.
Stupid typo
Support having libs in /usr/X11R6/lib by default as well
Begin release preparations...
A few more needed updates
Stick some evil casts in to make sure this works regardless of the underlying data types.
Fix powerpc struct kernel_stat types
Update the changelog for release
Update webpage for release
Move some stuff into old-news
some minor todo updates
This seems to be needed or else apps will blow up. -Erik
Fix the 'make release' target
Cleaner
bah
Patch from Stefan Allius to fix the build when large file support is disabled
Stefan Allius noticed dlib_pic.o was not using XXFLAGS as it should
Add a couple of tests
Fix scandir64 to not free the wrong pieces of memory (which could and did cause segfaults) by adjusting the working scandir.c to the the 64 thing. Fix up potential for mismatches between the libc and kernel dirent structures, which could also cause ugly problems. -Erik
Create stub crti.o and crtn.o files when UCLIBC_CTOR_DTOR is disabled -Erik
The original glibc sysdeps/mips/dl-machine.h source from Kazumoto Kojima was 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.
Patch from Christian Krause:
Patch from Christophe Massiot:
Per discussion with Nick Fedchik, restore original LGPL licensing to libc/inet/ether_addr.c
Patch from Marshall M. Midden @ brecis.com: pipe.c for mips was broken with freeswan. No error checking.
Fix copyright
heh
Oops. I'd left an extra invocation of sigaction in there...
Fixup compile on 2.2.x kernels when UCLIBC_HAS_LFS is enabled
Patch from Stefan Allius to fix a compiler warning
Patch from Stefan Allius to make adding libgcc functions to the library an option, to avoid the possibility of adding non PIC code into the shared PIC uClibc library, thereby making the .text segment unshareable.
mention penguru
Fixup handling of the .note.ABI-tag section so that it is ARM only, and so it actually works as intended allowing binaries on ARM to be debugged. -Erik
Fix a compile error
Fix a warning
Mention the dev systems have been updated
A few minor little changes
We need to have the size of struct dirent equal to the size of struct dirent64 so when _FILE_OFFSET_BITS=64 (such that we transparently change 32bit into 64 bit interfaces), we will not lose an unsigned char from d_name which silently becomes the d_type field instead. oops. -Erik
Per suggestion from Peter Lassahn, fix the install_dev target
Use http not ftp
Somewhat pointless naming pedantry
Bump version number
Update changelog
Eliminate a needless extern
update website for release
Remove now obsolete note about dirent
Some minor doc updates
Minor update regarding binutils
Update to note dev system
Move dev system comment
Oops. Point to .18 not .17
Fix a _ton_ of system call user type/kernel type translation problems, causing user space to get scrambled hosed up results. -Erik
Don't just tune, use -march which implies -mcpu as well
Add missing ';'s so powerpc will compile
Fixup powerpc syscalls to eliminate warnings with gcc-3.2, and fix some other minor warnings.
Patch from Stefan Allius:
Patch from Stefan Allius:
Patch from Stefan Allius
Fixup bui
Mention latest update
Fixup ioctl so we can special case powerpc silliness
Some stuff I forgot to check in about a month ago... -Erik
Fixup some small issues that show up when large file support is disabled
Add a toolchain section. Mention Steven J. Hill's mips RPMs.
Add a bunch of additional early debugg messages into the shared lib loader to make it more obvious what is wrong when things puke early on in the process. -Erik
Fixup a really stupid and terribly obvious bug that was causing the shared lib loader on mips to puke... -Erik
Prefer mmap2 for mips when available. Fix the mmap test. -Erik
Patch from David Airlie to fix handling of ctor/dtor stuff when used in combination with and w/o both the nostdinc and nostdlib options.
Fix a silly bug
Major update for pthreads, based in large part on improvements from glibc 2.3. This should make threads much more efficient. -Erik
Fixup mips pthreads
Fix a potential compile error
Fix the shared library loader so we can properly debug things like pthreads. Mips gdb support for pthreads and similar complex stuff is broken, but then it couldn't have worked before either... -Erik
doh. I forgot mips can't talk to globals that early on in the process. Fix that up too. -Erik
doh. I forgot mips can't talk to globals that early on in the process. Fix that up too.
Use a funky version in a probably vein attempt at preventing gdb from dlopen()'ing glibc's libthread_db library...
Patch from Jeffrey Damick:
Teach ldd to act just the glibc provided one (relying on the 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
Add missing alias __modify_ldt
cut-n-paste strikes again
begin preparing for release
Fix location of cvs
Update version
Updates for release
Initial effort at adding profiling support.
Fix grammar
Fix compile when profiling is disabled
Teach ldd to be a bit more helpful by telling you specifically what the problem library is that is linked vs glibc. -Erik
Patch from Stefan Allius to make ldd.c compile under Solaris
Patch from Stefan Allius adding the function 'thread_self_stack' from glibc 2.3 that is needed for pthreads to compile for SuperH.
Seperate pthread debugging from uClibc debugging. They are used for different things.
Default to using fork() for vfork() when no arch specific implementation of vfork is present.
The vfork system call on powerpc seems to be completely broken. Use fork instead, per glibc behavior.
Patch from Stefan Allius:
Patch from Konrad Eisele to omit -Wl,--dynamic-linker from the gcc wrapper when not building with shared library support.
Patch from Konrad Eisele to add include/asm-generic since, at least on sparc, this is needed by some of the include/asm files
Update website
Patch from Stefan Allius to finish off the last required bits for gmon profiling support for the SuperH target.
Make profiling on arm work
Finish off gmon based profiling for powerpc
For now, leave mmap on mips using mmap1, since mmap2 seems to have 'issues' (i.e. it doesn't work 100% properly). -Erik
Make the text a bit more clear
/me needs to learn to proofread
more random changes
Fixup ldd handling of multiple files
Patch from Stefan Allius: fix a couple of gcc 3.3 compiler warnings in gmon.c
Patch from Stefan Allius:
Patch from Stefan Allius
remove a leftover debug printf
Patch from Jordan Crouse to avoid potential rendering problems
Minor cleanup to better sync with glibc 2.3
Make it so debugging pthreads works, even with DODEBUG turned off -Erik
sjhill needs to buy donuts for everyone
resync with glibc 2.3
Oops. Don't call strip twice
Avoid errors with buggy preprocessors
Patch from Liam Girdwood to fix mips profiling when using newer gcc versions.
Konrad Taro Eisele noticed the sparc struct stat was broken. Fix it.
Patch from Marshall M. Midden:
Fix SIGTRAP handling on arm. The defination of struct ucontext, which was copied from glibc, is wrong. So fix it. -Erik
Thierry De Corte notices that when UCLIBC_HAS_FLOAT is disabled, we must also disable drand48, drand48_r, erand48, and erand48_r since they use floats.
Comment on glibc's MALLOC_CHECK_ support.
uClibc 0.9.19 has a bug in globfree(). If the previous call to glob(...,pglob) used the GLOB_DOOFFS flag to reserve the first pglob->gl_offs slots of pglob->gl_pathv, globfree(pglob) would attempt to free the objects pointed to by those slots. If those objects were not on the heap, the system would crash.
Cope with autoconf's broken AC_FUNC_MALLOC macro, which redefines malloc as rpl_malloc if it does not detect glibc style returning-a-valid-pointer-for-malloc(0) behavior. This wrapper calls malloc() as usual, but if N is zero, we allocate and return a 1-byte block instead.... sigh...
Change 'N' to '__size' to avoid conflicts with common #define of N
grr. It's a void *, not a char *.
Accomodate building under cygwin
Allow gcc to move/update by detecting where needed files are should they move/disappear from the expected location. -Erik
Eviscerate stropts.h so configure scripts won't try to use STREAMS garbage. uClibc does not support STREAMS in any way whatsoever. -Erik
Enable ADD_LIBGCC_FUNCTIONS by default on arm
In a number of places we erroneously used tests such as '#ifdef PIC' when we should instead have been testing for '#ifdef __PIC__'. This resulted in NON-PIC code getting mixed into the shared library. Oops!!! -Erik
Clone still had a few little PIC problems....
Patch from Peter S. Mazinger to fix some leftover problems from converting "PIC" to "__PIC__"
Fix broken
Kill the runtime fallback to fork and make it be compile time
We do not provide getfsent and friends, so remove this header file, to prevent stupid configure scripts from getting confused.
Patch from Peter S. Mazinger to make the get-needed-libgcc-objects script work with newer binutils versions.
Fix arm syscall implementation so it does not blow chunks with gcc 3.3 -Erik
Marshall M. Midden at brecis.com writes: The gnu ld and binutils for mips has a bug with relocation.
Fix mips so it compiles with gcc 3.3
Set the default thread stack size to 16k for mmu-less systems. -Erik
As suggested by Marshall M. Midden at brecis, use -mno-split-addresses instead for mips, which should be a bit faster and will be safer too.
The mere presence of stropts.h causes many configure scripts to erroneously believe that uClibc supports STREAMS. Well, we don't. So I am hereby removing this header file, since it was empty anyways. Applications that depend on stropts.h being present, but do not depend on its contents, are broken anyways. -Erik
Bump version number in preparation for a release
Comment out the rpl_malloc workaround. It was a good idea, but it violates namespace guarantees and conflicts with other programs that have used the AC_FUNC_MALLOC autoconf macro properly.
Implement syscall() for powerpc. Fixup syscall code so it compiles properly with gcc 3.3. -Erik
Don't segfault when given things other than a regular file. -Erik
Fix a segfault when used on a library w/o an INTERP program header.
For some strange reason, davidm put this file in the wrong spot. So put it where it is supposed to be. -Erik
As noted by Peter S. Mazinger
Coldfire patch from Bernardo Innocenti
When compiling with -O0, linuxthreads does not compile. So add a local override changing -O0 to -O1 only for that directory.
Patch from Ronald Wahl fixing an IPV6 specific problem with getaddrinfo().
Be extra careful to memset the correct size, not the size of some random 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
Make login actually write out utmp and wtmp junk (even though such things are completly unreliable crap)
Rename the very badly named 'UCLIBC_GCC' to 'UCLIBC_ENV' and implement 'UCLIBC_CC', which does this:
Make indenting be consistant
Fix indenting for real this time.
Several more cleanups
Add in ceilf() and floorf() since XFree86 wants them...
Per a patch from Rob McMullen, add getprotoent_r, getprotobyname_r, and getprotobynumber_r
Add missing madvise syscall
Mention that the common mmap64 is a stub and must be overridden on a per arch basis using platform specific code
Actually, some arches do support _syscall6, so implement a generic version for them... -Erik
oops. Fix the name so it is "mmap64", not "__mmap64"
add mmap64 for i386
Implement mmap64 for arm
Cleanup a couple of ugly bits
Do not let isatty mess up errno
Add config option to enable 'struct tm' timezone extension fields
Fixup errno handling -Erik
Yet more cleanup for the reentrant pwd/grp functions so they should now actually be doing the right thing
whitespace and debug updates
Revenge of the Typo
Run dlopened ctors and dtors in the correct order
oops
Add a test which shows off the broken spots in our dlopen implementation
ret could have been used uninitialized in one case
Fix a couple of typos
Patch from Pavel Roskin to fixup toplevel help text
Per suggestion from Stuart Hughes, allow uClibc to re-install headers on a system where they have previously been installed.
Fixup symlinks to libthread_db
Update for completed items
Yield to yet another glibc-ism and add __progname
Update for release
Update note re binary compat
More updates
oops. This is 0.9.20, not .30
Fix source code URL
Only exec child apps if they are elf type ET_EXEC
As noted by Felix Radensky back on 16 Mar:
Fix a silly cut-n-paste error
Patch from Peter Kjellerstedt to make it simpler for arches to specify either -fPIC or -fpic
Patch from Peter Kjellerstedt to not modify include/bits/sysnum.h if it does not need to be updated.
Doing an search and replace on CFLAGS can prove dangerous. We don't do -O0 by default anyways, so leave this disabled for now.
Remove the arch specific shm.h and use the fixed up common one which now uses the kernel structs -Erik
Update licensing discussion
Update inet_aton() to support an undocumented feature of inet_aton, per UNIX Network Programming, Volume 1, second edition:
For sparc, powerpc, mips, and alpha we should also use the common ipc.h header and struct definitions. -Erik
Merge/rework config system per the latest from linux-2.6.0-test2 -Erik
Shuffle options around a bit
Looks like I missed a spot
Zou WeiJun noticed a type breaking the stime syscall -Erik
Patch from David Wuertele to prevent "conflicts with new declaration with C linkage" problems with C++
Begin documenting differences between uClibc and SuSv3 -Erik
Add support for personality(), prctl(), ustat(), and ulimit() syscalls, which had managed to stay unimplemented thus far. -Erik
Add in a MALLOC_GLIBC_COMPAT option to let people decide if they want glibc style malloc(0) behavior
Add support for the ulimit syscall
Update likely() to cope with truth values other than 1
An even simpler likely
silly me, thats not going to work.
also carefully booleanize the false value
Fixup centering so the site does not look like crap in IE
Patch from Paul Mundt adding uClibc sh64 support:
Use the common version for bits/sem.h. Fixup the types to match the kernel type exactly.
Cleanup arm architecture optimizations and add big endian arm as well.
Phase one of my evil plan to clean up ld.so...
Cool. Found most of the problem. Turns out we were inadvertanly loading some libraries multiple times, wasting memory and causing different libraries to use different symbol sets, some of which were not properly resolved.
More routine cleanup
I just realized we need global symbol resolution for everything in a chain of dependent libraries or libraries that depend on other shared libraries will not work!
Update the tests a little bit
ignore unwanted stuff
Revert this change for now.
Be sure to remove the old ldso.h, since it will screw things up badly if still present...
Add missing semicolons
Remove some mips specific hacks that are no longer needed, and actively break 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
Patch from Atsushi Nemoto, who writes:
mention ucdot.org
Link update
Make the mips ld.so debug noise somewhat useful, and less gratuitously different than all other arches. -Erik
Avoid gratuitous conflicts when used with kernel headers
Don't use linux/sysctl.h and instead locally define struct __sysctl_args.
conditionally add wordexp, in this case ripped from glibc. I hate to add this stuff, but it is specified by SuSv3...
Reluctantly add wordexp()
here is (I hope) a better way to handle this one. I regularly build debug versions of uClibc with -O0, but libpthread/linuxthreads/spinlock.c will not compile without at least -O1 optimization...
Remove comments about wordexp.
Add a couple of things... And check that cvs commit diffs are working again...
Weed out duplicates before trying to load libraries.... Delayed checking for duplicates and returning an alias if an existing lib is already loaded is still correct for the dlopen case.
Greg Nutt writes:
Atsushi Nemoto writes:
Rob Landley writes:
Remove a bunch of guessing about the location of the kernel headers. Move most of that into a script, and warn loudly when having to guess. -Erik
Do not overwrite CPU_CFLAGS values....
15 retries is really rather excessive...
pass in "-s" directly
minor link updates
minor cleanup
A better test for a dlopen problem with weak symbols, based on a much improve test by mjn3.
kill these too.
move the ldso tests to dlopen where they belong
Use "__pthread_once", since that is weak and present in both glibc and uClibc.
Make it easier to disable lib debugging (mainly for when testing with glibc).
Fix a problem with dtors/dtors.
delete some garbage, cleanup duplicate handling
cleanup/simplify duplicate handling.
Let "$KERNEL_SOURCE/include/asm" be either a link or a directory.
Minor cosmetic cleanups to avoid getting spurious bug reports.
mjn3 noticed we were missing seed48, which was odd since we had all the other *48 random functions.
Add support for ftw and nftw
Bump version number in preparation for a release
Remove ftw and nftw as exceptions, add getgrgid_r and getgrnam_r
Let people enable ftw, make glob an option, add a new "Big and Tall" top level config menu.
Fix the bugs I stupidly added
Remove more headers when options are disabled
Add more pretty comments
Be more clear
fixup ftw and ftw64. Unfortunately, adding ftw64 doubles the size... :-(
oops. ftw would blow chunks if UCLIBC_HAS_LFS was disabled.
Running ltp 20030905 showed that tcsendbreak was broken. This fixes it.
Fix errno values. Fix MALLOC_GLIBC_COMPAT handling in malloc/malloc.c, which was reversed. Provide more consistancy between implementations. Handle it when people do stupid things like malloc(-1);
Fix numerous problems with both getcwd implementations. -Erik
Add an implementation of profil(), based on the version from glibc, with several changes for use in uClibc.
add missing prototype
'extern inline' doesn't work... Use 'static inline'
Fix some more problems found by the ltp
Some updates from glibc. mjn3 reports this fixes profiling on i386, at least, so seems like a good thing.
A few minor syscall cleanups
More FAQ updates
mjn3 pointed out that my brain was not in gear....
Be certain the config system binaries are current
Fixup build problem on powerpc
Use __libc_fork for the uClinux fork stub
Fix a trivial compile problem
Fix broken test
Oops! I broke pread on mips with my last update. This fixes it again so it both compiles and works, -Erik
Force enable ADD_LIBGCC_FUNCTIONS on arm
Add in several config system updates for locale support.
Arm needs this to compile with gcc 2.95
Enable automagic locale data downloads
Update changelog for release
update changelog
Attack of the spelling police....
Update website
Fix grammar
Fix cris shared lib loader so it compiles...
sigh. The cris compiler doesn't do link_warning's....
Make sure that __syscall_fcntl is extern when LFS is disabled
Force Large File Support disabled on Cris, since something appears to be wrong with their toolchain that is tickled by LFS.
minor spelling fixes
Yet more trivial doc updates
Stefan Allius writes:
Stefan Allius writes:
Simplify an expression. Use static const on strings to avoid a gcc 2.95 compiler problem on powerpc.
Peter Kjellerstedt writes:
Fix several stupid bugs I let slip into the release
Fix fcntl64 when UCLIBC_HAS_LFS is enabled, but __NR_fcntl64 is not defined.
Patch from Philip Nye fixing mmu-less
Make sure we use the local copy of elf.h, since some system versions are insufficient....
Fix SUPPORT_LD_DEBUG_EARLY on powerpc
oops.
Mention that I have updated the dev systems.
grammar fixes
typo
Quick implementation of sigwait. Doesn't handle thread cancelation yet, but should work...
Fix a stupid bug causing 'ldd' output to not contain the full path to the target library
s/root_fs-/root_fs_/g
Patch from George Thanos adding support for the "e1" architecture.
Apply a trivial patch that doesn't change anything, but which is alledged to workaround a toolchain specifi bug for the e1.
Patch from Atsushi Nemoto (with some additions):
Atsushi Nemoto writes:
When someone would dlopen a shared lib that was already opened, we would try to re-fixup the lib's relocations with rather horrible results. So fix that by checking the the dlopened lib has already had its init functions called, which will never be the case for newly loaded libs, and skip the rest in that case.
move the test for loading the wrong C library into the _dl_check_if_named_library_is_loaded function
Patch from Rob McMullen:
Implement getgrgid_r and getgrnam_r. Rework group handling code to be fully reentrant, since there was still a shared static value. indent stuff,
Remove some stuff that is now done
We do not provide gmtime(), so disable the prototype to prevent confusing autoconf
These are wanted by net-tools
I forgot to remove this
Sigh. It seems that csh wants glob_pattern_p(), we need to export it,
Don't make two copies
Always build and install ldconfig
Fix an ldd bug, more ldconfig cleanup
Patch from Peter Kjellerstedt:
sigh. the warn funcs seem to be broken. Use local versions till I can straighten that out.
Enable full debug support for ld-uClibc and libdl
Doh! I was returning with an incorrect pointer type when dlopening already loaded libs, which unsurprisingly would cause dlsym() to not work at all... -Erik
Patch from Tony J. White:
Brett Nash writes:
More detail on the use of MALLOC_DEBUG
Do not set errno when they asked for size 0
Point people to the kernel.org mirrors for downloading the dev systems to take some load off my server
Doh!!!
Implement putgrent to make Peter S. Mazing happy
Peter Kjellerstedt writes:
Peter Kjellerstedt writes:
Peter Kjellerstedt writes:
Add a new RUNTIME_PREFIX
the runtime should not install a /bin dir
Do not install the uClibc wrapper toolchain by default. Make people ask for it explicitly.
more install changes
We were failing to properly set h_errno on success, which could cause gethostbyaddr_r to keep looping allocating more and more memory each time till alloca finally caused a segfault. Ugh. This fixes that as well... -Erik
Merge some newer/updated bits from the glibc elf.h
Patch from Peter S. Mazinger:
Fix a stupid bug that caused uClibc to never provide the correct fpu_control.h header file, since the correct arch specific one was always later overwritten by the generic one. oops. -Erik
Doh! In include/bits/uClibc_config.h when we define things, we appropriately prepend "__". Unfortunately, when we #undef things, we do not prepend the "__". This results in collateral damage to unsuspecting applications as we undefine random unrelated macros. Oops.
Those crazy binutils folks changed their abi. Add this so older apps can cope gracefully.
It seems we need to also define SI_LOAD_SHIFT since that was also exported by the Linux kernel.h header that we do not include.
Atsushi Nemoto writes:
Per suggestion and patch from Ken Staton, emulates poll using select for older 2.0 kernels where poll is missing.
Peter S. Mazinger pointed out that I missed a spot. I should stop applying patches by hand...
Peter Kjellerstedt writes:
better tuning for xscale that copes with generally available toolchains
Disable optimizations with debugging
Sigh. It seems some stupid programs expect this...
properly deal with soft-float when profiling as well
gdb wants to dlopen "libthread_db.so.1", so be sure to assign the correct soname
getpwent(), getpwent_r(), and getgrent(), getgrent_r() would all fail if you had not previously called setpwent() or setgrent() respectively. Oops. My bad. -Erik
this script is no longer used, and can be removed.
Fix things (properly) to open /etc/passd and /etc/group if they have not yet been opened.
Add some additional pwd/grp tests, to prevent me from breaking obvious things in the future. -Erik
Make the syscall locally, avoid an extern
Be extra careful to check uid and gid converstions to kernel types
Add some missing prototypes
Both setegid and seteuid were implemented suboptimally, such that we were unable to switch back to the original saved group/user ID. -Erik
Implement getgrent_r. Rework getpwent and getgrent a bit further
Additional passwd and group tests
Remove warning that apparently is not needed for e1
Begin preparations for the next release
Minor makefile tweaks
Minor cleanup
minor cleanup
Rework the config system. Better utilize the Kconfig language which should simplify enabling arbitrary architectures. -Erik
Kill off the gcc wrapper. It has served us well, but there comes a time when 90% of correct is simply not good enough. Some people will not be very happy about the decision to kill the wrapper toolchain. Sorry, but a real toolchain is the One True Way(tm). -Erik
Naming things this way will be much easier to deal with
Peter S. Mazinger writes:
As Peter S. Mazinger has pointed out, the config system wants some defaults. So give it some empty defaults and let people select their own options.
Begin the conversion to using per-arch crti.S and crtn.S
Continue the conversion to using per-arch crti.S and crtn.S
Kill off "mipsel" and just use "mips"
Do not provide a default for endianness. This needs to be selected on a per-arch basis, or left to the user to choose.
Continue the conversion to using per-arch crti.S and crtn.S
Oops
Continue the conversion to using per-arch crti.S and crtn.S
Force cris to be little endian. Afaik, there is no big endian cris architecture.
Arthur Shipkowski, art ! videon-central ! com, writes:
Patch from Peter S. Mazinger to hunt for awk in additional places....
Continue the conversion to using per-arch crti.S and crtn.S
powerpc is always big endian
m68k is always big endian afaik
Fix a buglet that shows up on powerpc
Continue the conversion to using per-arch crti.S and crtn.S
Yet more config system updates
Yet more messing with selecting sane default configs
duh. the alpha has an fpu
Continue the conversion to using per-arch crti.S and crtn.S
v850 appers to be little endian only
Continue the conversion to using per-arch crti.S and crtn.S
Continue the conversion to using per-arch crti.S and crtn.S
Continue the conversion to using per-arch crti.S and crtn.S
Kill initfini.awk
Add quick hacks to create fake crti.o and crtn.o files. These architectures need to be fixed properly. I tried, but I was unable to build a cross toolchain for each of these (using stock binutils and gcc) so it is someone else's problem to fix them now.
last but certinaly not least, kill off initfini.c
Rip the guts out of the dynamically generated sysconf.c, and live with a simple static version. This will need further work later on, but should do the job for the time being,
Rework the powerpc lib loader to better match the other architectures
tiny cleanup
Fix a misnamed array
Add some initial x86 string optimizations. These make no attempt to use nifty things like mmx/3dnow/etc. These are not inline, and will therefore not be as fast as modifying the headers to use inlines (and cannot therefore do tricky things when dealing with const memory). But they should (I hope!) be faster than their generic equivalents....
The curse of cut-n-paste
A few debugging cleanups
George Thanos writes:
Add in aliases provided by the non arch specific implementations
s,(DEVEL_PREFIX)/,(DEVEL_PREFIX),g
s,(RUNTIME_PREFIX)/,(RUNTIME_PREFIX),g
Revert change 1.26, which breaks everything. :-(
Begin converting the client utils
It is remotely possible the utils might even compile this time around...
remove some junk I added while debugging
Sigh. I forgot to define INSTALL which, understandable, broke the install target
Add some basic cvs usage info
Fix up several errors related to filename length and errno that showed up while running the latest LTP testsuite. -Erik
Joakim Tjernlund writes:
For now, disable the iconv utility
kill mention of the wrapper
Update docs in preparation for release
hide the wrapper in with the debian stuff
Joakim Tjernlund writes:
Sigh. I can't type this morning.
Darn. Fix compilation for soft-float, which I inadvertantly broke a couple of days ago. :-(
Strip off quotes from TARGET_ARCH
Another cleanup patch from Joakim Tjernlund:
Stefan Allius writes:
Stefan Allius writes:
Joakim Tjernlund writes:
It seems that the powerpc ldso doesn't like -O0
Fix a stupid potential segfault
Bump version number
Revert the stupid quoting junk I inadvertantly committed
Add support for missing ntp_gettime and ntp_adjtime
Teach the install_dev target to behave itself and install the correct stuff with the correct names, and not install yet another set of shared libs in the wrong place -Erik
Kill off these headers, which are supposed to be part of binutils-dev, not part of uClibc.
Update the debian packaging for use in a standalone uClibc system, rather than being a subordinate lib under a glibc based system. -Erik
Joakim Tjernlund writes:
Prepare for release
Fixup dependancies to ensure arch specific string functions will always win
Make certain that the arch specific stuff is always compiled last
Make certain that arch specific stuff is compiled last
Lets try that one again...
Add an initial set of arm optimized string functions. These do seem to make noticable speed improvement... -Erik
Don't depend on BSD naming
Add missing weak alias for bcmp
prevent some needless warnings when building w/2.6.x kernel headers
Oops. Only enable debug when debugging...
Only enable debugging when SUPPORT_LD_DEBUG is enabled, not DEBUGGING
Remove SAFECFLAGS. It was a workaround for failures in old awk script used to generate the crti.S and crtn.S files. Since we don't use that anymore, keeping the workaround makes no sense.
Avoid a potentially undefined operation with a veriable++ in a macro
Add function versions of ntohl and friends
Disable pthreads for sh64 for the time being (since it is not currently supported)
force enable FORCE_SHAREABLE_TEXT_SEGMENTS for sh4
Rob McMullen writes: There is code in ldconfig that checks to see if a shared library is named either ``lib*'' or ``ld-*'' before ldconfig -l will work on it. gawk uses this feature of ldconfig to make /lib/rcscripts/filefuncs.so, so the build fails.
remove some garbage
Eliminate some static buffers based on a patch from Tobias Anderberg
Paul Mundt <lethal(a)linux-sh.org> writes:
Patch from lethal, adding syscall() to the sh64 port
Lethal noticed that the generated file gmon-start.S was not being cleaned up.
Joakim Tjernlund writes:
Henrik Grindal Bakken writes:
Set the default stdio buffer size to 4096, rather then 256. 256 is fine of course, but many applications use this value and expect it to be larger.
Fix arm profiling support, which was accidentally removed
move _dl_fixup so staticly linked apps using dlopen have a chance of actually working
Paul Mundt <lethal(a)linux-sh.org> writes:
Prepare for uClibc 0.9.24 release
Rework the website
more minor cleanups
mjn3 found a url for the darwin C lib
fixup some silly html bugs
add image for validator
fix a cut-n-paste typo
Update the website
Update for release (no really this time ;-)
fix grammer such it is possible to understand what is written...
Add LEAF Bering-uClibc
Add in the axis network cameras
When I switched from using stack allocated space for printf, I missed a case where a sizeof(foo) was changed to the sizeof a pointer. This caused _dl_printf to complain a lot when debug is enabled (which itself revealed a bug since it should have exited on buffer overflow), and let me to find another bug, where memory failures would try to recursively call _dl_printf.... What a mess.
Patch from Paul Mundt <lethal(a)linux-sh.org>:
Patch from Paul Mundt <lethal(a)linux-sh.org>:
Patch from Paul Mundt <lethal(a)linux-sh.org>:
Use PAGE_SIZE rather than hard coding 4096
dev systems updated
Update the config used when building a .deb
Use 'sed -i -e' rather than 'sed -ie' since we don't want to leave backup files with "e" appended scattered all over the place.
That was awfully stupid.
In unistd.h, getpgrp() is redirected to __getpgid(), but we did not have a __getpgid(). Fix that.
implement the worthless cuserid() function we claim to support. This isn't in SuSv3, but is expected by at least some apps such as emacs...
oops
remove unused file
Fix whitespace
Fix a really dumb bug introduced in version 1.4 of this file (a patch for ipv6 support) which could cause things like EOF and read errors while reading /etc/services to always return a TRY_AGAIN. The perl test suite would alloc a larger buffer and try again until all memory was exhausted. When we get a read error, or EOF, it means we didn't get what we wanted, and so we should return an error. Doing so fixes the failing perl 5.8.2 test. -Erik
Update and restore malloc-simple. Slow as molasses, but trivially simple and releases memory immediately when asked to do so. -Erik
Rework malloc. The new default implementation is based on dlmalloc from Doug Lea. It is about 2x faster than the old malloc-930716, and behave itself much better -- it will properly release memory back to the system, and it uses a combination of brk() for small allocations and mmap() for larger allocations. -Erik
Make sleep behave itself properly inthe presence of SIGCHLD
Fix the manditory typo in my last minute untested fix. -Erik
Add extra checks for sigprocmask and rt_sigprocmask syscalls. The rt_sigprocmask syscall has broken error handling in 2.4.x kernels, while the sigprocmask syscall appears to get things right. Regardless we should be extra careful, and add these checks.
Fir errno return when the file/path is NULL or points to an empty string. -Erik
rohde at soap dot adsl dot dk writes:
rohde at soap dot adsl dot dk writes:
Cope with 2.6.x headers
Bump version, cleanup whitespace
Do not make tests depend on CC, since we no longer build a wrapper.
Remove remnants of the gcc wrapper
Minor update of the debian packaging stuff
Peter S. Mazinger writes:
A useful/useless little malloc time test
Minor changes
oops
And just like that, clone is now fixed.... Previously the error handling code was mostly broken. -Erik
Add ldflags where needed
Be sure to fully clean 2.6 kernel headers on 'make clean'
Update for release
Fix up the news a bit
Update for release
Fix grammar
spell 'pthread' properly
Fix paragraph seperation
Bump .deb version
Implement res_search and res_querydomain based on netbsd code, but remove support for host aliases (the HOSTALIASES env variable) which looks like a very bad idea. -Erik
Some badly behaved arches fail to provide a PAGE_SIZE define
As mjn3 noticed, 64 bit arches should select UCLIBC_HAS_LFS
Fixup dated comments
Use the gcc 3.4 -funit-at-a-time optimization when available
Include missing errno.h header (as noted by Alan Hourihane). Fix uninitialized pthread mutex used to lock the list of aligned memory blocks.
Minor updates from linux 2.6.1
Fixup selection of endianness, since select does not work on choice items, we have to declare what endianness cpus are capable of supporting and work using dependancies.
s/UCLIBC_HAS_MMU/ARCH_HAS_MMU/g
Joakim Tjernlund writes:
Paul Mundt writes:
As noted by Doru Petrescu, there was a spurious line that was using _dl_debug_addr prior to checking if it was NULL.
support building the uClibc utils for the host system...
Erik is an idiot
Massive formatting cleanup, making it easier to parse
Move poll to its own file, rather than being only half in its own file
Add poll
Split up syscalls.c, since it had grown to be quite large and ugly. -Erik
ignore host binaries
Sort all the files
Some minor debian junk I had sitting in my tree
Joakim Tjernlund writes:
Imre Sunyi writes:
Oleksandr G. Zhadan writes:
Joakim Tjernlund writes:
Patch from Joakim Tjernlund to get rid of an annoying warning.
Patch from Joakim Tjernlund:
Fixup silly typo
Eliminate separate passes for _dl_copy_fixups() and _dl_fixup(), and do both operations in a single pass.
Joakim Tjernlund writes:
Scrub up use of ELF_USES_RELOCA and eliminte some unsightly ifdefs
Modify interfaces for _dl_parse_relocation_information() _dl_parse_lazy_relocation_information() and _dl_parse_copy_information() so they are all consistant, allowing for future consolidation.
Joakim Tjernlund writes:
Paul Mundt, lethal at linux-sh dot org writes:
Add missing abort instruction for powerpc
Andrew May writes:
Patch from Paul Mundt, lethal at linux-sh dot org, add sh/sh64: ABORT_INSTRUCTION definitions
Revert to scope as used by original code for now, just in case. I still don't have a good handle on why and when the different scope values should be used.
Jakub Bogusz writes:
The code for checking the rpath was not finding the rpath value correctly, since it forgot to lookup the correct value in the string table.
Use a static const char array for static strings
Fixup a badly merged update -Erik
Use 'mmap.c' instead of '_mmap.c'
Sigh. The 2.6.x kernel removed '__kernel_dev_t' and renamed it as '__kernel_old_dev_t'. And of course there is no good way to know which is in use except checking linux/version.h. Grumble.
Fix completely hosed up formatting
Remove trailing whitespace
Trim trailing whitespace
Use unsigned char * pointers
Yet more consistancy fixups
Step one, begin shuffling things around a bit
Split off the stuff that cannot use function into its own file, to make it easier to treat it specially while not bothering the rest of the code with the same constraints.
Remove unneeded forward declaration
Joakim Tjernlund writes:
Restore the library entry point so it works. It does have to be arch specific to work properly.
Thanks to Joakim's recent paches, we can now remove the FIXME
Add some permissions when creating the logfile
Cleanup whitespace and formatting
Move _dl_printf and _dl_malloc to ldso, which is a more sensible location for this stuff
Nicolas Pitre writes:
Fixup the definition of _dl_open, and move some bits back where they were, till I properly finish the next step in my evil plan.
oops, manditory forgotten patch
Rework file naming, aiming for at least a vague level of consistancy
clean trailing whitespace
Fixup header file naming
Fix function prototype to match the official ELF standard hash function
Eliminate the PIE support option, and simply support that all the time
Do not include the create_module syscall if it is not present
Update TODO list with some items for 1.0
mention valgrind/atexit annoyance
yet another todo item
Add our own copies of the include/scsi header files, per what glibc does, rather than depending on the kernel header files. -Erik
Add missing mips specific include/sys/user.h
Paul Mundt lethal at linux-sh dot org writes:
More todo list updates
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.
Avoid potential double free when locate_library_file() is used on fully resolved names
Cleanup whitespace and formatting
Fix the annoying "not a dynamic executable" problem when running ldd on libuClibc
A better fix...
Another little touch up to avoid problems...
Done free path if it equals not_found Remember to flose an fopened file
Yet more fixups..
Joakim Tjernlund writes:
Give gcc branch prediction some hits on obviously unlikely branches
Atsushi Nemoto writes:
No point in including debug info for ldso. It isn't helpful to do so since gdb can't do anything for us.
Update FAQ a bit
Add some padding on the bottom
Use the generic fork implementation on sh64
Fixup fork implementation to provide the __libc_fork symbol
This should not be inlined. This should probably use a weak alias as well...
Cris can use the generic vfork
Mips can use the generic vfork
Oops.
Provide the ldso syscalls and string funcs earlier in the list
Do not duplicate stuff from ldso.h
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.
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....
Fixup fdatasync on alpha, thanks to Alan Hourihane
Seperate out the startup stuff from the non-startup stuff. Begin converting some big ugly macros to inline functions instead
Fixup support for gcc 2.95
Alexandre Oliva writes:
Alexandre Oliva writes:
Minor change to better match recent changes to other arches
Fixup naming of '_mmap' to 'mmap' so it will properly override the symbol in common.
Update the x86 processor listing a bit, to preempt further questions about the best settings the AMD Elan and the VIA Nehemiah.
When doing symbol lookups on functions
Slightly cleaner formatting
___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....
Patch from Joakim Tjernlund:
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),
Sigh. I switched the values...
note that syscall on mips needs to be fixed
Update with the contents of a very helpful comparison of interfaces vs SuSv3 from heukelum at freemail dot nl
Fix comment
Update todo list indicating the items remaining before 0.9.27
More detail about malloc-simple
Cope gracefully with missing module syscalls
Joakim Tjernlund writes:
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.
Look in /usr/X11R6/lib as well
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.
Supply '__bzero' with 'bzero' as just a weak alias (since it is not SuSv3)
Alexandre Oliva writes:
Alexandre Oliva writes:
Based on a patch from Alexandre Oliva, allow uClibc to compile with __NR_mmap is not available (i.e. only __NR_mmap2)
Patch from Stefan Holst to fix argv[0]
Per patch from Stefan Holst, do not try to compile these syscalls if they are not supported.
glibc does not provide pppio.h, and our doing so conflicts with the ppp package
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.
We don't need these...
Cope with gcc 3.4's more aggressive persuit of attribute unused
Mention uwoody
Fix grammar and spelling
blah
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.
These headers should not be included in uClibc -- they should be part of the ppp instead.
Minor .deb updates
Jeroen Dobbelaere writes:
Fix screwed up formatting
Alexandre Oliva writes:
Change the global 'buf' to 'servbuf' since some functions in here use a local named 'buf' and we want to avoid shadowing that.
UCLIBC_COMPLETELY_PIC does nothing, so kill it
Bradley D. LaRonde, brad at laronde dot org writes:
Purge trailing white space
make certain that getpagesize() returns correct the value for mips by extracting the value from the ELF header.
Setup a _dl_pagesize value for use by staticly linked apps
As noticed by the sharp eyed Joakim Tjernlund, I stupidly hard coded 4096 instead of PAGE_SIZE. Because I'm an idiot.
Add a local '_dl_errno' to be used by syscalls in ldso, allowing useful syscall failure diagnostics.
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.
Bradley D. LaRonde writes:
Add define for SHM_HUGETLB
update libdl so it also groks the new _dl_errno
Alexandre Oliva writes:
Patch from Alexandre Oliva:
Alexandre Oliva writes:
Kill off the now obsolete __libc_vfork symbol
__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.
Alexandre Oliva writes:
Joakim Tjernlund writes:
Cope when the __NR_get_kernel_syms is undefined (i.e. 2.6.x arm-linux)
scrap the goofy time + getpid() based "randomness" and use the real thing.
Oops. Missed a spot.
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.
Philip Craig at snapgear dot com writes:
Jakub Bogusz from pld-linux dot org writes:
Stephen Hemminger from osdl dot org writes:
note new mailing list posting policy
Bradley D. LaRonde writes:
Joakim Tjernlund writes:
Joakim Tjernlund writes:
Joakim Tjernlund writes:
Whine about R_PPC_REL24 relocations, and tell people to compile shared libraries with -fPIC
Let dl-string.h include dl-sysdep.h, since it has proper include guards
Disable support for R_ARM_PC24, just like R_PPC_REL24 these should only occur when shared libs are not compiled with -fPIC
Joakim Tjernlund writes:
Update FAQ a bit
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,
Sigh. I got things working this morning, then checked stuff in from the wrong tree. Bad boy, No doughnut. -Erik
Peter Kjellerstedt at axis.com writes:
Patch from Yoshinori Sato to add H8/300 relocation types.
h8300 updates from Yoshinori Sato
Atsushi Nemoto writes:
Use MAP_PRIVATE whenever __ARCH_HAS_MMU__ is set. Only use MAP_SHARED when mmu-less.
_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.
_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.
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
update packaging a bit
Cleanup some cruft
Pete Popov writes:
Revert this stuff for now
Add sigaction for mips
Update sigaction for arm
Update todo list
Fix ftruncate64 and truncate64 for powerpc and mips -Erik
Support linux 2.6.x wide device major/minor numbers
Remove all reference to __GLIBC_HAVE_LONG_LONG
Be certain to include sys/sysmacros.h when major() and minor() are being used
Do not grovel about in the ELF header for the page size when running on uClinux, which at runtime uses the FLAT file format.
Fix screwed up indenting
Whitespace cleanup
Teach libdl to use normal libc symbols whenever possible, i.e. malloc rather than _dl_malloc, fprintf rather than _dl_printf, etc. -Erik
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
Cleanup some dead wood in the header files
cut-n-paste strikes again
As Joakim Tjernlund rightly notes, I should have used PAGE_SIZE not the hard coded value of 4096.
Add missing header file needed to define PAGE_SIZE
doh
Joakim Tjernlund writes:
Joakim Tjernlund writes:
Fixup PAGE_SIZE problems -Erik
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
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
The pagesize variable used when starting up is _not_ the same as the _dl_pagesize global, so do not alias the global. -Erik
The variable used to store pagesize is not the same as the _dl_pagesize variable in ldso, so avoid aliasing. -Erik
Be a bit more prominant about the fact that setuid handling is not quite there...
Setup __pagesize from inside __uClibc_init(), or else when registering dtors via atexit(), atexit may need to call realloc with __pagesize still set to 0. ugh. -Erik
I will always test before I commit. I will always test before I commit. I will always test before I commit. -Erik
Audit pthread.h and exclude prototypes for pthread functions that are not presently implemented in uClibc's libpthread. -Erik
Carl SHAW writes:
'pagesize' was local to dl-startup.c. In ldso.c we need to use '_dl_pagesize' -Erik
Never directly include kernel sources
Enable only for architectures where __NR_madvise is defined -Erik
Kill off all support for 'gcc -pg' / 'gprof' style profiling. There is both a size and performance penalty to profiling applications this way, as well as Heisenberg effects, where the act of measuring changes what is measured. There are better tools for doing profiling, such as OProfile, that do not require gcc to instrument the application code. -Erik
Attempt to support 'gcc -finstrument-functions', which seems much more sane than 'gcc -pg' and seems much easier to support. -Erik
The "Delete current profiling code because it is complete crap" TODO item is now done.
Make the stub profiling stuff work
Note a security item for the next release
Joakim Tjernlund writes:
Mike Frysinger writes:
Mike Frysinger writes:
Relocations of the application's global GOT entries were not being run, and only the global GOT entry relocations for the loaded shared libs were being handled. This made applications segfault when using un-fixedup symbols. After many hours debugging to track down the problem, this patch makes the mips port happy again. -Erik
Avoid multiple passes to perform mips GOT relocations, and do the whole lot in a single pass. -Erik
Fixup a couple of warnings
Only print debug stuff when asked
Update TODO list a bit
Mention FunctionCheck
Partial patch from Alexandre Oliva:
Patch from Alexandre Oliva to update the frv default config
Partial patch from Alexandre Oliva to update the frv port
Mention kernel abi selection
Dont mess with __curbrk in ldso
Restore item I erronenously removed, mention mips string funcs
Add missing imaxdiv and lldiv needed for SuSv3. Adjust ldiv to match glibc's quotient truncation behavior.
Use a more appealing name, matching the function prototype
First pass prototype removals from auditing header files: a.out.h to libgen.h (omitting complex.h for a later separate effort for the math stuff)
The 'Somebody Else's Problem Field' was just activated
uClibc gettext support is under development and really shouldn't be used by the unsuspecting masses quite yet.
We do not use dl_iterate_phdr, so no need to define it
Audit and scrub malloc.h, which was a mess
Remove stale leftovers
Implement gethostent_r
Audit and disable unimplemented stuff
Yet another bit of joy for mjn3
Disable prototypes for unimplemented functions
Doh! As noted by Mike Frysinger I was too agressive at culling stuff
Fixup URL
This patch from Mike Frysinger, extended from an earlier patch from Peter S. Mazinger implements the changes suggested by me on the uclibc list.
Remove empty file
uClibc does not support getutent_r, getutid_r, and getutline_r, and SuSv3 does not require r specify them. So kill the prototypes.
implement SuSv3 required ualarm()
Remove unimplemented non-SuSv3 function prototypes
Remove ucontext.h. We do not implement any of these functions.
Hide a bunch of unimplemented time function prototypes, and mark them as mjn3's problem. :-)
Add ualarm.c
Put back ucontext.h, but omit function prototypes for getcontext(), makecontext(), setcontext(), and swapcontext() which are marked as obsolescent by SuSv3, and are not implemented by uClibc.
As noticed by egor duda, current_menu is declared as 'extern struct menu *current_menu;' in scripts/config/lkc.h line 63, and this conflicts with static definition in mconf.c.
link to uClibc++, minor FAQ updates
mention scratchbox and openembedded
Corrent HOWTO url
Atsushi Nemoto writes:
Peter S. Mazinger writes:
We don't need this README
Atsushi Nemoto writes:
Update TODO list
Arrange to hide uClibc internals
Fix up __uClibc_init() for so that we prevent starting SUID binaries where the standard file descriptors are not opened. -Erik
Revise TODO list for the upcoming release
struct ipc_perm, as used by shmctl() when soing shared memory stuff, was incorrect in uClibc, and was 2 bytes too short. This caused uClibc shared memory stuff to not behave correctly since struct ipc_perm was included as the first member of, i.e. struct msqid_ds, so the content of that struct were all shifted by two bytes. ugh. Apparently, few people have used shared memory, msgctl(), etc with uClibc thus far, -Erik
A patch included in glibc 2.3.2's libthread_db that helps remote debugging not become confused,
Some requested additional malloc entry points
Fix grammar
Add missing definition for O_DIRECT
Use PAGE_SIZE, not 4096
Kill off ancient unused cruft
libpthread can use the normal LDFLAGS (including -s to strip it), but libthreaddb must not be stripped or gdb can't use it.
Don't use PAGE_SIZE, instead just a local BUFFER_SIZE define
Remove some accumulated ugly junk
Partial commit of a patch from Alexandre Oliva:
That last patch had some garbage in it... PIC != PIE
We can't strip libpthread or libthread_db can't help gdb debug ptheads
Patch from Paul Brook:
Remove whitespace
On Thu Dec 16, 2004 at 03:49:31PM +0100, Johan Adolfsson wrote: > What's the correct way of calling llseek/_llseek? > The manpage I have indicates _llseek and thats what the version of > util-linux > I tried use as well so compiling for uClibc fails. > Would the following patch fix it or is it the apps that needs fixing?
Add support for the Analog Devices Blackfin mmuless processor
Patch from Peter S. Mazinger to consistantly use "ASFLAGS" as the flags for all calls to 'as'
Patch from Peter S. Mazinger to simplify PIE handling
Patch from Peter S. Mazinger: rename UCLIBC_PIE_SUPPORT to UCLIBC_BUILD_PIE
Patch from psm, vapier, and solar, adding xattr syscalls
Cleaned up patch from Peter S. Mazinger adding support for -fstack-protector and -fno-stack-protector-all security options
Patch from Peter S. Mazinger: rename UCLIBC_PROPOLICE to UCLIBC_HAS_SSP
Patch from Peter S. Mazinger: Seperate out security features into a separate menu
Patch from Peter S. Mazinger: Add UCLIBC_BUILD_NOEXECSTACK support.
Patch from Peter S. Mazinger: Add pie support for mips
Cleanup for when LDSO_CACHE_SUPPORT is disabled
Make certain that the prototype for fgets_unlocked is defined
Fix typo
Remove the obsolete XATTR option
Fix thinko
Update FAQ, remove references to 'toolchain' and instead emphasize 'buildroot', which can do everything 'toolchain' could do and then some. And is actively maintained. -Erik
fix typo
clarify
Bump version number
Fixup function prototypes to match definitions in include/dlfcn.h
Remove the no-longer-needed #include <sys/user.h>
Patch from Paul Mundt (lethal) adding an initial librt implementation. I then reworked the syscall handling and made minor cleanups. With luck I've not completely broken his patch...
minor doc update
update prior to release
Why is this here?
Do not use portable (POSIX) 'cp -PRf' but instead use 'cp -dRf' since busybox does not yet support 'cp -P'
Jan Lana writes:
Patch from Bernardo Innocenti: Remove use of cast-as-l-value extension, removed in GCC 3.5.
Jean writes:
cleanup, and prevent failures due to including architecture specific header files into ldconfig when building for the host.
Update docs for release
Mention the new bug tracking system
fix grammar
Fix spelling
prevent people asking what a loose-meat sandwich is (its another name for a sloppy-joe' in case anyone was wondering)
Per http://bugs.uclibc.org/view.php?id=12: Some newer archs only have umount2
whitespace cleanup
Per http://bugs.uclibc.org/view.php?id=15, patch from kergoth: Sometimes it is desirable to build ldconfig non-static.
Mention uclibc.org as the defalt download site
When there is no umount syscall, but umount2 is available, then try to emulate umount() using umount2()
Use HOSTCC for seting up the syscall list
Hi Erik and Manuel
Always use the target CC when generating include/bits/sysnum.h, since some arches like mips have an include/asm/unistd.h that depends on #defines provided only by gcc. Therefore, since we may need to generate include/bits/sysnum.h before the target CC is actually existant when bootstrapping a toolchain, we must ensure that include/bits/sysnum.h is rebuilt every time we run make. Sigh. What a pain. -Erik
Restore it so we get gdb [Thread 1026 (Missing) exited] messages again, while leaving the __linuxthreads_death_event() call disabled, as it still breaks gdb.
Update release target for subversion
Mention subversion and provide access info. Remove mention of cvs. -Erik
Update the year
ordering update
simplify anon url
fix typo
Since libdl is pretty small, and not likely to benefit from mklibs.py and similar, lets just remove libdl_pic.a and avoid the issue
Merge pt-machine.h for the blackfin from the Analog source tree.
Some uClinux architectures do not define pivot_root
point to buildroot webpage
doh! We'll get this one right yet...
Trim off whitespace
split the float wrappers into separate object files
Disable float wrappers for functions that are not presently implemented in libm
Make mips/mipsel syscalls no longer complain about the "use of memory input without lvalue in asm". Give the asm an lvalue so it can be happy.
Fix up x86 so it compiles again.
Make mips at least compile
Add an initial pass at a maintainers list
Fix wierd mix of tabs and spaces
point to osuosl
Cleanup the mips syscalls a bit more, and fix a few annoying warnings.
minor cosmetic cleanup
Only dl-startup.c should be using the SEND_STDERR macros, which are intended only for early debugging support.
fix a thinko -- we cant use
early debug stuff goes to stderr, not _dl_debug_file
Rework the dl-startup.c ldso early debugging macros to be significantly less horrible
Don't write out the terminating NULL char
On some wierd arches (i.e. mips), none of the early debug stuff works at all, so disable the whole lot.
Further rework the mips syscalls
This update gets mips working again.
Adjust indentation
Add missing definition for DL_OPENED
Correct typo, matching correction made to elf.h
trim trailing whitespace
This might actually now be thread safe, assuming I havn't broken it.
Cleanup error case a bit
Fix it so uClibc returns multiple ips via h_addr_list, This fix, based on this patch http://bugs.uclibc.org/view.php?id=104 makes it so uClibc fills out round robin dns lists for applications such as nslookup:
On mips, gdb explicitly looks for the symbol "__dl_runtime_resolve" so change the name of our mips resolver function to match gdb's expectations.
It turns out that the problem that required us to use --enable-sjlj-exceptions was specific to gcc 3.3.3. Later toolchains fixed the regressions; thus, we do not need to worry about this TODO item anymore.
The default static buffer sizes are too small to handle the 8 entries returned by 'nslookup www.yahoo.com' and 'nslookup mail.hotmail.com', and thus we currently return ERANGE when trying to lookup some of the most popular hosts on the planet. Whether these sites deserve to be popular is a question I'll leave for someone else to worry about.
This file is no longer used. kill it.
Back out nptl changes, which for now will be done in branches/uClibc-nptl
Finish up reverting NPTL
This commit breaks the entire world (yet again). Calculate the position of envp in C code based on argv and argp. No need to caclulate that in asm for N arches. This way, we better match what glibc does. All arches will need to be fixed to match up with this change.
minor tweak for correctness
With a bit of luck, this might just get mips working again
erik 0, stupid 1
Fix a broken link
Finish updating mips for the new ABI
Dunno yet if I got this right or not, but it now at least has a chance of perhaps working...
silly rabbit
rework arm crt1 properly this time around
oops. I'd left some junk in there
Based in part on related code in glibc, this might even be correct.
Add missing file needed for arm to compile
Based on start.S from debian's glibc, this gets arm working properly with the new ABI
Jim Ramsay writes: <lack> andersee: Yes. But why does it expose the prototype for _sys_siglist but NOT provide it in the library? It should either be put into the library or taken out of the header. <lack> I just replace the prototype for _sys_siglist with '#define _sys_siglist sys_siglist' and it seemed to work.
Update the todo list for 0.9.28
Do not define 'AUTOCONF_INCLUDED'
Bump version in preparation for the upcoming release
per suggestion by psm, remove the variable DYNAMIC_LINKER
Patch from Faidon Liambotis to update the debian stuff
We do not supply a BSD style getloadavg() function
Just quote the whole darn thing so we can print any error msg we want
For current kernels, we just use the getcwd() syscall. For old 2.0 linux kernels, we need this bit to make the non-syscall version that recurses up the directory path work properly. Thanks go to Harald Kuethe for sorting this out.
We _must_ copy include/asm/ and include/linux/ when installing headers, since once we build uClibc against those, they become part of uClibc's ABI and must be included as part of the install.
update the uClibc webpage
point to uclibc.org
update developer verbage
remove redundant paragraph
Allow ldconfig.host to build ld.so.cache for target, regardless of the target system's byteorder
Do not stub out functions for mmu-less systems. Hide all prototypes for functions disabled on mmu-less systems.
oops, missed a spot
ldd does not build due to missing fork() on MMUless. Since ldd merely does a fork/exec, fork() can be trivially replaced with vfork()
fix url
Lets not just paper over this. Add implementation of __xpg_sigpause()
It was pointed out to me that http://www.uclibc.org/copyright.txt yields an Error 404. So add in the copyright statement presently included on busybox.net
Let the #define do all the work
Fixup byte order handling. Not all architectures define __BIG_ENDIAN__ so i.e. on big endian mips the code is compiled as little-endian and the wrong half of the 64-bit point value is examined to check for NaN, etc. This bug also broke fpclassify(), isfinite(), isnormal(), isinf(), finite(), and signbit().
silly bug
Joseph S. Myers writes:
Joseph S. Myers writes:
Some minor updates. Looked pretty good as-is.
fixup a big 'ol memory leak in search_for_named_library()
cleanup whitespace
micro-optimization -- we already know how long the source is
doh, forgot to copy the final \0
prune trailing whitespace
Atsushi Nemoto writes:
references to the older "Library GPL" have already been changed to "Lesser GPL"
gcc 4.1.x is apparently miscompiling gnu glob on mips. This ports the latest and massivly bloated greatest from glibc. And fixes things so the gnu glob interface is no longer the default.
bug 469 was fixed by Atsushi Nemoto
cleanup description
Change symbol 'NOSTRIP' to 'DOSTRIP' since the double negatives on i.e. NOSTRIP=n gets a bit confusing.
The ltp testsuite fails on x86 without the modify_ldt syscall
minor updates
fixup my copyright notice, trim stale remnants of older notices which I had clearly run search/replace on that were cluttering things up.
fixup my copyright notice, trim stale remnants of older notices which I had clearly run search/replace on that were cluttering things up.
replace my @debian.org addr with @uclibc.org. Fixup license on readelf and ldd to again state that they are GPLv2
bump the version, in preparation for actually cutting a release at some point in the relatively near future.
remove jump relocs, with minor related cleanups
patch from psm: - malloc/realloc/free are not prepared to be hidable in trunk, you can't use libc_hidden_proto(x) for them - using libc_hidden_proto(x64) LFS unguarded will fail because the header does not provide the prototype - if you are using libc_hidden_proto(collated_compare|prefix_array), you also need libc_hidden_def|_weak(x) after the function itself, the result being to provide a hidden __GI_collated_compare and a visible collated_compare, for this case I do not consider this necessary, especially that collated_compare is hidden already (I have chosen to prefix them with __ to know that they are intended to be internal only, against the practice in glibc, you could go without prefix as well)
psm writes:
bits/profil-counter.h and bits/atomicity.h are leftovers from the old gprof based profiling I nuked ages ago since tools like oprofile are non invasive and work so much better.
tweak a few syscalls using varargs
fix bug 1012 as noted by moschny
The readahead syscall requires LFS/64 bit support
Atsushi Nemoto writes: The "make headers_install" in kernel 2.6.18 does not export asm-mips/asm.h, asm-mips/regdef.h and asm-mips/sysmips.h. Do not use them. We can use sys/asm.h and sys/regdef.h instead. The sysmips.h part of this patch is came from glibc 2.4 code.
Joseph S. Myers writes: There are many directories called "CVS" checked into uClibc SVN, probably as a side-effect of importing a CVS checkout. I don't think these are particularly useful to have checked in.
some updates noting things that should be done
In bug 622, JohnAta writes: In 2005, Congress passed a law so that in 2007, the second week of March starts DST. Previously, it was the first week of April. The uclibc time library routines apparently have not been updated to reflect this new processing. Using the current version of uclibc, on March 11, 2007 the reported time will be incorrect.
based on a patch from Atsushi Nemoto: There is a mismatch of struct msghdr between the kernel and libc. In a 64-bit environment, the size of msg_namelen is 4 for all, but the size of msg_iovlen and msg_controllen is 8 bytes for the kernel and for glibc, but 4 bytes for uClibc. Fix size for the 64bit case.
mips64 patch from Atsushi Nemoto: It seems these codes dropped when importing from glibc. This is required for mips64.
mips64 patch from Atsushi Nemoto: The predefined _MIPS_SZPTR (32 for O32 or N32, 64 for N64) can be used for WORDSIZE. This is came from glibc code.
mips64 patch from Atsushi Nemoto: The kernel include/asm-mips/posix_types.h defines __kernel_ino_t as unsigned long.
mips64 patch from Atsushi Nemoto This is a bit twisted dirent.h can be used for both getdirent and getdirent64 case on mips/mips64.
mips64 patch from Atsushi Nemoto: Import mips64 version of memset, memcpy from glibc.
mips64 patch from Atsushi Nemoto: The mips64 N32/N64 ABI can pass much arguments via registers.
mips64 patch from Atsushi Nemoto: The mips64 N32/N64 ABI have a bit different register usage convention. Also the register size for these ABI is 8 byte. Use ld/sd for them.
mips64 patch from Atsushi Nemoto: miscellaneous asm routines
mips64 patch from Atsushi Nemoto: Adjust for mips64 kernel.
mips64 patch from Atsushi Nemoto: No pread64, pwrite64 syscall for N64 ABI. Make __libc_pread and __libc_pread64 use same syscall.
mips64 patch from Atsushi Nemoto: 64bit MIPS ELF format tweaks. (from glibc) Elf32/ElfW convertions. asm code adjustments.
mips64 patch from Atsushi Nemoto: Add selection of 3 ABI. CPU_CFLAGS is needed to generate correct sysnum.h. Fix test/Rules.mak.
mips64 patch from Atsushi Nemoto: We should use "PTR_LA" instead of "la" for N64 ABI.
mips64 patch from Atsushi Nemoto: We should not use old stype ipc_perm for 64-bit mips kernel.
I failed to check the patch adding support for the new (stupid) US 2007 daylight savings time rules when xlocale was enabled. Fix compile error.
arm thumb: Put the call_via_rx code into each executable - call_via_ip cannot possibly work if called through the PLT! ldso requires this code too as it is not linked with the crt stuff and thumb ldso does make calls via a register.
This change reimplements the ARM _dl_linux_resolve entry point - this is called to resolve DLL PLT entries. The assembler is changed to be thumb compatible and slightly faster, the C function, _dl_linux_resolver (note the extra r) is changed to take a byte address in place of an 8 byte count (faster in caller and callee, and slightly easier to understand).
Paul Brook writes:
revert rev 16527 changes to ldso/ldso/dl-hash.c
remove redundant headers local to libpthread, causing header file content skew between the versions
bits/kernel_stat.h is for internal uClibc use only, fix a few other minor include file issues
prepare to later remove bits/kernel_types.h from bits/types.h
update from mjn3
stdio update from mjn3
Major cleanup of internal mutex locking. Be more consistant in how we do things, and avoid potential deadlocks caused when a thread holding a uClibc internal lock get canceled and terminates without releasing the lock. This change also provides a single place, bits/uClibc_mutex.h, for thread libraries to modify to change all instances of internal locking.
Major cleanup of internal mutex locking. Be more consistant in how we do things, and avoid potential deadlocks caused when a thread holding a uClibc internal lock get canceled and terminates without releasing the lock. This change also provides a single place, bits/uClibc_mutex.h, for thread libraries to modify to change all instances of internal locking.
Fill in a few more of the missing pieces...
__resolv_lock is supposed to be shared, not static
finish the pthread locking cleanups. This should get things compiling again though I still need to silence the warnings about _pthread_cleanup_push_defer
this stuff is for uClibc internal use only
add some warnings to archs that need a bit of attention
Sorry psm but contrary to commit 12927, kernel provided syscalls are NOT suitable for user-space. The libc ones are the ones that application code must use. If a problem is found with the libc ones, then the libc syscall macros should be fixed.
Take Mike Frysinger's comments into account -- make certain that user applications stop using _syscall#() and use syscall() instead. Cleanup internal handling of syscall includes to use the correct header file.
seems this is the newfangled way to tell folks this stuff is really really and we mean it this time, for uClibc only
silence a lot of warnings and fix a few genuine bugs while I'm at it.
Add missing sys/types.h header
oops, use __pthread_mutex_unlock() not pthread_mutex_unlock()
these weaks are also needed in libc.so for the time being
mostly revert the locking changes for 'malloc', as the implementation does not easily lend itself to becoming complete pthread cancelation safe without first investing in some deep and serious thought... The other malloc implementations are pthread cancelation safe, and this one is mostly used for uClinux, where the lack is at least less likely to be a common problem.
sort out a few issues that show up on mips
Fix/disable locking when pthreads is disabled
Patch from Bernhard Fischer: fix compilation if PUTC_MACRO and/or GETC_MACRO is turned off
fix obvious bug in ipv4/ipv6 resolving. When not using AF_INET, gethostbyname2_r tries to resolve an ipv6 address from /etc/hosts using get_hosts_byname_r, but with AF_INET instead of the supplied address family. This returns ipv4 addresses marked as ipv6 ones. Fix from nbd.
Ronald Maeder writes:
fix lock naming
use the correct lock for access to __nameserver[]
Ronald Maeder writes: I have successfully made gethostbyname_r(), res_init(), and gethostid() fully reentrant. In addition, I have added a NULL check to inet_aton(). This is where SEG FAULTs were coming from when gethostbyname_r() was called.
use sane line breaks
Miguel Angel Alvarez writes:
do not use ghbn_buf after it goes out of scope
revert 17821, wait for better test cases
note the release of uClibc 0.9.28.2
fix the date
Add a hack for compiling a 32 bit user space with a 64 bit kernel on x86_64
mention the uClibc 0.9.28.3 release
Erik Andersen (11):
Initial revision
Patch from "D. Jeff Dionne / VE3DJF" <jeff(a)rt-control.com> to allow uC-libc to compile under x86. -Erik
Some makefile updates to make it behave a bit better/consistently. -Erik
Work in progress -- cleanups. -Erik
Finished porting stuff to x86 and supporting the Linux 2.2 kernels. It now compiles.... -Erik
Add in the "_start" symbol in asm. Fix a makefile (that needs to be abstracted I suppose for platforms (though I am doing fine w/o libcrt*) and add function prototype for exit into stdlib.h (it was missing... odd). Compiles vs uC-libc are less noisy now. -Erik
Add in a test dir. -Erik
Add sysinfo support. -Erik
Some more makefile fixes. -Erik
More tests. Seems malloc isn't working... -Erik
More housecleaning. -Erik
Felix Fietkau (2):
AVR32: declare missing result variable
inet: fix getting the nameserver from _res state after res_init.
Filippo ARCIDIACONO (4):
tests: add OMIT logic to remove compilation flag.
tests:libdl: add a new test for symbol scope issue in dlclose
libc: deal with aux vect inside __uClibc_main only if !SHARED
libpthread: pthread_exit in static app. segfaults
Filippo Arcidiacono (34):
test_dlopen: Remove extra -lpthread from LD_FLAGS for dltest{2}
test_dlopen: Remove extra -lpthread from LD_FLAGS for dltest{2}
libc: Fix l64a to return the correct buffer pointer
libc: Fix l64a to return the correct buffer pointer
ldso: Fix DL_BOOT_COMPUTE_DYN macro
ldso: Do not adjust dynamic section entries unnecessarily
ldso: Add implementation of ld.so standalone execution
ldso: Rework global scope handling and symbol lookup mechanism
ldso: Add support for LD_WARN and LD_TRACE_PRELINKING
ldso: Do not add the ld.so at the end of the loaded modules list
ldso: Add runtime prelink support
ldso: Fix loadaddr and mappaddr when prelink support is enabled.
ldso: Extend prelink support for all other achitectures
libc_sh: add __tls_get_addr to static libc (SH)
libc: fix linker script generation for libubacktrace.so
libdl: fix tls symbol lookup in dlsym
ldso: fix _dl_debug_lookup to handle protected symbols
test_nptl: fix expected result for tst-clock2 test
test_nptl: fix expected result for tst-cputimer[123]
libdl: fix local symbol's address handling in dladdr
sh: fix build in !NPTL case
sh: use the common implementation for longjmp
libc: make common longjmp usable with NPTL
libdl: fix size parameter when unmap library in dlclose
libdl: fix memleak for local scope of dlopened's needed libraries
ldso: fix fdpic support broken from prelink patch
ldso: sh: handle _dl_skip_args in linker startup instead of __uClibc_main
ldso: preload standard path library with setuid bit set
libc: sh: fixed typo in ucontext header
librt: re-add SIGCANCEL to the list of blocked signal in helper thread
arm: clone: restore stack pointer just after return from syscall
libdl: fix dlopen implementation from statically linked application
libubacktrace: fix backtrace for statically linked application
libubacktrace: fix build due to some typos
Florian Fainelli (1):
libc: add {get,set,swap,make}context user context manipulation functions
Freeman Wang (1):
malloc: fix race condition and other bugs in the no-mmu malloc
Gabor Juhos (2):
Fix use-after-free bug in __dns_lookup
MIPS: restore INLINE_SYSCALL macro
Giuseppe Cavallaro (3):
sh: Fix up optimized SH-4 memcpy on big endian.
sh: fix endianess and optimise the SH4 memcpy
sh: fix memcpy saving/restoring FR12-FR15 registers
Gregory Fong (8):
ldso/libdl: Also include dl-tls.h for for !SHARED.
test/math: Select correct ULPs for mips32/mips64
test/math: don't try to build test dep as test
test/math: add libm-test-ulps-{arm,mips32,mips64} files
ldso/mips: actually print results of each relocation
ldso/mips: Remove redundant LD_DEBUG prints
ldso: Add remaining relocation types to the table
test/math: Adjust arm tests for older ULPs format
Guillaume Bourcier (1):
libc: fix daylight saving time handling
Gustavo Zacarias (6):
Rules.mak: Fix setting arch native bit
powerpc: update ptrace.h to latest from glibc
sparc: update ptrace.h to latest from glibc
powerpc: update ptrace.h to latest from glibc
sparc: update ptrace.h to latest from glibc
sparc/clone.S: guard tcb-offsets.h include with RESET_PID
Haavard Skinnemoen (5):
Add myself as co-maintainer for the AVR32 architecture
From: Geoffrey Wossum <geoffrey(a)pager.net>
avr32: Use HIDDEN_JUMPTARGET() macro in bzero.S
avr32: splice(), vmsplice() and tee() support
avr32: Put underscores around asm, inline, etc.
Hans-Christian Egtvedt (30):
Added Hans-Christian Egtvedt as maintainer for the AVR32 architecture
Use HIDDEN_JUMPTARGET define instead of __GI_ directly in AVR32 files
Updated email address for Hans-Christian Egtvedt, AVR32 maintainer.
Fix whitespace damage in Config.avr32.
Fix whitespace damage in AVR32 part of ldso.
Fix whitespace damage in AVR32 string assembler optimized functions.
Fix whitespace damage in AVR32 pt-machine.h in libpthread, linuxthreads and linuxthreads.old.
Fix whitespace damage in AVR32 libc bits header files.
Fix whitespace damage in AVR32 libc sysdeps sys header files.
Fix whitespace damage in AVR32 in libc sysdeps AVR32 specific Linux files.
Fix whitespace damage in top level Config.in.
Fix indentation of comment in AVR32 memmove assembler optimization file.
avr32: add defines and prototype function for sync_file_range syscall
Ensure that headers are generated before libs
Use more generic redirecting of output in the test suite
Fix bad commit 23574 for io redirecting when running the test suite
Replace inline with __inline__ in AVR32 pt-machine.h header file
Resync pt-machine.h for AVR32 linuxthreads and linuxthreads.old
Fix whitespace damage in file.
Remove commented out CFLAGS assigment which is also set on next line
Add include to silence compiler warning when compiling clone.c for AVR32
Add hint for read ahead function in fcntl.h for AVR32 arch
Make sure functions in dl-sysdep.h for AVR32 are always inlined
Prefix variables defined in INIT_GOT define for AVR32 arch
Sync clone() function declaration for AVR32 with sched.h declaration
Add extern reference to __libc_sigaction in sigaction.c for AVR32 arch
check if USE_TLS is defined before use
check if USE_TLS is defined before use
avr32: add varargs handling of prctl syscall
avr32: add varargs handling of prctl syscall
Henning Heinold (5):
Makefile.in: Make install_dev depend on install_runtime.
math: isnan is a C99 feature
libubacktrace: fix backtrace support on arm-eabi, which needs libgcc_eh linked too
libc: flesh out linux scheduler functions
libc: add non standard execvpe function
Hiroaki KAWAI (1):
eventfd.h: Use new "bits/" scheme for arch-specific flags
Ingo van Lil (2):
i386: store errno value before using __set_errno()
Immediately try next nameserver on recv() failure
Ismael Luceno (1):
librt: add posix_spawn support
James Hogan (2):
mmap()->sys_mmap2: do unsigned shift of offset
update ptrace.h to latest from glibc
Jason Woodward (4):
Fix e500 fpu libm build
honor UCLIBC_HAS_FENV for e500
libubacktrace: Conditionally link libgcc_eh
Fix redefinition of ioperm and iopl in stubs.c and arm/{ioperm.c,iopl.c}
Jean-Christian de Rivaz (2):
Add eventfd support.
Add stub for eventfd.
Jian Peng (1):
test/math: add fallback to libm-test-ulps-generic logic
Jie Zhang (3):
Blackfin: fix generation of Scrt1.o for FDPIC
Blackfin: no need to load P5 for shared FLAT
Blackfin: add support for automatic loading of L2 SRAM regions
Joakim Tjernlund (203):
This should fix the dlsym problem Peter van Hoyweghen reported. However RTLD_LOCAL still doesn't work. Everything is RTLD_GLOBAL.
From: uclibc-bounces(a)uclibc.org on behalf of Peter Kjellerstedt [peter.kjellerstedt(a)axis.com] Peter Kellerstedt writes:
Oops.
Mike Frysinger writes: while playing around with Gentoo on uClibc, i hit some troubles with ldconfig
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 :)
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 ...
Revmoved _dl_brkp and _dl_envp. They are not needed anymore.
_dl_get_last_path_component: handle "" strings and optimze it.
_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.
Forgot _dl_memcpy in previous checkin.
Optimze _dl_memset() for PowerPC. Other arches may also benefit from this iff it can do unaligned stores.
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.
Fix make clean rule.
Let ldso decide if it should relocate itselft a second time. This is needed if ldso should use libcs malloc whenever possible.
David McCulloug writes: "There's a bug in the SH asm, it calls into 'C' code without preserving all the important scratch registers. I have been meaning to double check the changes as I think more registers need to be saved, then I was going to send it back to uClibc. From the sound of it this isn't your problem, but you never know. Attached is the patch as it stands for the loader on SH."
Clean up the _dl_boot code and make it similar to arm and sh.
This is now done in ldso.c
Oops, forgot to remove unused variable.
Move the app specific stuff from dl-startup.c to ldso.c.
Move "debug_addr" ptr from dl-startup.c to ldso.c
Remove poor man's malloc. Not needed anymore.
Accunt for ELF_MACHINE_PLTREL_OVERLAP when relocating ldso.
Hopefully fix Laszlo and Jacobs dlopen problem.
Patch from Stefan Allius: Remove unused function parameter in ldso. Remove echo option '-e' since it is not supported on Solaris.
Stefan Allius writes: "I fixed the _dl_parse_copy_information in the same way than for the powerpc and it works fine for me. You may luck at the patch for the powerpc/elfinterp.c, where I change the paramter of a dl_dprintf statement. Now we use the same parameters than for the relocation copy."
Added test for RTLD_GLOBAL flag in _dl_find_hash(). Fixed a bug in libdl.c where the RTLD_GLOBAL was assigned wronly.
Let ldso find libc's malloc function and set _dl_malloc_function. This removes some crap in libdl.c(and future libs which needs to access ldso functions). What do you think?
As Mike Frysinger notes, this code is still needed. I misread this code and removed it, sorry.
Forgot to commit this file. Patch from Stefan Allius.
#include "dl-startup.c into ldso.c, making ldso one compilation unit. Now all functions and vaiables can be made static to reduce relocs. Basicly, all variables should be merged into one struct variable and then export that struct. Exported functions should be exported as functions pointers in the above struct. This will reduce the number of relocs inside ldso to a handful.
Preliminary PIE support for powerpc, i386 was used as template. Requested by Peter Mazinger. Testing wanted.
Typo fix from Peter Mazinger.
Remove unused variables. From Peter Mazinger.
First attempt to fix the INIT/FINI ordering. Fingers crossed :)
Second attempt to fix the INIT/FINI order. This time I think I got it right :) This needs testing with apps that have complex dependencies.
Don't allow undefined global symbols to pass(all archs needs fixing). If you are using buildroot and soft floating point, you may have to rebuild the libm.so library, copy it to staging_dir/lib and rebuild your application.
Don't allow undefined global symbols to pass(all archs needs fixing, but powerpc). If you are using buildroot and soft floating point, you may have to rebuild the libm.so library, copy it to staging_dir/lib and rebuild your application.
Bugfix: Add r_addend to final address. The r_addend is mostly zero but can be nonzero for JMP relocs as well. All Rela arches need to do this, test and send a patch :)
Formatting cleanups from Peter Kellerstedt.
Added back dl_iterate_phdr in ldso(with some small changes). Someone needs to test if it works to build and run gcj.
Make powerpc look more like the other archs.
Don't allow undefined global symbols to pass. Move COPY relocs back to _dl_do_reloc().
Make do_rem() safe. From Peter Kjellerstedt.
White space and printouts cleanup. From Peter Kjellerstedt.
Don't allow undefined global symbols to pass. Move COPY relocs back to _dl_do_reloc(). White space cleanup.
Add bswap_64 macro and uClibc_page.h. From Peter Kjellerstedt.
Remove /usr/X11R6/lib from default list. Move /lib and /usr/lib first in ld.so.cache. Ignore duplicate /lib and /usr/lib in ld.so.conf
Make ldd work for ET_DYN executables. From Peter Mazinger.
Remove /usr/X11R6/lib from search path. Search in UCLIBC_RUNTIME_PREFIX"lib" before UCLIBC_RUNTIME_PREFIX"usr/lib".
Oops, typo. Thanks to Peter Kjellerstedt.
Atsushi Nemoto writes: Hi. I found a mismatch between uClibc and kernel in semctl definition.
Peter Kjellerstedt writes: After the addition of a configuration option for enabling the support of /etc/ld.so.cache, I thought it might be a good idea to add one for the support of the /etc/ld.so.preload file too. So here it is.
Peter S. Mazinger writes: Hello!
PIE option correction for Config.in. From Peter Mazinger.
Remove unneeded -D<somedefine>, and use instead #ifdef __somedefine__ From Peter Mazinger.
Puts common defines into dl-defs.h (in ldso/include) from dl-elf.h and dl-cache.h and make use of it. Also disables the lib-path-redundancy check for the case the cache is not used. Makes use of _PRELOAD_FILE_SUPPORT. From Peter Mazinger.
Peter S. Mazinger writes: Hello!
Peter S. Mazinger writes: The attached patches make iconv use XXFLAGS and adapts ldd.host to cvs.
Add type libc0 to cache_print(). Always strip trailing slaches(/) from paths read from ld.so.conf.
Don't complain if ld.so.cache is missing.
Peter S. Mazinger writes: Corrects libpthread_db name (I do not know why libpthread_db.so uses libpthread_db.so.1 instead of libpthread_db.so.$(MAJOR_VERSION) as soname)
Remove usage of _dl_parse_copy_information() from generic code. Remove definition of _dl_parse_copy_information() for powerpc. Remaining archs can do the same. Make debugging output of "relocation processing: xxx" a bit more sane.
Remove _dl_parse_copy_information() for CRIS per Peter Kjellerstedts request.
Don't use ld.so.cache for SUID programs.
Undo previous change. Leave SUID programs alone until I know what to do with them.
Mark Rakes writes: without LDSO_CACHE_SUPPORT turned on, LDSO_CONF and LDSO_CACHE are not defined anywhere, but still used by ldconfig.c This patch allows ldconfig to build again, although there may be a cleaner way to fix this????
Remove unused stuff. From Peter Mazinger.
Don't SEGV if library not found.
Peter Mazinger writes: The attached patch is an updated version of an earlier sent patch It solves the problem that the target utils (ldconfig/ldd/iconv, readelf is not handled, but can be easily added) are not built w/ the newly created [S]crt[01].o files.
Peter Mazinger writes: The attached patch generalizes the use of PIE (all archs are brought in sync that use/mention it: x86/ppc/frv) and makes use of it building the target utils.
hmm, somehow cvs lost this file in the previous commit.
unmap ld.so.cache when dlopen() returns.
- Remove dynamic_size from struct elf_resolve. - Replace all open coded dynamic handling with a function. Reduces size. - Fold special MIPS dynamic code into the dynamic_info item. - Add RELRO support. - Support linking with "-z now". - prepare for DT_RELACOUNT/DT_RELCOUNT optimization. - Add -z now to ld.so linking, this is what ld.so does anyway so let the linker know that.
Add RTLD_LOCAL support for dlopened libs. Reported by Andrew de Quincey, who has been most helpful getting this sorted out, thanks. Thanks also to Peter Mazinger who did alot of testing.
Add BIND NOW support to MIPS.
Make __builtin_return_address() return NULL at top of stack frame. This will make backtracing possible.
Oops, remove extra sigaddset() call. Don't know how that one got there.
Sync with latest GLIBC.
Fix death event reporting properly. Now GDB is happy and death events are reported as [Thread 5126 (LWP 192) exited] without GDB bailing out.
Add THREAD_SELF definition to PPC. This should make threads on PPC a bit faster.
Use DT_RELCONT_IDX to optimize the relocation of R_PPC_RELATIVE relocs. All RELA arches can probably copy this. REL archs will have to delete the "+ rpnt->r_addend" from the loop.
Force suid apps to do unlazy binding of the PLT relocs. See http://bugs.gentoo.org/show_bug.cgi?id=71609 for more details. Reported by Peter Mazinger.
Generalize optimized relative reloc procesing. Add elf_machine_dynamic() and elf_machine_load_address() for all archs. elf_machine_dynamic() replaces the #ifdef mess to get at the GOT. elf_machine_load_address() is needed to execute ldso directly, this is not complete yet.
Simplify PT_INTERP handling. Add prototype for _dl_boot()
Oops, fix typo.
Same typo here.
Fix MIPS initial GOT relocation.
Add _dl_boot() prototype.
General arch cleanup and prepare support for standalone execution of ldso. Added new asm for MIPS to be tested. All arches should retest.
Fix ldso for MIPS.
Forgot to commit the arch cleanup changes to m68k
Remove dead code.
Move ldso FINI handling into _dl_fini(). Add #ifndef _DL_DO_FINI_IN_LIBC around registering _dl_fini with atexit(). This is a preparation to move the FINI handling to libc.
Prepare for moving ldso FINI handling into libc. #define _DL_DO_FINI_IN_LIBC to enable(the arch specific part needs to be in place first).
Prepare for moving ldso FINI handling to libc by passing _dl_fini. This should not break ABI. Minor cleanup as well.
Pass _dl_fini function ptr to __uClibc_start_main().
Prepare for moving ldso FINI handling to libc by passing _dl_fini. This should not break ABI. Minor cleanup as well.
Pass _dl_fini function ptr to __uClibc_start_main().
Moved the addition of load address from the fast path where possible. This will also make ldso smaller. However the patch touches all archs and I have only tested PPC and x86.
Optimize _dl_elf_hash(), both smaller and faster. Mostly taken from glibc.
Prepare PowerPC some more for standalone exection of ldso. Note that every arch that wants to support standalone execution needs to align its stack pointer in crtX since ldso will adjust the stack pointer when adjusting argc and argv in standalone mode.
Remove __FORCE_SHAREABLE_TEXT_SEGMENTS__ hack from ldso itself.
Fix bug 214, reported by aurel. This is a major update that possibly break other apps. Please test. Send a LD_DEBUG=1 log if there is a problem.
Cleanup library loading.
Fix dlopen to handle circular dependency libs. Wouldn't surprise me if something else broke. I hate libdl :(
Fix bug 222: Move all archs to newer __IPC_64 interface for {msg,sem,shm}ctl syscalls. This won't work on 2.2 kernels(I think).
Hopefully fix the problem reported by Peter Mazinger, see http://uclibc.org/lists/uclibc/2005-May/011667.html for details. Not tested by me but I am sure Peter will :)
SHMLBA is now defined by arch dependent bits/shm.h file so remove this one. MIPS is the only one defining SHMLBA differently.
Fix debug macros.
Pass main function ptr from crt1 to __uClibc_start_main. Kill old crt0/__uClibc_main.
Update PowerPC to new ABI.
Enable new FINI processing. ldso now passes a FINI function ptr to crt. Only PowerPC and x86 support this currently.
Adapt startup code in x86 and PPC to almost match glibc. _init vs. __libc_csu_init and _fini vs. __libc_csu_fini remains to do.
Prepare for standalone execution of ldso.
Fix "off by one" bug.
Removed -z defs as a more general solution is in the works.
Add PIE support to ARM. From Peter Mazinger
Fix PPC wrt new __uClibc_start_main.
Adapt x86 to new __uClibc_start_main.
Clean it up a little.
Pass the aligned stack ptr, not the unaligned.
Add back .size for _start
Add back .size for __start
Add patch at bugs 274. From Peter Manzinger.
I added, then removed and now I add this again :). Hopefully I got it rigth this time.
gcc says spinlock.c:35: warning: matching constraint does not allow a register
fix warnings like td_thr_tls_get_addr.c:30: warning: `__used__' attribute ignored
Filter out any -z defs since this lib will have undefined symbols that are in gdb.
Add Peter Mazinger fini/crt compat patch. Select DL_FINI_CRT_COMPAT to be able to run apps built with 0.9.27. This also renames __uClibc_start_main to __uClibc_main. This compat option should be removed some time after 0.9.28 is released.
Fix bug 60
Initial support for both RUNPATH support. RPATH sematics changed to match RUNPATH. Only difference is that RPATH is searched before LD_LIBRARY_PATH and RUNPATH after. This is not complete but better than the current mess(I think).
Add debug printout of RTLD_GLOBAL and RTLD_NOW flag.
Remove TEXTREL relocations for ARM. Hide __syscall_error from outside libc. From Peter Mazinger.
Fic gcc 4.0 compilation. Still no confimation that this works on gcc 4.0 but I don't want to wait anymore.
Hopefully fix PIE apps.
Change L_Scrt1 to __PIC__
Change L_Scrt1 to __PIC__
Delete old stuff.
Change L_Scrt1 to __PIC__ and delete old crt0.S
stack_end in __uClibc_main must point to where argc is.
Oops.
Add __libc_stack_end to ld.so. The libc.a version remains to do. sjhill, feel free to comment :)
Minor cleanup.
declare init/fini as weak if __UCLIBC_CTOR_DTOR__ is turned off
Add __libc_stack_end to libc.
Oops, fix link fail.
Quick and dirty hack to prevent ld.so from beeing loaded twice. Bug exposed by the new __libc_stack_end feature in libc.so.
Fix bug 358 by protecting _dl_symbol_tables as suggested.
Add missing #include <bits/wordsize.h> and change __kernel_time to __time. Minior WS touchup also.
s/__kernel_time_t/__time_t
Add dependency on ld-uClibc.so.0 for libdl.so. Remove __attribute__ ((__weak__)) from imported ld-uClibc.so.0 symbols.
Remove hardcoded ld-uClibc.so.0 name in ldso.
Remove SYSTEM_LDSO option since it no longer works.
Removed hardcoded ld-uClibc.so.0 in uClibc. From Peter Mazinger.
Add utils in make clean rule. From paravoid.
Fix bug 387, missing _dl_progname for static apps.
Make uClibc vfork() use kernels vfork() instead of fork().
Hmm, things broke with vapiers update. Lets make it compile and let vapier worry about the rest :)
Frank Mehnert writes: I use an implementation for malloc()/free() which is sensible about using data after freed. In libdl.c, rpnt1->next->next is accessed after rpnt1->next is freed. Attached patch fixes that problem.
asierllano writes in bug 370: The gcc compiler has deprecated the type __uint128 for 32-bits platforms. Due to the fact that this type was introduced in gcc-3.1 it is better to drop its use. (glibc has the same problem and uses this same solution).
Change to glibc way of defining syscalls. This should make PPC compile with gcc 4.0/4.1
Add atomic support for PPC. Merge glibc bits/atomic.h powerpc32/bits/atomic.h powerpc64/bits/atomic.h into one file
Fix bug 430 and reduce ldso size with 1KB :). Not sure if I need to use fstat64, but I am sure someone will tell me.
Remove unused function.
Fix bug 370.
Make powerpc use sys/syscall.h, instead of defining its own syscalls.
forgot MMAP_HAS_6_ARGS
__set_errno must be redefined after #include "sys/syscall.h". syscall.h should not have it's own version of __set_errno, instead syscall.h should include errno.h(see powerpc) since errno handling depends on threads/no threads.
Hopefully fix the bug Oleg reported in http://uclibc.org/lists/uclibc/2005-October/012809.html This will only fix powerpc. Should be easy to fix the other arches.
psm missed a spot :)
Don't need this debug check anymore.
Fix static apps on linux 2.6. Linux clobbers r7 in 2.6, so use r3 instead to pass _dl_fini.
Support SecurePLTs for PowerPC. You need a toolchain that supports config option --enable-secureplt. The assembler must also supports R_PPC_REL16* relocations. gcc 4.1.1 and binutils 2.17 is known to do this.
Joseph S. Myers writes:
Aurelien Jacobs writes:
Fix SEGV for static builds in exit() path. Leave the now obsolete libc/misc/pthread dir in for now.
Peter Mazinger pointed out that my last commit was faulty. This should fix it.
I fixed that item long ago.
Fix libdl bug reported by Cedric Hombourger in http://uclibc.org/lists/uclibc/2007-January/017165.html
Add support for PowerPC e500, libc part only. Math support to be done. From Steve Papacharalambous, stevep(a)freescale.com
Remove #APP/#NO_APP since -std=gnu99 will make gcc barf otherwise.
Removed a .align 2 by mistake in previous commit.
Rehash the PowerPC e500 port to avoid creating symlinks in the powerpc arch code and make more code common with classic PowerPC. From Steve Papacharalambous
Updates from glibc.
Impl. linux syscalls sched_getaffinity/sched_setaffinity but protect its use by #ifdef INTERNAL_SYSCALL since not all arch's has INTERNAL_SYSCALL.
Add missing bits/fenv.h that got lost in the e500 port. clean up E500 math support somewhat. From Steve Papacharalambous with mods by me.
Hopefully fix the earlier broken if [ -n $(HEADERS_BITS_SUBARCH) ] test by adding quotes. From Steve Papacharalambous.
Revert previous commit as it is unclear if it is needed.
Fix dlopen for static apps. From Carmelo Amoroso.
Make _dl_malloc alignment arch configurable. From Atsushi Nemoto.
Carmelo Amoroso writes: Hi All, the attached patch completes my previous patch on statically linked application calling dlopen enabling the support for LD_DEBUG. Further it fixes the missing initialization of the _dl_library_path variable. This patch has been fully tested with the uClibc-nptl branch (sh4).
Carmelo Amoroso writes: I experiencied some problems while trying to debug the ld.so (sh4) in debug mode. I found that the _start code was not placed into any PT_LOAD segment causing a SIGSEV. I solved this issue explicitely placing the _start code into the .text section (see attached patch).
Joseph S. Myers writes: On PowerPC, r13 is used for a small data pointer and needs to be set up from _SDA_BASE_ (defined by the linker) at startup.
From Steve Papacharalambous: Add math support for PowerPC e500.
Update comment regarding passing dl_fini.
Bernd Schmidt writes: Currently a static libdl.a doesn't run all the constructors or destructors of the libraries it loads. I can't see a good reason for that, and it does cause aborts in the destructors it does run for things like libgcc.so on the Blackfin.
Fix fallout from the e500 math integration. from Steve Papacharalambous.
Remove the arch specific mmap impl. for Powerpc. The common one will do.
Correct return value. Pointed out by psm.
Carmelo AMOROSO <carmelo.amoroso(a)st.com> writes: Hi All, this patch fixes a mismatch in ucontext struct between uClibc and kernel. In this way a signal handler installed by sigaction can access to the whole machine state correctly. This can be applied both to trunk and nptl branch
Handle STT_COMMON symbols too. Following binutils release will set the type of common symbols to STT_COMMON instead of STT_OBJECTS, so the dynamic linker needs to handle this type os symbols too. Same changes have been added to glibc (See: bugzilla #5104). This patch ensures the uclibc will work with later bintuils.
Poll with zero timeout
ldso/i386: support protected symbols
Joern Rennecke (2):
string: Add ARC support
ARC: ldso: Use @pcl syntax.
John Beppu (1):
+ added alloca() support for all architectures by way of gcc's __builtin_alloca(). I think I did it right, but we'll see.
Jones Desougi (1):
*printf: Violation of precision with null string
Joseph Myers (7):
Add missing CLIBABI variables __aeabi_stdin, __aeabi_stdout, __aeabi_stderr.
Fix Thumb-2 memcpy.
Fix Thumb-2 setjmp.
Correct ARM memcpy comments.
Fix ARM syscall argument loading.
Fix daemon build for no-MMU no-threads.
Fix SH bits/kernel_types.h for new kernel headers.
Kenneth Soerensen (2):
Make res_init() thread safe.
inet: Fix threaded res_init
Kevin Cernekee (19):
Fix GNU make v3.80 compatibility
buildsys: fix GNU make v3.80 compatibility again
dl-startup: fix typos in block comment
ldso/mips: Enable bootstrap relocations
ldso/mips: dlsym() incorrectly matches undefined symbols
ldso/mips: Clean up warnings
test: Ignore various test objects
inotify_rm_watch: Change second argument to int
inotify.h: Use new "bits/" scheme for arch-specific flags
timerfd.h: Use new "bits/" scheme for arch-specific flags
signalfd.h: Use new "bits/" scheme for arch-specific flags
test/signal: Add tst-signalfd
test/time: Add tst-timerfd
test/inet: Add tst-sock-nonblock
test/misc: Add tst-inotify
MIPS: Convert __syscall_error() callers to use $a0 for argument
MIPS: Use $a0 instead of $v0 for __syscall_error() argument
buildsys: clean up libubacktrace linker script handling
Revert: buildsys: clean up libubacktrace linker script handling
Kevin Day (1):
utils/ldd: Check for returned pointer from strrchr not the value it holds
Khem Raj (128):
Fix from Joseph Myers: Save and restore iWMMXt registers in ARM setjmp/longjmp
Don't use r10 to find PIC base. In GCC 4.1.1 onwards ARM PIC handling uses pseudo register for PIC base so load and relocate it.
Sergey Lapin says the undefined syscall numbers from unistd.h do not get propogated into generated sysnum.h.
Add mmap function needed for ARM EABI and define thumb specific INTERNAL_SYSCALL macro which saves r7 before making the call and pops it back after return.
Add config options to select ARM ARMv5 and Intel iwmmxt variants.
Add the mmap.c missed out in the last commit.
Make _dl_linux_resolve interworking safe. Thanks Paul Brook
Use constant pool instead of and adr instruction in unoptimized builds and thumb: thanks Paul Brook
Correct -march cflag value for thumb capable ARM processors: Thanks Paul Brook
Should be __sigset_t instead of sigset_t.
Fix compiler warning about shadowed declaration.
include stddef.h to get NULL definition.
New test targets 'compile' and 'run'
Add posix_fadvise posix_fadvise64 for arm. Import INTERNAL_SYSCALL macro for i386 from glibc. Use above macro in posix_fadvise implementation if an arch defines it.
I always miss svn add.
Now Test.mak includes toplevel Rules.mak so if DO_ASSERT is not set then -DNDEBUG is added to CFLAGS so we need to get the seeko() calls out of the assert otherwise they get cancelled when NDEBUG is defined.
Sync kernel_stat64 with kernel. Thanks to Daniel Jacobowitz for hints.
Using local variable 'result' caused problems with lseek64 syscall failing with gcc 4.2. Renaming to make it a bit uncommon name.
Remove preprocessor warning due to missing definition of USE_TLS
Fix arm mmap when using mmap2 syscall. Fixes bug #1303
Do not return error when fprintf returns 0 in addmntent(). fprintf is considered failing if the return is less than 0
Fix mmap64 undefined on arm oabi with pure thumb1 patchset. Thanks Tobias Poschwatta
Cleanup INTERNAL_SYSCALL macros for ARM.
Wire up vmsplice, splice and tee for arm.
Fix bug 4994 hangs on read(). I have tested the patch extensibly on ARM/LT.old. Thank you Chase Douglas for reporting it and for the patch.
Use C implementation of strncmp. Add a new strncmp testcase.
Remove __NTH from the declation.
get rid of __libc_* symbols. Some whitespace cleanups.
These defines needs to be considered after recent linux kernel combined i386 and x86_64 into x86
Merge some pre-work from branch, needed by NPTL.
Make TLS configure time variable. Enable it along with NPTL.
Define creat in an independent file
Update copyright header.
The attached patches fixes the problems found bringing up uclibc on coldfire M5485 processor
Fix the ifdef logic broken by last commit for !defined (__mcoldfire__)
It fixes the following warnings seen on mips build.
fnmatch.c: Change scope of posixly_correct to be global.
fnmatch.c: Include unistd.h before undefining _LIBC.
syscall.c: Use common syscall.c for ARM
Rules.mak: Fix references to svn.
Makefile.in: Let make release or make dist to use git.
Add posix_fadvise and posix_fadvise64 for powerpc
Add posix_fadvise{64}.c routines to Makefile.arch
Build posix_fadvice{64} only when UCLIBC_HAS_ADVANCED_REALTIME is set.
Revert "syscall.c: Use common syscall.c for ARM"
Include bits/libc-lock.h to get __libc_once_define
Include bits/libc-lock.h to get __libc_once_define
mips/nptl: Pass correct parameters to dl_find_hash when resolving TLS relocations.
mips/nptl: Pass correct parameters to dl_find_hash when resolving TLS relocations.
mips/ldso: Check for TLS relocation in elf_machine_type_class.
mips/ldso: Check for TLS relocation in elf_machine_type_class.
mips/dl-tls.h: Adjust TLS_TPREL_VALUE and TLS_DTPREL_VALUE
Makefile.arch: On ARM and MIPS pass -DNOT_IN_libc=1 -DIS_IN_libpthread=1
errno: hide __libc_resp, __libc_errno, and __libc_h_errno
Add -DNOT_IN_libc=1 -DIS_IN_libpthread=1 to some sources in nptl/libpthread build.
Merge commit 'origin/master' into nptl
Fix accidently dropped hunk during last merge from master.
nptl: Fix nptl specific case which still was not using CSRC-y.
mips/sysdep.h: Unify mips sysdep.h
arm/sysdep: Unify arm sysdep.h
Assorted fixed to get nptl compiling on ARM
Add missing libgcc_s.h header.
Add missing lowlevelrobustlock.c
Fix nptl build for mips
Get new nptl building on SH4
include tcb-offsets.h in sysdep-cancel.h for arm.
Fix typo in generated file names.
Fixes to get nptl compiling for x86
Add dummy tcb-offsets.h
Get x86_64 compile to succeed.
nptl/headers: Convert the makefile targets into variables.
pregen: Fix the parallel build problem in pregen target
pregen-headers: Add new target which depends on headers.
mips/Makefile.arch: Remove -f option to $(do_awk)
powerpc: Add TLS and NPTL support
powerpc/Makefile.arch: Add objclean and headers_clean targets for NPTL.
utils/Makefile.in: Define GETCONF_DIR for host builds of getconf.
mips/bits/pthreadtypes.h: Re-include sgidefs.h
mips: Add vfork to libc
ldso/mips: Fix relocation parsing so that they work on both mips32/mips64
mips/socket.h: add SOCK_CLOEXEC and SOCK_NONBLOCK definitions for mips
arm/nptl: sysdep-cancel.h needs syscall handing for EABI
arm/nptl: Sync unwinding with glibc.
arm/nptl: Use the old C version of _Unwind_Resume in thumb mode.
nptl/generic: Build generic libc-tls.c for non-mips architectures.
nptl/errno: Use a separate __errno_location for libpthread.
mips/syscall-error: Choose the correct version for setting up errno.
nptl: Filter out gen_tcb-offsets.c from CSRC for libpthread.
arm: Silence warning about shadow declarations
include/param.h: Dont use ARG_MAX from kernel headers
arm: Macros in sysdeps/linux/arm also needed to be changed to accept _a1 to __a1 renaming.
ldso/mips: pltgot should array not address of array to dynamic info.
ldso/arm: Correct protected symbol resolution
arm/crt1.S: Avoid dependency on PC+4 or PC+8
Rules.mak: ARM926T is really an armv5t and arm9e core.
install_headers: Fix the header installation when using out of source build ( O=/x/y/z )
nptl: If DOPIC is set then we missed a rule to generate .os variants for pt-*.c files
sem_open.c/sem_unlink.c: Use INTUSE macro to get proper function call to __pthread_once
extra/locale/Makefile: Consider the case of building out of sourcedir
Makefile.in: Add header to 'all' target
libpthread/nptl_db: Append options to LDFLAGS based on if LD is set to gcc driver or ld itself
libc/inet/netlinkaccess.h: Use the types from kernel
cris: Fix build issues
nptl/mips64: Fix build when using mips64 and ABIs other than o32
arm/bits/atomic.h: Include common/bit/atomic.h for thumb1
unwind.h: Move to libc/sysdeps from nptl sysdeps
nptl/Makefile.in: Fix the build break caused by UCLIBC_CTOR_DTOR enabling
Rules.mak: Rearrange appending UCLIBC_EXTRA_CFLAGS to CFLAGS
ctor/dtor nptl: Fix init and fini function compilation
nptl/pthread: Correct path for machine specific pt-initfini.c
Config.in.arch: Free UCLIBC_HAS_FPU setting from depending on UCLIBC_HAS_FLOATS
mips/signalfd.h: SFD_NONBLOCK for mips is 0200 unlike 04000 commonly
x86_64/elfinterp.c: Protect missed debug _dl_printf with __SUPPORT_LD_DEBUG__
mips/dlfcn.h: Disable RTLD_DEEPBIND
mips/libdl: Apply relocations after appending the new scope
libubacktrace: Add arm implementation
Rules: Check for CROSS_COMPILE to be empty
Declare __err and pass it to INTERNAL_SYSCALL_NCS so subsequent macros can use it
lstat/stat/fstat: Use 64bit version of syscall if available
arm: Do not use 'sed -r' to calculate IS_EABI
eventfd: Implement eventfd2 and fix eventfd
i386/sysdep.h: Remove STABS_* macros
add posix_fadvise() for arm
Add clock_adjtime syscall
fcntl.h: Define F_SETPIPE_SZ and F_GETPIPE_SZ
Define IPTOS_CLASS_* macros according to RFC 2474
timex: Sync with glibc
Add eventfd_read() and eventfd_write()
Konrad Eisele (2):
Disables the automatic disable of shared library for sparc-v7.
sparc: check for log double support in gcc
Luis Machado (1):
C6X: Remove DSBT in favour of FDPIC
Maksim Rayskiy (2):
MIPS LDSO: pass sym_ref parameter to _dl_find_hash() to support PROTECTED symbols
libc: add missing lock initialization in vswprintf
Manuel Novoa III (419):
Adapted to handle shared libraries as well as static. Fixed Makefile for m68k.
UnDOSified file and added assert when debugging.
The files unified_syscall_{ARCH}.h are not auto-generated while others are.
Work around str_syscalls.sh not having execute perms. Should fix in cvs. How?
Add missing symbol for ipc and ignore commented syscall lines.
This is _NOT_ an auto-generated file.
Added #include <wait.h> for getrusage.
Increase BUFSIZ to 512 to avoid bug in busybox tar.
Set dynamic linker used to /lib/ld-linux.so.1. Changeable in Makefile.
Added missing _SC_2_FORT_RUN case. Fixed _SC_ATEXIT_MAX to match atexit.c.
Fix static buffer used initialization for FIXED_BUFFERS > 2.
Note about need to match _SC_ATEXIT_MAX. Minor macro name change.
Hopefully fix the size/type errors when doing a shared lib.
Fixed stderr initialization bug (mine).
Clean up atexit.c; make sure sysconf and atexit agree; link in ref'd libgcc.a objects with shared uClibc; allow disabling long long support.
Enable auto-generation of a size-optimized sysconf function (saves .5k on i386).
Fixed (hopefully) 0-pad bug in printf. Added asprintf function. Reworked the *s*printf functions to no longer use a static fake file.
Really fixed 0-pad bug this time. ;-) Code-size reductions if sizeof(int) and sizeof(long) equal. printf # flag now works for b (binary) specifier.
Reduced code size; fixed ANSI bug for day -- 5 not 05; mode days and mons const.
Hide some unnecessary output. Check cvs logging script.
Fix a couple of bugs in printf. Add floating pt output for doubles. Yeah! Modified stdio/Makefile to build printf.c according to Config values for HAS_FLOATS and HAS_LONG_LONG.
Added some notes. Removed some dead code.
Fix the ordering of the args to the compare function.
Add #define to handle new ptrace support.
Clean up lots of warnings.
Hack DYNAMIC_LINKER setting for now.
Define __USE_GNU as glibc does.
Fix broken prototype.
Fix stdin/stdout/stderr (that I broke) and add vdprintf prototype.
Handle definition of struct timespec.
Add missing header file.
Comment out for now. Not used and was causing an error.
Add tsearch functions from libc-5.3.12.
Fix stdin/stdout/stderr for now.
Add vdprintf function. Note: will be rewritten to check if file descriptor has an associated FILE to avoid bad interactions with buffered output, but needed for busybox right now and that implementation has the same bug.
Add bdflush.
I guess we always need timespec...
And apparently some things include sys/time.h instead of time.h in uClibc...
Fix LIBC rule. (cut-and-paste user bug...)
Fix problems with test wrapper and test compiler selection.
Revert to standard handling of _exit syscall in unified syscall case on i386.
Create __uClibc_main to handle what can be done in C instead of each arch's respective crt0.S. crt0.S should now only be responsible for setting things up to call __uClibc_main(argc, argv, envp), which will do any other necessary setup (setting global __environ, stdio init, etc), call main, and exit. This should ease both maintainance and porting.
Lots of stdio cleanups. Several bug fixes, addition of a number of functions to supplement macros in stdio.h, change perror to use stdio package instead of "write". Also add back in weak stdio initialization for static lib case.
Remove redundant old isatty.c since newer termios supplies one.
Make sure errno is 0 before we call main (may have been set while initializing).
Have isatty call ioctl directly rather than tcgetattr; especially since any program using stdio will call isatty during initialization.
Fix a couple of bugs in _fopen and fclose, plus change a few internals.
stdio mostly rewritten... passes lots of tests now. printf now supports long double, plus some bug fixes.
Fix a buglet regarding floating point output for ?nprintf functions.
Added __strtok_r function. Change strtok to a wrapper around __strtok_r and add a weak alias of __strtok_r for strtok_r since optional. Also reduced code size.
Stupid buglet fix. Don't trash FILE bufstart if buffer allocation fails.
Fix a couple of bugs: check mode is legal; open file and check success before calling vfork.
Fixed vfork on i386. Reduced size of __uClibc_syscall.
Patch from Michael Shmulevich (michaels(a)jungo.com) -- functions were not declared type function.
Fix unified syscall stuff for changed ?stat. Move fork to syscalls.c wrapped with a check for NO_MMU of course.
Move fork to common/syscalls (with NO_MMU check). Add Makefile to sparc so make clean works.
Fix a bad assertion test.
Add some missing network functionality; grabbed from libc-5.3.12.
Define h_errno to be errno for now.
Hack long long support into scanf. For now, will fail for unsigned long longs that are greater that long long max, but works well enough to support interface in busybox. Just a temporary measure until scanf.c is rewritten.
Delete a stray character that hopped into the file...
New version of scanf, with floating point support.
Fix bug with %c... takes care of bug reported with busybox ps.
Fix fdopen mode-compatibility test and errno setting.
Part of the ctype locale support.
Added Vladimir's ctype locale support. Make Config setting visible in features.h. Reworked build of shared lib as suggested by Magick <magick(a)dds.nl>.
Part of the shared lib build rework.
Test for Config features using features.h.
Since Erik apparently wants def/undef vs def 1/0...
Small change from Vladimir.
Put weak symbols where they can find what they are aliasing. Clean up strcspn.c
Fix longjmp on i386. Also adds siglongjmp.
Add missed dependency. TODO: Should build gen_sysconf when cross-compiling.
Add some missing headers needed by ld.so-1.9.11.
Bug fix from Peter Kjellerstedt <Peter.Kjellerstedt(a)axis.com>.
Add missing function sigfillset.
Fix dynamic linking bug. If you need -ldl, you must explicitly add the library (path and version!!!) to the args instead. For example, add /lib/libdl.so.1 if DYNAMIC_LINKER is /lib/ld-linux.so.1.
Change shared lib name. Update install_new target in Makefile.
Update the gcc wrapper. Changes described in the notes at the top of the file.
A couple of printf fixes from Johan Adolfsson (johan.adolfsson(a)axis.com).
Fix fwrite return value bug reported by Matthias Kilian <kili(a)outback.escape.de>.
Fix comment for #endif to remove warnings.
Add comment about scanf pushback behavior and glibc difference.
Proper prototype for mtherr, although this should probably be made an internal/hidden function (and merror and internal/hidden variable).
Add poll.h header.
Added file for non-Cephes double routines; currently only fmod and modf.
Remove dead code.
Minor fix.
Revert behavior to either INSTALL_DIR or BUILD_DIR but not both. Also, if using BUILD_DIR and uClibc dynamic linker, use the one in the build dir. If people want the "both dir" behavior, I'll enable it similar to the "build" and "rpath" behaviors. See the comments in the file for how this works.
Make selection of uClibc floating point support in printf, etc. seperate from libm float function support. Also, move all Config files out of the main directory.
Add a _really_ basic README outlining building/using uClibc.
Give Erik's build-with-uClibc method.
Revert behavior of wrapper to not use dynamic linker in the build dir, so those who want to should now be able to compile against uClibc without installing it (using the "build" behavior).
Look's like I need to disable the rpath stuff for now as well. To build with an uninstaled uClibc, set UCLIBC_GCC=build in your env, or rename it/symlink to it using a name containing the string "build".
Removed INSTALL_DIR and replaced it with DEVEL_PREFIX, ROOT_DIR, and TARGET_PREFIX to allow more flexibility. Also modified the gcc wrapper to do the right thing if -Wl,--dynamic-linker,xxx is passed on the command line. The gcc wrapper will also check the env variable UCLIBC_GCC_LDOPT for a dynamic linker option at runtime (although command line arg overrides the env variable).
Install ldd and ldconfig as appropriate.
Added cmdline options --uclibc-use-build-dir and --uclibc-use-rpath so that those behaviors can be invoked from the command line.
Fix bug: tried to install non-existant shared libs.
Fix misuse of DO_SHARED and LDSO_PRESENT. Add -f option to "cp"s.
Only build ldso if building shared. Also, if building ldso, build all subdirs.
Always check before you commit...^100. We need to build the dynamic linker before we build shared libc. We need to build shared libc before libdl.
Add locale-enabled strcoll function from vodz, plus supporting tool.
Update the todo. Add my personal list.
Commit _uClibc_fread bug fix (with minor edit) posted by Johan Adolfsson <johan.adolfsson(a)axis.com>.
Fix bug in ldso/util/Makefile introduced when Erik added the readelf app. It didn't show up if a previous install was done. This would have been fixed two days ago if the initial bug report had been anything close to lucid. :-( Also changed ldconfig back to staticly linked and update the README file.
Fix printf handling of %p to prepend "0x" since output is in hex. Note: glibc output for (void *)0 is "(nil)" while uClibc output is "0". Does anyone have a preference?
Fix printf so that %p outputs "(nil)" for (void *) 0, to match glibc behavior.
Add the in* and out* functions for i386. Note: the sys/io.h header for glibc-2.2.2 actually defines static inline versions for i386, but only provides prototypes for externs for the other archs I looked at. Since uClibc shares this header amongst archs, I stashed the inline defs in bits/io_i386.h and included it when __i386__ was defined. Better solutions are most welcome, but it doesn't clutter sys/io.h too badly and now lilo and the pcmcia tools build against uClibc on i386 without modification.
Update TODO file.
Remove Erik's broken implementation of rint(). Replace it by one "less broken". Also correct rounding beharior of round() and add trunc(). Note that round() and rint() currently don't check for infs and nans. I decided to wait on that until the big cleanup.
Oops... forgot to remove rint.c from the makefile.
Remove simulated d_type support for getdents and the dirent struct, and use the straight getdents syscall instead of the wrapper (which leaked memory).
Note need to fix scandir.c's dynamic memory handling.
ANSI/ISO specifies that no library function sets errno to 0.
Yes... I forgot to update bits/dirent.h for the other archs. :-(
For now, we need to explicitly make clean in libc/unistd (sysconf stuff) and libc/sysdeps/linux/common (unified syscall stuff).
Make these PIC and _LIBC_REENTRANT compatible.
Fix syntax error in comment.
Remove obsolete files tell.c and getdents.c
Remove nonstandard functions.
Added a script to create bits/syscall.h for each arch. NOTE!!! This is run by "make -C libc/sysdeps/linux/$(TARGET_ARCH) headers" in the main Makefile, but I only changed libc/sysdeps/linux/i386/Makefile as I had no way of testing it for the other archs. Various arch maintainers, please check and update the corresponding Makefile... or report bugs ;-)... appropriately. You'll also want to "cvs del" syscall.h and add it to a .cvsignore in $(ARCH)/bits. Also added a define to uClibc_config.h, __UCLIBC_USE_UNIFIED_SYSCALL__, and moved i386 unified syscall stuff out of common and into i386/bits/syscalls.h.
Optimized for size over speed to (substantially) reduce generated code size.
Fix a missing include in des.c and add configurability of loop unrolling to md5.c. Note: by default it is smallest/slowest.
These zero-length files apparently weren't deleted from cvs.
Fix small typo vodz reported.
Fix fread bug reported by Vodz. The fix is straightforward, but I haven't tested it (lack of time).
Ok... the fix wasn't quite so straightforward. Hopefully this will do it.
Yes... the previous "fix" was broken too... the result of careless cutting and pasting while pressed for time. I haven't checked this one either. :-(
Back out the changes to _uClibc_fread and loop in fread() if incomplete, to avoid problems with fgets on tty streams. I actually did some testing this time. ;-) Note: there is a difference in behavior between glibc and uClibc here regarding fread() on a tty stream. glibc's fread() seems to return after reading all _available_ data even if not at end-of-file, while uClibc's fread() continues reading until all requested or eof or error. The latter behavior seems correct w.r.t. the standards.
Oops... left in a debugging line.
Fix fseek behavior.
Output an error if uClibc's and app's largefile configuration are incompatible.
I was confusing the effects of _LARGEFILE_SOURCE with those of _FILE_OFFSET_BITS regarding aliasing of the *64 funcs. :-( Hopefully, this version is correct...
Swap in the new stdio code.
Deal with cvs "feature"... or is that cvs _user_...
Update to my current todo list.
Oops.. had left thread support forced on.
Fix fflush(NULL) and tweak _stdio_term() for the unbuffered stdio option.
So much for fcntl flags being resonably consistent across archs... (hopefully) fix O_APPEND and O_LARGEFILE handling in _stdio_fopen(). Someone else will have to check of course...
Fix another O_LARGEFILE bug. Also, I forget to make floating point optional in the new printf code.
Apply Miles Bader's missing __va_copy() fix.
Oops... forgot to update abort.c.
Fix stdin/stdout initialization of buffering type. I had changed the default static initiailization and forgotten to update _stdio_init().
New versions of the various string to int functions which are smaller than the old ones, even with errno setting turned on now. Also, at least on i386, we no longer need the long long helper functions for division and mod from libgcc.a.
Modified because of the new str to int funcs.
I vow to rerun _all_ the tests before making commits. :-( I successfully managed to blow away all the modeflags for the file _except_ the one dealing with buffering...
Fix a pointer bug in setvbuf reported by Bart Visscher <magick(a)Linux-Fan.com>.
Forget to initialize thread locks for fake files. Thanks Erik.
Fix an arg promotion handling bug in _do_one_spec for %c reported by Ilguiz Latypov <ilatypov(a)superbt.com>.
Revert Erik's changes... they were broken since there weren't enough bits for the extra ISblank flag. Instead, hardwire isblank() to not depend on locale for now. At least it will work for space and tab in the immenent release. This will all be blown away for the next release anyway, as I should be committing my new stuff in the next day or two.
Only set no buffering if we opened the file. Also, don't bother restoring buffering since we will close the file in that case anyway.
Fix the read/write auto-transition bugs. Note that if we can't auto-transition, we fail the operation. This is different than glibc's apparent behavior for writing of clearing the read buffer and still failing the write without setting the stream's error flag.
New locale support (in development). Supports LC_CTYPE, LC_NUMERIC, LC_TIME, LC_MONETARY, and LC_MESSAGES for the SUSv3 items. Also, nl_langinfo() when real locale support is enabled. New implementation of ctype.h. New implementation of wctype.h. New implementation of most of the string functions (smaller). New implementation of the wcs/wmem functions. These are untested, but they're also just preprocessor-modified versions ot the corresponding str/mem functions. Tweaked qsort and new bsearch.
The obligatory forgotten files...
Update my TODO entries.
Forgot to change the Config templates. Changed one... the others are similar, but don't have time to take care of them.
Protect against ctype macros.
Adjust preprocessor logic to initialize QUAL_CHARS correctly for Erik's alpha port. Also, explicitly use the macro versions of isdigit and isspace in the printf and scanf code.
Revert Erik's previous patch and fix what I believe he was trying to, while preserving the space-saving aliases.
Multibyte and wide char conversion functions. Some work still to do, but they're quite solid now and Erik needs them for the gcc port. Comments at the head of wchar.c.
Obligatory forgotten file during commit...
Added a version of nl_langinfo for the stub C/POSIX locale support.
Revert Erik's patch to vasprintf and fix the real issue. The writer for the stream returned by open_memstream was supposed to keep the buffer nul-terminated. I apparently left out a statement.
I guess nobody's tried this stuff. I apparently checked in the wrong version several weeks ago.
Commit the new time stuff, even though I haven't made it threadsafe yet. At least people can play with it. Also, fix a buglet in setenv.c.
Fix perror() and printf("%m") to not call strerror(), as required by the standards. Temporarily added a utility function to wrap Erik's strerror_r so that "Unknown error xxx" strings can be generated for errno's which cause strerror_r to fail. That utility function will eventually be merged in with the strerror/strerror_r functions when I change over to optionallly mmap'ing the system error strings to provide for lower mem comsumption on non-MMU platforms, as well as locale-specific system error messages.
Remove obsolete files.
Add in thread locking for tzset() and associated data. Also, fix a bug so that localtime_r() calls tzset() to initialize/update timezone data.
Update my todo list.
Enable WCHAR support for C/POSIX stub locales. Implemented unformatted wide i/o functions. (ungetwc still needs testing) Fix a few bugs in wchar.c. Modifications for bcc/elks support.
Update Config files for current locale and wide char configuration options.
For now, have locale support automaticly enable wide char support. Things currently won't build otherwise.
Update my todo list entries.
Only define __uwchar_t if wide char support is enabled.
Add two missing glibc wide string funcs as well as OpenBSD string funcs strlcat and strlcpy.
Update header for strlcat and strlcpy.
Add copyright message and remove dead code.
Attempt to clean up the strerror_r situation.
Obligatory forgotten file.
Fix a preprocessor buglet. Redo sys_siglist/strsignal/psignal.
Remove obsolete code.
Clean up CLK_TCK situation. clock() and sysconf() now use an arch-specific constant value defined in bits/uClibc_clk_tck.h. Default is 100 (common/bits) but alpha uses 1024 following glibc. Override per arch as necessary.
A couple of little cleanups I forgot to check in.
Changed fflush() behavior to no-op for r/w streams in read-mode. This falls under undefined behavior wrt ANSI/ISO C99, but SUSv3 seems to treat it as a no-op and it occurs in some apps. Fixed a problem with _stdio_fwrite() not checking for underlying write() failures. Fixed both _stdio_fwrite() and _stdio_fread() to make sure that the putc and getc macros were disabled if the stream was in and error state.
Enable getpt prototype.
Add an entry regarding localtime(), TZ, and timezone support.
Update my TODO list. In particular, breakdown what I'll be working on in the next two months.
Revert commit by davidm to printf.c that initialized conv_num needlessly. To do so increases the generated code size with bcc. Eliminate duplicate define warnings in wstring.c. Fix potentially broken preprocessor comparisons. The preprocessor converts integers to maximal signed type, so inequality comparisons involving UINTMAX_MAX, ULLONG_MAX, and (if no long long) ULONG_MAX were potentially broken.
__fsetlocking() and FILE field user_locking were completely broken. :-( I think they're fixed now (I've run a few tests). Note: __fsetlocking() is not threadsafe... but glibc's doesn't appear to be either.
Fix erroneous grouping.
Disable macro implementations. Somehow I missed the following from the ANSI/ISO C99 std...
Fix two problems with printf that showed up in the python 2.2.1 tests; One involving %o and one involving %f.
Fixed __read_etc_hosts_r to return alias list and modified buffer allocation accordingly. This fixes the segfault in the Python 2.2.1 socket test.
Remove recursive lock/unlock for a non-recursive mutex.
Fix broken locking so that at least the Python 2.2.1 grp test doesn't lock up. This really needs to be looked at, as I don't think this needs to be reentrant. In any case, several routines call the __getgrent internal routine and it uses static vars for data. If this stuff is really supposed to be threadsafe, then __getgrent probably needs fixing.
Unlike glibc, uClibc doesn't always support the d_type field of struct dirent. So, disable the d_type support macros when d_type isn't available. This fixes a build problem file fileutils-4.1.
Tweak things so that struct stat and struct stat64 (seem to) work on i386. This is for Erik to look at wrt the other archs.
Changed fclose behavior when custom streams were enabled. Previously, the cookie pointer was set to NULL as a debugging aid. However, some of the perl 5.8 test rely on being able to close stderr and still try writing to it. So now, the cookie pointer and handler function pointers are set to that it is a "normal" file with a file descriptor of -1.
sparc, alpha, and mips have different errno values than the other supported platforms. Adjust _susv3_strerror_r function to deal with this. Also fix an error in strerror() wrt invalid errnos.
Make this as glibc-like as possible while avoiding the fileutils problem. glibc hides the DT_* enum values unless __USE_BSD is defined.
Reimplement sys_errlist[] so that it works on sparc, alpha, and mips. In my opinion, this is a complete waste of good memory and is only done to avoid the anticipated whining by people who think this libary is named uCglibc. At some point this may become a configurable option. And even then, it may not be available in all configs... for instance when system error messages become locale-dependent.
Obligatory forgotten file... sys_errlist garbage.
Add #include <malloc.h> to silence warning.
Patch from Tero_Lyytik�inen <tero(a)paravant.fi> to fix bug in matchchar case.
Clean up a warning.
Remove malloc_simple from subdir list.
Hide my personal #warning reminders. Add __wcschrnul, rename strchrnul to __strchrnul, and add weak aliases for them.
Add SUSv3 function getsubopt.
Add gnu obstack support. I still need to implement the obstack_printf and obstack_vprintf, but at least now the reiserfsprogs build.
Allow timezone info to be specified in a file... /etc/TZ. Turned on by default for now. From the comments...
ANSI/ISO C99 requires assert() to write to stderr. This means that writing to STDERR_FILENO is insufficient, as the user could freopen stderr. It is also insufficient to output to fileno(stderr) since this would fail in the custom stream case. I didn't remove the old code though, as it doesn't use stdio stream functionality and is useful in debugging the stdio code.
Fix a problem in vasprintf (reported by vodz a while back) when built without custom stream support. In that case, it is necessary to do a va_copy. Note: The affected code is not built in the stock config. Also, make sure each va_copy has a matching va_end, as required by C99.
Fix a couple of 'restrict' bugs in mbstowcs and wcstombs.
Work around glibc brain-damage regarding nl_langinfo and {mon_}grouping entries.
Add a few more entries.
Reworked setlocale() return values and locale arg processing to be more like glibc. Applications expecting to be able to query locale settings should now work... at the cost of almost doubling the size of the setlocale object code. Fixed a bug in the internal fixed-size-string locale specifier code.
Fix a stupid bug.
Implement locale-specific grouping in printf for base 10 integer conversions when the grouping flag "'" is specified. Grouping for floating point values may wait until I do a rewrite of the floating pt to string code...
It was easy enough to respect locale-specific decimal point for printf floating point output, so at least implement that. But grouping will have to wait for the rewrite of _dtostr.
This fixes a broken build for me.
Add printf wchar support for %lc (%C) and %ls (%S). Require printf format strings to be valid multibyte strings beginning and ending in their initial shift state, as per the stds.
Hit the highlights of glibc differences in my code. Not yet complete though.
Forgot to change btowc and wctob when I changed the wc<->mb functions yesterday.
Apparently I forgot to build atof...
Okay, fix for atof _correctly_...
Remove atof from strtod.o...
Add wcwidth and wcswidth, based on Markus Kuhn's wcwidth of 2002-05-08. Added some size/speed optimizations and integrated it into my locale framework. Minimally tested at the moment, but the stub C-locale version (which most people would probably be using) should be fine.
Added some temporary "stubs" for collation. strcoll is an alias for strcmp. strxfrm is an alias for strlcpy. wcscoll is an alias for wcscmp. wcsxfrm is implemented as a wchar version of strlcpy. Real locale-dependent implementations are coming soon.
Add notes about setvbuf and struct tm extension fields tm_gmtoff and tm_zone.
Ok... here's the summary: 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.
Oops.. left in a bit of debugging code.
Fix bug in setting daylight and timezone when no (valid) TZ. Bug reported by Arne Bernin <arne(a)alamut.de> in regards to freeswan.
Fix an ifdef mismatch.
Add hsearch and hsearch_r. Consolidate all functions prototyped in search.h in one directory.
Forgot one...
Cut and paste error.
Remove trailing comma from enum list as a nicety for older compilers.
The big thing is locale dependent collation support. Also added outdigit support and (legacy) YESSTR/NOSTR support.
Add a target so that people can download and use pregenerated locale data files instead of generating approx 40Mb of glibc locales to get the 300+ locales currently supported.
Obligatory forgotten update...
Update.
Fix a silly bug in _wstdio_fwrite. wprintf %s should now work correctly.
For now, "#if 0" out the inlining of (currently unsupported) glibc-specific string->numeric conversion functions.
Fixed a bug related file position in append mode. _stdio_fwrite now seeks to the end of the stream when append mode is set and we are transitioning to write mode, so that subsequent ftell() return values are correct. Also fix _stdio_fopen to support fdopen() with append specified when the underlying file didn't have O_APPEND set. It now sets the O_APPEND flag as recommended by SUSv3 and is done by glibc.
Wasn't thinking... we don't need to seek to end when appending if stdio is built without buffer support.
Remove bogus link_warning. It is meaningless and stupid. While the previous committed patch was well-meaning, the #warning it replaced was simply a reminder I accidently left in when implementing strcoll/wcscoll. Besides, strcmp is completely locale invariant.
Fix (hopefully) scanf behavior for nul bytes in the stream when processing %c, %s, and %[ specifiers. Note that scanf is undergoing rewrite so I didn't bother optimizing this. I did run all my regression tests though. Set EOF correctly for fmemopen on readonly streams. I really need to check what glibc behavior is for the various open modes though.
Sorry. Changed this while fixing the last bug and forgot to change it back. Unfortunately, none of my test cases caught it.
Add memmem().
Ok... pasting in DUMPn() is unnecessary and technically incorrect.
Optionally support the struct tm extension fields. Add a few misc functions mentioned in time.h. Revert davidm's change regarding using a define for the "/etc/TZ" path, as this is eventually meant to be a configurable extension and not unconditionally supported.
Change 'undefined behavior' of fflush() on readonly or reading streams to match that of current glibc; i.e. don't do anything and return success. Apparently, php calls fflush() on a file opened as readonly before trying to read. Eventually I'll add some config options to flag this and several other instances of nonportable code.
Yikes! This was doing another lock instead of unlocking the stream.
Bug fix from Peter Kjellerstedt <peter.kjellerstedt(a)axis.com>. vfscanf was not setting the FILE bufread member to flag the end of the buffer. Also, do not set bufgetc member if getc macro support is disabled.
Add a new *scanf implementation, includeing the *wscanf functions. Should be standards compliant and with several optional features, including support for hexadecimal float notation, locale awareness, glibc-like locale-specific digit grouping with the `'' flag, and positional arg support. I tested it pretty well (finding several bugs in glibc's scanf in the process), but it is brand new so be aware.
Fix a silly error.
Replace 'new' in a prototype to avoid c++ problems.
Fix a cut-and-paste error. Collation should be working again.
_wchar_utf8sntowcs and _wchar_wcsntoutf8s now set errno if EILSEQ.
scanf %lc,%ls,%l[ would always set mb_fail on eof or error, even when just starting a new mb char. wscanf would incorrectly unget in certain situations.
Fixed a bug where locales nontrivially derived from iso14651_t1 did not have the UNDEFINED entry set properly.
Work around a bug in nm from binutils-2.14.90.0.5.
Correct included header for ustat.
Fix a few bugs in the new extended locale functions. Move stub gettext functions to a stub libintl to make switching in gnu gettext easier. Also add a few gnu-isms. Change to using hidden names with global weak aliases for the extended locale functions, as expected by libstd++. Slightly rework the locale data generation stuff to allow pregenerated locale data to be used with buildroot.
Add missing header.
Create a typedef for the ctype bitmask table entries. Hack a fix for ctype support of 8-bit codeset locales.
Some doc updates.
Fix precision bug for %g conversion specifier when using %f style.
Rework a few things.
Hack around bg_BG bug; grouping specified but no thousands separator. Also, disable the locale link_warnings for now, as they generate a lot of noise when using libstd++.
Only define __STDC_ISO_10646__ if wide char support is enabled.
Some more buildroot-motivated fixes. Avoid installing some headers, as well as stub libintl, depending on configuration.
Oops... Forgot to convert this to the new floating point conversion func.
Move an #endif that was in the wrong place.
Always build _store_inttype since it is used by the new scanf.
Don't install floating point related headers, and wrap some previously unwrapped prototypes, when float support is disabled. Also don't install printf.h if glibc custom printf specifier support is disabled.
Small fix for when threading (I think) was disabled.
Update old_vfconfig help and some dependencies.
Implement vsnprintf (old_vfprintf only) and vsnscanf when uClibc is configured with non-buffered stdio and non-wchar mode. Fix a couple of bugs that showed up in minimalist configurations. Update old_vfprintf to handle size qualifiers on the integer and %n conversions. It now passed the glibc printf tests with the exception of a floating point rounding difference.
Remove profil.c, since it is constained within gmon.c.
i386/mcount.S expects to call __mcount_internal with the 2 args passed in registers.
Add back in table-less ctype funcs for those interested in minimizing static build sizes and not needing wchar support. Add in a SUSv3 getopt as an option for those not needing gnu getopt. Again, mainly for the static linking crowd.
Obligatory forgotten file.
Signifcantly speed out integer to string conversion for printf. Printf still needs some performance work done though. Also some bufferless stdio cleanups.
Fix wctype.c so that wchar can be enabled without ctype table-based functions.
Patch by Atsushi Nemoto <anemo(a)mba.ocn.ne.jp> to do arch-required mapping of signal strings (alpha, mips, hppa, sparc).
Fix a problem reported by Atsushi Nemoto <anemo(a)mba.ocn.ne.jp> for environments where long and long long are the same size.
This should enabled building of uClibc locale support when using uClibc itself. Sorry I didn't test this before the release.
Fix "subst -g,," problem for SAFECFLAGS.
Ugh... EOF handling by scanf was completely broken. :-( Regretably, I got my mind fixed in one mode and didn't comply with the standards. Things should be fixed now, but comparision testing is difficult when glibc's scanf is broken and they stubbornly refuse to even acknowledge that it is... even when confronted by specific examples from the C99 standards and from an official C standard defect report.
Modify _stdio_READ to conform with C99, as stdio input behavior upon encountering EOF changed with Defect Report #141. In the current standard, the stream's EOF indicator is "sticky". Once it is set, all further input from the stream should fail until the application explicitly clears the EOF indicator (clearerr(), file positioning), even if more data becomes available. Fixed a bug in fgets. Wasn't checking for read errors. Minor thread locking optimizations to avoid some unnecessary locking. Remove the explicit calls to __builtin_* funcs, as we really need to implement a more general solution.
Document some glibc bugs that Ulrich Drepper refuses to acknowledge. :-(
One more scanf difference.
Quick fix to make sure vfprintf always checks stream orientation when wchar support is enabled.
Add -msoft-float to SAFECFLAGS when necessary.
Some more soft float fixes... for arm in particular (libfloat). Remove the ADD_LIBGCC_FUNCTIONS option and do things the right way. Either we have a shared libgcc available, or the libgcc routines aren't PIC and don't belong in the shared libc anyway.
Fix Erik's typo.
Hopefully fix the struct tm extension problem once and for all. Also fix a dst-related bug which caused the use of uninitialized data.
If realloc failed, we'd lose the pointer to the exit function table.
Remove erroneous trailing semicolon.
Rewrite the pwd.h, grp.h, and shadow.h functions (except lckpwdf/ulckpwdf).
Oops... don't need recursive mutexes.
Add a utility macro.
Sigh... I wasn't checking if the gid field in a group line actually contained a digit. Also adjust a comment.
Add clock_gettime() submitted by Justus Pendleton <uc(a)ryoohki.net>.
Protect some header inclusions.
Fix for the last "fix".
Fix a build problem when using 2.2.x kernel headers.
Don't install shadow.h if shadow password support is disabled.
Patch from Jeffrey Baitis <baitisj(a)evolution.com> for mips arch tuning.
I forgot to update the thread locking in the last dst fix.
If __NR_ftruncate64 isn't defined, do the best we can.
Kill ARCH_HAS_NO_MMU and use HAS_FPU only. Wether floating point ops are implemented in hardware or via kernel emulation doesn't matter to the libc code.
Fix the return value for fputs when passed an empty string. Indirectly detected by gmp-4.1.2 self-tests and reported by "Peter S. Mazinger" <ps.m(a)gmx.net>.
Always include locale.h, which was included by libintl.h only when optimizing.
Make sure the utils build gets the setting for CROSS.
Fix arm detection for libfloat.
Protect against quoting changes.
Hopefully this is correct for cris.
Make sure we use the right CC setting when building utils. Not doing so was breaking the buildroot softfloat arm build.
Ok.. this fixes the buildroot soft-float arm build. Also try to make sure the build breaks if we want soft float but don't know how to request it.
Don't bother checking, since we want an error if -msoft-float doesn't work.
Add -msoft-float to CPU_CFLAGS instead of CFLAGS, since ldso and libdl Makefiles ignore CFLAGS.
Add sysmips(), based on a patch by Atsushi Nemoto <anemo(a)mba.ocn.ne.jp>.
Another missing mips function, needed by the boehm garbage collector.
Patch by "Bradley D. LaRonde" <brad(a)ltc.com> for boehm garbage collector.
Minor update... Config no longer used.
Minor typo fix.
Put in a dummy reference to main so busybox will link.
Add a syscall() implementation using a hacked version of the syscall6 macro. Untested, but syscall() is needed by busybox for pivot_root at least.
Include Rules.mk for consistency. Trying not to was simply too painful.
Building of iconv.o was accidently always disabled. Also, build the iconv app in utils.
Don't download the local data if we have it already.
Fix infinite loop in putgrent (forgotten increment).
Fix a couple of 'declaration after statement' errors.
Fix some dst issues in _time_mktime(). Normalize the tm_isdst value to -1, 0, or 1. If no dst for this timezone, then reset tm_isdst to 0.
Link ldconfig with the appropriate libraries.
Fix a long-standing bug with pthreads. A couple of linuxthreads files were including libc-lock.h which had a bunch of weak pragmas. Also, uClibc supplied a number of no-op weak thread functions even though many weren't needed. This combined result was that sometimes the functional versions of thread functions in pthread would not override the weaks in libc.
Handle the app_fini stuff in exit without requiring atexit(). This avoids pulling in all the malloc/free code for a simple true/false app.
Kept the same approach, but rewrote the code for the most part. Fixed some minor issues plus (as I recall) one SUSv3 errno case.
Minor fix from upstream glibc.
Rewrite popen for SUSv3 compliance. Added a list of popen()'d to store pids and use waitpid() in pclose(). Loop on waitpid() failure due to EINTR as required. Close parent's popen()'d FILEs in the {v}fork()'d child. Fix failure exit code for failed execve().
Redo the exec functions to comply with SUSv3.
The checking Erik added seems to be unnecessary. Without it, I am not seeing any LTP failures.
Oops... temporarily support the old stdio code.
Fix __freadable and __fwritable... were using '~' instead of '!'. (ugh) Fix (hopefully) a potential problem with failed freopen() calls. The fix isn't tested since I've been working on the replacement stdio core code which will go in after the next release.
My mistake. We do need some weak pthread_* funcs. But we were previously missing one in the glibc abi, and including a number of extras (which I left in commented). Unfortunately, this brings back the perl pthread bug. Fixing the incorrect weaks in libpthread wasn't sufficient to escape the shared loader bug. :-(
Oops... Seems I forgot an else...
Add another devfs subdir to the list of checked subdirs.
Add a dummy (always fails) wcsftime. This is needed for the libstdc++ locale implementation to build. Later this month I'll add a functional wcsftime.
Ok.. we need to link with libgcc.a for some archs. I haven't looked at all cases, but the archs I've looked at do build the needed routines as PIC so we should be ok.
Link with libfloat if necessary.
We need to link with libgcc.a when creating shared libs, in order to avoid problems 'hidden symbol' problems. Also handle -lfloat for the soft-float arm case.
Prevent runaway asserts, which can happen if there's a problem with stdio or locales.
Add __data_start needed by boehm garbage collector, in turn needed by libgcj.
Use the correct configuration test define.
Today's Toni's birthday. Seems an appropriate day to add this.
Allow building on 64 bit archs. Hopefully the last cvs activity this stuff will see other than "delete".
Patch from Alan Hourihane <alanh(a)fairlite.demon.co.uk> for building alpha.
Fix bug from the syscall reorganization, detected by python's test_poll.py. The #ifdef __NR_poll test was failing because it was done before any includes. Hence, the emulation was always being used.
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.
Oops.. The custom stream funcs should only be compiled if wanted.
Fix this as should have been done a long time ago...
Generic fork works. Use it instead since this didn't handle errno_location.
Sigh... Fall back to alloca() if munmap is broken (uClinux).
Patch by Joakim Tjernlund <joakim.tjernlund(a)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.
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.
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.
Fix typo.
Add missing include.
Fix a couple of issues in configurations I hadn't tested.
"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.
Patch from Yoshinori Sato <ysato(a)users.sourceforge.jp>.
Peter Mazinger asked for this several months ago.
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.
Obligatory forgotten file...
Fix changed link into the mailing list archive.
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.
Follow glibc's lead and add a gcc-3.4.1 required symbol to crt0.S.
Some mips updates. Add a couple of missing sys/*.h files and update a few others.
At solar's request...
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 ...
Apparently the sigaction code added was broken, as it generated illegal instruction errors. Disable it for now.
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.
Always include the sqrtf wrapper in libm so that we don't need to worry about conditionally configuring something else for libstdc++.
Logic was reversed.
Update to add missing c++ namespace support.
Fix dependencies.
Patch by Carl SHAW <carl.shaw(a)st.com>...
Fixes from gentoo.
solar asked that this bit be reverted.
Fix a couple of symbol name issues.
Add a couple of mips-specific string funcs. Port the generic optimized string funcs from glibc, with some tweaks to cut their size a little. The main change is making memmove call memcpy for forward copying to trim redundant code. Make use of both the generic and arch-specific speed-optimized string funcs configurable. Arch-specific take precedence over generic, and generic takes precedence over basic size-optimized uClibc funcs.
Hide some x86-specific devel asserts.
Rip out Peter's unacceptable "fix" and do the sane thing instead; build the utils using the uClibc-targeted toolchain.
Jocke's patch was almost right. Just needed move the DT_MIPS_RLD_MAP test up a bit. Native and remote debugging of shared libs and threaded apps now works on mips.
Revert Peter's __lib_gettimeofday patch. There's the minor issue of adding cruft to include/sys/time.h. But also, there's no sense in making changes like this until we decide how we're going to approach the hidden symbol transition.
Fix some issues with nice(). SUSv3 specifies that it return the new priority if successful, while the linux syscall returns 0. Also, in the non-syscall version, we must be sure to set errno to EPERM on failure since setpriority() can set errno to several possible values. Note: The version of glibc on my debian system is broken wrt EPERM too.
When I broke up the stdio code, the "support pre C99 compilers" va_copy compat define was no longer visible to vasprintf. I didn't catch this since I no longer use such old tools. Unfortunately, some well-meaning but misguided individual decided to just cut-and-paste the macro. :-( Try to clean up the situation by putting it into a header that can be overriden by any archs that need to. If this breaks for anyone (as I said, I no longer use such old tools and so haven't tested), let me know and I'll fix it.
Unlike the other static libs, libdl.a and libdl_pic.a are different. So we need to copy the actual libdl_pic.a or bad things happen when optimizing libdl.so with mklibs.py.
Fix reported bug in error return behavior of sem_timedwait().
Revert last commit. If I had wanted to include that patch, I would have done it myself at least a year and a half ago.
Forgot to change name of builtin buffer during last rewrite.
Replace IXDR_GET_LONG/IXDR_PUT_LONG so that they build with newer gcc. Note the comment in the code.
Change strptime so that it only modifies struct tm fields specified.
Since __syscall_error is a C func, we need to store the syscall return value in the appropriate register. Otherwise, errno is set to random garbage.
Fix 2 bugs in strftime related to glibc struct tm extensions. 1) Need to negate tm_gmtoff field value when used. (bug 336). 2) Deal with NULL ptr case for tm_zone field, which was causing segfaults in both the NIST/PCTS tests and the Python 2.4.1 self-test suite. NOTE: We set uninitialized timezone names to "???", and this differs (intentionally) from glibc's behavior.
A while back, the sysvipc code was changed to use IPC_64 in the calls. Unfortunatly, the semid_ds structs were not changed as needed. So import the necessary (tweaked) files from glibc. Only tested on x86 today, but I'll be testing mips tomorrow.
Add a config option for abort() to shutdown the stdio subsystem. This is mainly to cut down on noise in the NIST/PCTS tests since older POSIX behavior was to fclose() (and hence fflush()) all open streams.
Fix string.h. Change our _susv3_strerror_r to __xpg_strerror_r for glibc compatibility. Also change _glibc_strerror_r to __glibc_strerror_r for consistency.
sjhill appears confused. vapier's earlier commit of string.h was broken. But I fixed it, and tested both x86 (locale) and mipsel before I commited the fixes. Just built with gcc 4.0.1 to see if that was the cause of his problems, but x86 (locale) built fine. So revert his last change.
Since we're now always using IPC_64, we need this. Otherwise, some of the perl tests fail on mipsel.
Update with current glibc version.
Sigh... I wasn't checking for output errors. NIST/PCTS caught it. Hack in some temporary fixes until I have time to clean it up a bit more. Also rework _fpmaxtostr to reduce the size a bit and (hopefully) allow it to build for m68k (vapier tested an earlier version a while back).
Check for __NR_fcntl64.
This fixes the pread/pwrite bugs reported by ltp. But I really need to pull in the latest glibc stuff.
Old glibc fix for ltp's clone07 test. Another file that needs updating...
POSIX requires that fields st_dev and st_rdev to be of type dev_t.
Update from (older) glibc code.
Mark Salter (13):
Add support for DSBT ELF to ld.so
Add sanity checks to ld.so DSBT support
sunrpc: fix spurious fall-through
remove unused vfork.c
use clone syscall for vfork
support generic kernel posix_types.h
support c6x kernel using generic stat.h
cleanup hardcoded syscall numbers
getpgrp: fix fallback handling
llseek: support __NR_llseek syscall
drop support for old systems lacking vfork
Clean up DSBT support
Update C6X support
Markos Chandras (64):
linuxthreads/signals: do not restore handler for invalid signal
buildsys: Fix kbuild-style switch fallout
libc/{arm, i386}/Makefile.arch: Don't build 64-bit code if LFS is disabled
libc/sysdeps: Add new interfaces for new architectures
Config.in: Introduce symbol for arches with deprecated syscalls
Makefile.in: Use non-legacy interfaces for new architectures
dup2: Use dup3 if arch does not have the dup2 syscall
chmod: Use fchmodat if arch does not have the chmod syscall
access: Use faccessat if arch does not have the access syscall
link: Use linkat if arch does not have the link syscall
unlink: Use unlinkat if arch does not have the unlink syscall
mknod: Use mknodat if arch does not have the mknod syscall
chown: Use fchownat if arch does not have the chown syscall
rmdir: Use unlinkat if arch does not have the rmdir syscall
lchown: Use fchownat if arch does not have the lchown syscall
mkdir: Use mkdirat if arch does not have the mkdir syscall
rename: Use renameat if arch does not have the rename syscall
readlink: Use readlinkat if arch does not have the readlink syscall
symlink: Use symlinkat if arch does not have the symlink syscall
utimes: Use utimensat if arch does not have the utimes syscall
pipe: Use pipe2 if arch does not have the pipe syscall
epoll: Use epoll_create1 if arch does not have the epoll_create syscall
epoll: Use epoll_pwait if arch does not have the epoll_wait syscall
inotify_init: Use inotify_init1 if inotify_init syscall is not defined
utime: Use utimensat if arch does not have the utime syscall
vfork: Use clone if arch does not have the vfork syscall
fork: Use clone if arch does not have the fork syscall
ftruncate: Use ftruncate64 if arch does not have the ftruncate syscall
truncate: Use truncate64 if arch does not have the truncate syscall
sendfile: Use sendfile64 if arch does not have the sendfile syscall
lseek: Use lseek64 is arch does not have the lseek syscall
getdents: Use getdents64 if arch does not have the getdents syscall
statfs: Use statfs64 if arch does not have the statfs syscall
libc/statfs64: Skip conversion code for new architectures
fstat: Use fstat64 if arch does not have the fstat syscall
fstatat: Use newfstatat only for 64-bit operations
fstatat64: Use newfstatat only for 64-bit operations
fstatat{64}: No conversion code is needed for new architectures
stat64: Use fstatat64 if arch does not have the stat64 syscall
lstat: Use fstatat64 if arch does not have the lstat syscall
lstat64: Use fstatat64 if arch does not have the lstat64 syscall
ustat: Add ustat stub for arches that don't have the ustat system call
stat: Use fstatat64 if arch does not have the stat syscall
fstatfs: Add __libc_fstatfs wrapper
fstatfs64: Prefer fstatfs64 system call instead of __libc_fstatfs
fcntl: Use fcntl64 is arch does not have the fcntl syscall
open64: Use openat if arch does not have the open syscall
not-cancel.h: Use openat if arch does not have the open syscall
open: Use openat if arch does not have the open syscall
ldso: Use newer syscalls if arch does not have the deprecated syscalls
libc/ipc: Allow architectures to define their own __IPC_64 macro
libc/pause: Enable pause_nocancel for arches without __NR_pause
nptl/allocatestack.c: Fix stack mprotect alignment for STACK_GROWS_UP
libpthread: Remove useless .cvsignore files
buildsys: Add missing $(SYMBOL_PREFIX) to symbol names
elf: Add ELF magic number and relocations for the Meta architecture
ldd: Add MATCH_MACHINE definition for Meta
Add support for the Meta architecture
libm: Add support for the Meta architecture
metag: Add support for loading shared objects into core memories.
extra/locale: Mark __codeset_8_bit_t as packed for Meta
metag: Add NPTL support
Rules.mak: MIPS64: Select correct interpreter
libc/metag: add __kernel_long_t and __kernel_ulong_t
Matt Fleming (1):
linuxthreads: Fix compilation breakage
Max Filippov (5):
xtensa: add missing .literal_position directives
Config.in.arch: enable long double math for xtensa
xtensa: ldso: coalesce dl_mprotect address ranges
xtensa: ldso: drop unused address calculation from _dl_linux_resolve
Makefile.in: add missing dependency on bits/sysnum.h to $(pregen-headers-y)
Maxim Kuvyrkov (1):
m68k syscall: switch to common code
Michael Deutschmann (1):
lift printf field width limit
Michael Durrant (1):
MDAD: The "Config" file message, should say copy to "Config" not "Config.". MDAD: Can be confusing to newbies.
Michel Stam (1):
resolv: try next server on SERVFAIL
Mike Frysinger (1861):
fix a few typos and clean up the spacing (no tabs)
misc touchups
move getent to extra/scripts/ out of docs/
Peter S. Mazinger: use ASFLAGS when compiling asm files
Peter S. Mazinger: make sure the ld RELRO and NOW options are independent options
Amir Shalem writes:
Amir Shalem writes:
fix eriks e-mail address
Justin Cormack <justin(a)street-vision.com> writes: Here is a small patch to add epoll support to uclibc.
Document more things inet_aton() 'should' support but actually doesn't. Most of the time, no one ever notices, so there's not point eh ? Also standardize tab usage.
dont bother including sysctl.h unless we need it
newer linux headers define __cast__ in compiler.h so lets fake it too
add posix_fadvise / posix_fadvise64 support
whitespace touchups
make sure we include pthread.h to define pthread_attr_t
- define RANLIB since a subdir or two uses it - add support for DESTDIR to work the same as PREFIX
tweak target dependencies to support parallel builds
white space clean up
rework the dependencies so libpthread_db.a is only rebuilt when the object files get updated
rework dependencies to support parallel build and avoid re-creating header files all the time
rework dependencies so the archive is re-created only when the object files have been updated
redo targets so the archives are only re-built when needed. also change the logic to use Makefile if statements rather than shell.
use $(RANLIB)
tweak dependencies so the archive is only rebuilt when the object files are updated
fix target dependencies to support parallel building
ok, worry over race condition doesnt exist because we only have 1 subdir running $(AR), and the toplevel $(AR) isnt invoked until subdirs have finished
touchup the dependencies so that the sysdeps object files will override the toplevel linuxthreads generic object files
beautify
add a tiny hack so that the headers target isnt rebuilt all the time, only when it should be
clean up dependencies so libraries are only rebuilt when needed and so that parallel build works correctly
ignore our headers hack
make sure libdl static and shared targets are built properly
merge parallel build support
merge parallel build support
add notes about header generation
no more cvs
touchup the $(AR) mojo to address some bugs by Peter Kjellerstedt
x86_64 fixes: __NR_socketcall doesnt exist, nor does __NR_recv / __NR_send ... so dont try using socketcall() unless the system call exists
x86_64 fixes: update prototype to match the other prototypes
x86_64 fixes: make sure the fall back routine for using umount2() for umount() actually works :)
kconfig for x86_64
headers for x86_64
some source files for x86_64
some more x86_64 source
some more x86_64 source
some incomplete asm source for x86_64
some test header files for x86_64
dont need sysdep.h
update so argc/argv/envp work and binaries dont just segfault immediatly
have the directories themselves rather than the alias subdirs depend on $(LIBPTHREAD)
make sure subdirs requires the toplevel $(LIBM) already exists
make sure we only create libm.a before running through subdirs, then install it
fix typo
add a check target cause i'm lazy
chown syntax 0.0 -> 0:0
add a Kconfig option for setting the $(CROSS) build variable
rename the Status categories to things actually used and sneak more whitespace fixes in too
CROSS_COMPILE -> CROSS_COMPILER_PREFIX like busybox
erm, that #" broke stuff
get rid of linux-headers hack ... rip code from glibc
clean up style to be match i386
whitespace trim
fix 13mo+ old typo
clean up whitespace style and hack around a build failure or two
updates to match i386
merge the syscalls and punt the glibc import in the process (blah, what a waste of time that was :D)
well shared compiles again, so might as well remove the perm disable
change the reg class so it actually compiles
allow users to select MMU again
move the compiler flags WARNINGS option
import updates from glibc
http://bugs.uclibc.org/view.php?id=165 d1mag writes: Compilation of _fpmaxtostr.c generate an internal error by m68k-elf-gcc, and this patch has been used in uClinux-dist to fix it.
make sure we rebuild ldso.o when the dl-*.c files have been updated
make it compile again
add hack like m68k so it *builds* again ... probably needs to be cleaned up like m68k though ...
cleanup & standardize
allow shared code since it builds again
have ldso.c depend on dl-startup.h too
remove pthread_atfork() prototype since SuSv3 doesnt *require* it and glibc-2.3.x has since punted it too from unistd.h
import fixes/updates from glibc-2.3
import more updates from glibc
cbachman writes Bug 195: Add back in the code which sets the default facility if none specified. This may cause issues with klogd when it tries to use the libc's syslog(), but klogd comes with its own syslog() implementation so that's a none issue. For more info, please see the following: http://sources.redhat.com/ml/libc-alpha/2000-03/msg00059.html
In Bug 116, dicksnippe writes:
style updates
touchup defines so that we can use same ssp.c in both glibc and uclibc
tweak whitespace to minimize diffs between i386/m68k
clean up syntax/whitespace and a few variables to minimize diffs between i386/m68k
move tv def back with gettimeofday() func
touchup syntax for no real good reason ;)
change the old pads to the new nano sec fields
sync whitespace with glibc
whitespace tweak, dont mind me
hide the #ifdef debug macros/printfs behind one function to make the code more readable
would help if it actually compiled :/
rework the debug _dl_dprintf usage to avoid #ifdef macros and make more readable
whitespace/syntax cleanups
create some DEBUG macros for the ld debug early
move _dl_if_debug_dprint() to shared ldso header
use _dl_debug_file instead of hardcode 2
remove __IPC_64 in syscall() macro since real 64bit arches dont need it (and it doesnt compile)
also symlink asm-$TARGET_ARCH if it exists
ifdef out check which always fails
if we have a signal handler in place to cover SIGABRT, we have to make sure the code that unregisters it raises SIGABRT again so the program actually aborts
whitespace/syntax updates
tweak to get rid of warning when TZ is disabled
always define __IPC_64 regardless of __NR_ipc
cast buf as void* to fix warning
declare init/fini as weak if __UCLIBC_CTOR_DTOR__ is turned off
rename crt0.S to crt1.S and clean up so it actually works :)
unneeded quotes
add syscall error handling with jockes simple errno setting solution
make sure we setup stat64 too
update Makefile to match ppc and new files
syntax tweaks
if both __NR_send and __NR_socketcall do not exist, fall back to __NR_sendto (same goes for recv/recvfrom)
previous commit of trimming __IPC_64 wasnt quite correct ... rework __IPC_64 so that it will compile and it is correct
need to include features.h to get uclibc defines
need to include features.h to get uclibc defines
touchups syntax and fix warning when using 64bit arches
touchup syntax
clean up and use topdir .config instead of local Config
simplify TESTDIR setting and touchup
need to include string.h for some mem funcs
need stdlib.h for some things
use %p instead of %x to show addresses so we dont have to worry about the sizeof pointers
use %p instead of %x to show addresses so we dont have to worry about the sizeof pointers
err revert %p->%x change since _dl_printf() is not fprintf()
small whitespace fix
typecast to long instead of int so pointers on 64bit arches can be typecast safely
change all Elf32_* usage to ElfW(*) usage since we shouldnt care about the bitsize
whitespace tweaks
create generic ELF_* macros to hide 32/64 bit differences
if the include files get updated we want to rebuild
fix typo in umount2() emulation of umount()
remove pointless exit 1 ... if $(AR) fails then make will abort ok
oops, we dont want to use relative paths for the header files
exit with an error if thread functions failed so make can detect the problem
fix ALL_SUBDIRS/DIRS setting so clean always kills everything
fix type casting so we dont have any warnings on 32/64 bit arches
remove unused variable
type cast output to prevent build warnings
type cast output to prevent build warnings
dont try to run ldd if LDSO_LDD_SUPPORT is disabled in .config
remove old depend on Config and make it so that a test failure aborts the make process
make test output nicer so its easier to go through a log of `make -s` and find out what works/fails
make the test silent/non-interactive and only abort if it actually fails
update tests to check exit status and abort only if things didnt work correctly
reenable the glibc portion of the test so that we can do a non-interactive/silent comparison between uclibc and glibc results
use $(CROSS_COMPILER_PREFIX) by default for CROSS setting
GNU libc -> glibc
update the debug macros so they build with newer gcc versions
we have to depend on BUILD_UCLIBC_LDSO in order for the makeconfig output to look right
add a new option for enabling pthreads debug output
remove errno include since we dont use any errno stuff, remove #error left behind, and touchup syntax
tweak whitespace/syntax
make sure we include features.h to get the hidden define
make sure we include features.h to get the hidden define
sync up against latest glibc and add errno handling
enable clone.S
sync with glibc
sync with glibc
use C style comments
sync with glibc versions
use new __always_inline define
use new __always_inline define
sync with glibc
new testcase for clone()
make sure we strip quotes from the cross compiler prefix
exit according to how many tests failed
new testing framework to unify duplicated code in subdirs
move to new test framework
move to new test framework
move to new test framework
use the a_val member instead of a_ptr/a_fcn since newer elf defines dropped the other values
import armeb fixes as outlined by John Bowler
make test failures fatal
we need stdio.h for printf()
add support for __MALLOC_GLIBC_COMPAT__ (malloc(0) == NULL) so the malloc test wont fail
use % as the function marker instead of @
make sure ldso.o depends on more files in subdirs
import start of ldso based on glibc
syntax touchups as suggested by Peter S. Mazinger
Peter S. Mazinger writes: we dont need features.h
err, need to commit the rest of the changes from psm too
Peter S. Mazinger writes: use the __syscall_error.c trick to handle setting errno
update comments/syntax and make sure we include features.h for the hidden define
setup ELF_R_TYPE() wrapper for ELF{32,64}_R_TYPE()
need features.h for the misc attribute defines and uclibc features
rip out all the duplicated debug code and move into a shared file
make RUNPATH/RPATH support configurable
Yoshinori Sato writes: Dont forgive that length of munmap is "0" in current nommu. This purpose cannot free memory area really. It is a patch to work out a solution.
update syntax
add update from psm to support 6 arguments to syscall
dont need errno.h anymore
clean up from psm ... merge glibc updates and punt errno handling in favor of jockes trick of using __syscall_error
remove broken asm code in elf_machine_dynamic() and just do it the glibc way (since it works)
clean up whitespace
add debug code for showing argc/argv/envp and touch up some other debug output
get rid of arch-specific defines in dl-startup.c and make each arch declare its requirements about initial bootstrapping
fix GET_ARGV() so it pulls out the argc/argv/envp properly
dl-debug.h for m68k
dl-debug.h for sparc
help if i named the var correctly ...
help if i named the var correctly ...
whitespace clean up
CRT0_ -> CRT_
need _DEBUG macros for NUMBER too
err, x86_64 is RELA, not REL
add some more useful debug output
oops, we want to jmp to the syscall handler, not call it
setting envp is pointless since no other arch does it
need the ioctl header file
need unistd/string header files
make sure the call to signal() worked
might as well test mmap64() too
the generic mmap.c is not good enough for us, we need the syscall6() version
we need the syscall6() version of mmap
make sure we use long instead of int so we dont truncate 64bit values
update style
rewrite crt in asm using glibc as a basis
style updates
drop the envp code
this should be able to handle both 32 and 64 bit sparc
import the __syscall_error trick for errno handling
punt unused __pthread_return_void func
update __UCLIBC_CTOR_DTOR__ check
merge updates from glibc and fix up to work again
alphabetize and warn if an arch is undefined
define an abort instruction for alpha
define an abort instruction for m68k
need syscall.h for __NR_clone definition
add some info on what needs to be done for specific arches
make sure the SEND_NUMBER_STDERR macro doesnt modify the number given to it
declare reloc_addr as ElfW(Addr) instead of Word since it is an Addr, not a Word (and it will truncate addresses on 64bit hosts)
base __rtld_stack_end off of argv instead of args so we dont have to worry about how each arch treats args
minor touchups in debug output/comments
create a new wrapper macro for debug early output
use the debug dprint macros to clean up readability
use the debug dprint macros to clean up readability
force hash buckets to work off of 32bit quantities
dont use void* when we know the type of pointer we want
import fix from glibc to resolve segfault reported by wmq in Bug 335
use wrapper debug macros to improve readability
use Elf32_Word instead of uint32_t since that is what the ELF spec refers to
oops, fix typo in ELF_ST_BIND macros
dump the address we transfer control to
eat pointless whitespace
import the rest of the glibc start.S so PIE works
remove unused instructions
when running shared tests, use the toplevel ldso
a [mostly working] elfinterp.c based on i386 / glibc
allow people to build shared/ldso but disable threads
add support for passing nano seconds (if arch supports it)
with the help of John Bowler, track down the ugly ABI change between 2.4 / 2.6 on big endian arm kernels and work around it best we can at runtime
make sure the stat64 struct is packed to prevent further ABI headaches as done in mainline 2.6
add support for nanoseconds
rip out previous armeb old-stat abi compat code since arm linux opinion is that the old stat.h abi was for little endian only ... people should use this patch to fix their armeb kernels: http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=863/1
tweak whitespace
syntax cleanups
whoops, reversed naming of nano sec members ... kernel uses _, user space does not
update notes about alpha/x86_64
add a basic errno test based on one from ltp
dont run ls and make sure diff aborts if it fails
add some asm magic to fix setting errno/ret values in the .S functions
tweak $TOPDIR usage to not have duplciate //
the errno settings was fixed but the return value was still being clobbered ... fix that too
check the return value of the clone call too
the common sem.h is good enough for x86_64
add c to default ARFLAGS to get rid of ar: creating blah.a messages
fix whitespacing
if fcntl() is called with a 64bit command and LFS is enabled, pass the command along to fcntl64 instead of returning ENOSYS (error detected by LTP fcntl18)
just use -g as -g3 is overkill (and sometimes unstable)
further refine output so the silent mode of make is truly silent
get rid of LDPIEFLAG since PIEFLAG is already used
finish cleaning up the PIE flag checks
export PIEFLAG and the noexecstack AS test so that gcc/as arent executed in every subdir
we are handed errno as a negative value so we need to reverse it
remove outdated comment and announce support for nanoseconds
as pointed out by khem/ngupta, ARM926T should be march armv5 instead of armv4
yvasilev writes in Bug 235: uClibc uses wrong word order in vfp floating point arithmetic. I found this using my modification to N. Pitre's soft-float gcc patch, but this modifications were made just to allow gcc to compile code for armv4l, while nothing about fp arithmetic was changed.
whitespace it
remove strip flags and let STRIPTOOL do the work
eat whitespace
remove duplicated _syscall6 definitions and unify them with a define
need to run STRIPTOOL with -s to replace behavior lost from gcc -s
remove unused/pointless variables
move __fpscr_values out of crt0 and into libc as proposed by Daniel Jacobowitz so that libm.so links properly with newer toolchains
use sigprocmask instead of internal __sigprocmask since __ version doesnt always exist
update crt0 to crt1 based heavily on glibc start.S and to sync up with __uClibc_main changes
eat whitespace
need -s for STRIPTOOL with iconv too as psm pointed out
date: 2005/08/07 07:53:58; author: drepper; state: Exp; lines: +1 -1 (DT_ALPHA_PLTRO): Use symbolic name in DT_ALPHA_PLTRO definition.
note the architectures which still need to be updated
rework the headers depedency so that it plays nice with parallel building
disable early debug code if the arch relies on certain values (like load_addr) which are computer later
clean up whitespace/syntax
use the inline version of _dl_parse_dynamic_info
In Bug 364 by hassold: Configuration symbol __UCLIBC_HAS_WCHAR__ is tested as defined line 249 of features.h, whereas header bits/uClibc_Config.h, where it is (eventually) defined, is not yet included (line 267). As a consequence, symbol __STDC_ISO_10646__ is never defined, and several programs believe C libary hsa no wchar support.
fix some sign warnings pointed out by gcc-4
jump straight to __syscall_error
add back in the LDPIEFLAG since -fPIE does not imply -pie
touchup PIE support for all the utils and fix stripping on iconv
missed one of the __error names in changing to __syscall_error
revert __error -> __syscall_error change since it doesnt work for clone
import thumb support from jbowler in Bug 385
eat whitespace
import thumb support from jbowler in Bug 385
import thumb support from jbowler in Bug 385
rip out iopl from ioperm.c so it will override the common iopl.c
arm has its own iopl.c now so we dont need ugly #ifdef check for arm
import thumb support from jbowler in Bug 385
move arch-specific checks out of shared dl-syscall.h and into arch-specific dl-syscalls.h
remove quote char which doesnt belong
write some good manpages
add an entry about __fputc_unlocked link errors
add a 0.9.27 compat symbol (_glibc_strerror_r) since the function has since been renamed to __glibc_strerror_r in 0.9.28
when installing the include files, skip .svn, linux, and asm dirs since they are just symlinks (and could possibly be pointing to right where we are installing)
dont install linux/asm headers if KERNEL_SOURCE == DEVEL_PREFIX
make sure UCLIBC_LDSO is defined if we are running in a test subdir rather than toplevel
start of some rpc tests
add the posix_memalign function
posix_memalign and posix_fadvise are in uClibc now
also check for __thumb__
moved/updated to docs/man/
install the manpages that are in the docs subdir
we have getprotobyname_r() now so use it
remove some debug code
import updates from glibc
add __thumb__ check
remove 0.9.27 compat alias
style tweaks
rework some of the code to shrink size
add support for getrpcbynumber_r/getrpcbyname_r/getrpcent_r and a config option to enable REENTRANT RPC
use generic ELF wrappers
add support for getrpcbynumber_r/getrpcbyname_r/getrpcent_r and a config option to enable REENTRANT RPC
some updates from psm to better mirror glibc getent behavior
add a link_warning() like glibc so ppl will [hopefully] stop using mktemp. also redo whitespacing.
import a64l and l64a from glibc
a64l/l64a are now in uClibc, mkstemp and mktemp already were
add a note explaining the weird h_errno definition
allow people to select target sparc architecture
optimize library based upon sparc cpu selection
import different optimized versions of div funcs based upon target sparc arch
oops, new math code needs this
import sparc-optimized string functions from glibc
Frank Mehnert writes: libc/misc/time/time.c does not compile if __UCLIBC_HAS_TZ_FILE__ is disabled but __UCLIBC_HAS_TZ_CACHING__ is enabled. The following patch fixes this issue.
some fixes by anemo in Bug 9 to play nicely with 32 or 64 bit hosts
anemo writes in Bug 9: use ElfW(auxv_t) instead of Elf32_auxv_t
add M_PERTURB define from glibc and Frank Mehnert writes: the following patch fixes a compile problem where malloc.h was included into a C++ file
add (size_t)-1 border case tests for strncat and strncmp, and add a bunch of tests for strnlen based on strlen
fix string functions to not treat the size_t as ssize_t
make sure the syscall mmap func isnt exported
grab a tiny mmap implementation from glibc
dont fail if target doesnt support mmap64
clean up code and make it easy to extend
grab some updates from glibc
dlvsym stub
unused
Fix by Martin Schlemmer: If _DL_FINI_CRT_COMPAT is defined, _dl_fini is setup to run at exit via atexit(), but this makes it run _before_ the fini (__app_fini()) of the app, causing stuff like sandbox that frees structs, etc via its fini to segfault. http://bugs.gentoo.org/98187
punt _DL_FINI_CRT_COMPAT option now that 0.9.28 has been released
import license updates from glibc
sync code style with glibc
slight tweak to minimize diffs with glibc
sync with glibc
sync with glibc
sync with glibc and remove duplicated SEM_VALUE_MAX define
make sure function is always inlined
import misc defines from glibc
import the helper function pthread_for_each_thread from glibc
import pthread_attr_{get,set}stack functions from glibc along with a few attr fixes
import some fixes from glibc
sync with glibc
sync license with glibc
sync license with glibc
sync with glibc coding style to make further updates easier
sync misc trivial touchups from glibc
uClibc has pthread_attr_{get,set}stack now
sync with glibc and import pthread_rwlock_timed{rd,wr}lock in the process
import some fixes from glibc
make sure we use optimized version when building for newer intel/amd cpus
punt wrapsyscall.c as glibc has
sync prototypes with glibc
sync changelog with glibc
add hidden_def() macros from glibc but stub them out to cut down on diffs
sync all the strong_alias and version compat stuff but make them no-ops with #if magic to cut down on diffs
revert pthread_exit change until all files using new prototype is ready
sync with glibc by moving the thread_desc stuff out of internals.h and into a new file descr.h ... also redo thread_desc init by specifying members in the struct by name rather than position
newer linuxthreads renamed the function invalid_handle() to nonexisting_handle()
sync with glibc and macro out the strong_alias/versioned-symbols to cut down on the diffs
sync some style changes and stack fixes with glibc
sync style changes and misc fixes from glibc
remove duplicated p_canceled setting and extra whitespace
Robin Getz from blackfin.uclinux.org writes: Bernd Schmidt found/fixed this problem in uClibc:
syntax/whitespace touchups
make sure we treat count as size_t, not ssize_t ... fixes with help from khem
declare _init/_fini weak if UCLIBC_CTOR_DTOR is not defined
dont duplicate pthread.h in include and libpthread subdirs, so symlink it
merge some updates from glibc to fix 32/64 bit support
merge x86_64 optimized string support
move misc internal definitions to a sep file to minimize differences with features.h from glibc
merge some misc stuff from glibc
also symlink thread_db.h instead of duplicating it, fix the clean target, and touchup the headers target so we dont create bogus dir symlinks
touchup CFLAGS and also link the link.h header file like we do with elf.h
add some more defines from binutils since our readelf uses it
sync copyright with glibc
clean 32bit-isms and make code 64/32 bit clean
dont screw around with lib/ if it doesnt exist
generate headers after running menuconfig
make sure our utils link against the currently built libc rather than the toolchain one
use local header files rather than toolchain header files #444 by ee_doright
clean up -malign- vs -falign- #352 by yvasilev
fix building
merge additional license cruft from glibc
only include libc-tsd.h if we have threads support
uncomment posix_fadvise prototype since we implement it now
merge updates from glibc
fix building with locale
cleanup the release target so that it doesnt kill my svn checkout anymore :/
add an entry about gnu malloc compat option
add a charset def and update the doctype
close <a> tags like they should be for valid html
use & instead of &, tweak style, and add link for Embedded Gentoo
simplify the security submenu
re-order options to fix menu tree display
add a headers target when the config file doesnt exist, and move the clean targets out of the .config if
produce a .os instead of .oS
merge headers/clean changes from the config if
change .os back to .oS per psm
tweak rules so we dont have to copy the .c files to get 64bit versions
update DOPIC option to properly describe what it does
move more rules out of the if HAVE_DOT_CONFIG statement which dont belong
set default STRIP_FLAGS and change how we detect silent mode
sync with glibc to fix building xorg-server
cleanup how we enable/disable certain wrappers since some were suffering from bit rot ... also enable the round float wrappers
add implementations from glibc for the round functions
add a macro for __attribute__ ((__noreturn__))
initial import of a nicer output display akin to linux-2.6
make the crt rules prettier too
unify common code thus making arch-specific Makefiles very simple :)
use errno.h like in i386
need our own page header file to prevent warnings
makefiles for new build system
fix arch_headers target
dont need to run `find -name .svn` since tar already excludes .svn
old header file
use the common/bits/types.h since it has proper 64bit support now
implement __pthread_init_max_stacksize() which is required for FLOATING_STACKS
make cp silent
fix building by grabbing latest versions from glibc
update license
use make builtin $(wildcard) rather than $(shell ls)
sync with glibc to get rid of warnings
sync with glibc
booooring license updates
fix __intptr_t for 64bit arches
sync with glibc
update license
sync with glibc
add support for cirrus maverick fpu using patch for glibc http://yann.poupet.free.fr/ep93xx/
remove unused ARCH_LDFLAGS and touchup broken whitespace
mark all broken arches as such so people know not to expect too much
make people provide these headers when porting
initial port to hppa
quiet the make -C
add a way to just run uclibc or glibc tests
import test from glibc
need to declare our stack direction
remove unused file
import some math funcs from glibc
update license info
use $TOPDIR instead of ../ and utilize -B so that our target utils use the correct crt files
make sure TARGET_ARCH is set ... thought i committed this already?
sync getopt headers with glibc
update licenses and sync with glibc
as psm points out, we need to use bits/getopt.h in unistd.h since getopt.h wont exist if user disables the option
use clone() instead of __clone()
revert linuxthreads to pre rev 11377 (i.e. before the massive attempt to import glibc updates) while keeping the few bugfixes ... idea is to keep both old and new linuxthreads around so we can hack on the new version while delivering the old stable version to end users
unused
rename current stable linuxthreads to linuxthreads.old to prepare for import of latest glibc version
add rules to handle .s and .E
include pthreads if appropriate ala glibc
import updates from glibc
this is GNU source
sync with glibc and fix warning when building pthreads
condense rules to be easier to read
add support for .s translation like .S
rename files to .s like they should be
rename files to .s like they should be
update copyright and license, add _BITS_SETJMP_H protection around the file, make sure we are only included by setjmp.h and pthread.h, and fix casting of address/jumpbugf in _JMPBUF_UNWINDS
touchup pretty STRIP output a little
allow the threads option
we want to compare the register value itself, not the address of the variable holding the register value
dont try to build fork if the arch doesnt support it (like ia64)
dont try to build getpgrp if the arch doesnt support it (like ia64)
import new linuxthreads_db from glibc HEAD
shouldnt have been committed
update ignores
dont include sub makefiles if thread support has been disabled
fix warnings when arch lacks get_kernel_syms syscall (like ia64)
add support for ia64
fix trailing comment
touchup syntax/whitespace
move alpha/hppa into their own arch subdir where they should be
grab fix from glibc: 2005-11-18 Paul Brook <paul(a)codesourcery.com>
rename common Makefile.arch to prevent include funkiness from occuring
rename common Makefile.arch to prevent include funkiness from occuring
make sure we pull in features.h
touchup whitespace
simplify Makefile rules for handling of LFS files by tweaking the way we compile the source files as suggested by psm
dont want to delete the 64.c files anymore
fix tab issue properly by not using tabs
fix up ifdef checks so dl_iterate_phdr is defined in all the proper objects
sync with glibc
sync with glibc
sync with glibc
sync with glibc
2005-11-02 Daniel Jacobowitz <dan(a)codesourcery.com>
fix bswap32/bswap16 macros for non-linux targets as reported by Melange in Bug 553
tabs -> spaces
tweak restore function definitions like glibc does it to get rid of warnings
tabs -> spaces
default PIE to off
add some copyright info
touchup output and move .PHONY to the shared Makerules so all subdirs get it
remove headers_done since it broke buildroot again
rework depends and stripping so that libraries arent rebuilt all the time in a loop
use the local elf.h since the host toolchain probably sucks #555
touchup include paths
sync include paths and copyrights with glibc
change to Lesser GPL 2.1 as pointed out by psm
update license with glibc
update license
sync with glibc
sync with glibc to get 64bit fixes
sync with glibc to get rid of warnings
import 32/64 bit compat support from glibc
import license updates from glibc
update license
update license
grab ptrace.h from glibc
turn off wordcompat by default
move all options before non-options as pointed out by Paul Brook
Paul Brook reports: fix build failure with newer binutils
sync with glibc and Paul Brook says: fix posix_memalign prototype by dropping __attribute_malloc__
define MREMAP_FIXED
sync with glibc cvs
Paul Brook writes: I'm getting the following build failure on arm-linux:
Paul Brook writes: The functions __check_one_fd and __check_suid in libc/misc/internals/__uClibc_main.c are only used used when __ARCH_HAS_MMU__. The patch below surrounds them with the appropriate #ifdef.
fix warning using glibc method
sync with glibc to parse error in C version of test_and_set
grab some headers/updates from glibc
get rid of unused sysdep.h header
dont display cd;make
fix warning about __random() not being a prototype
touchup whitespace
tweak setting of so/a-y slightly
sync with linuxthreads.old_db/Makefile.in
grab header from glibc
sync with glibc header
sync with glibc (and shrinks the object code nicely by like half)
touchup how we declare the posix_fadvise functions and fix the case where posix_fadvise kernel call exists but not posix_fadvise64
grab header file from glibc
sync with glibc
get rid of mips-specific types.h since common one contains more fixes
add support for generating .s files for debug purposes
link in new hp-timing.h file
fix libc_hidden_builtin_def
add some notes (thanks to mjn3) as to why we need these weaks, remove all the weaks that we arent actually using atm, and in general touchup the code
better help message for regex_old
a small TODO
only define offsetof macro if it isnt already defined
use the internal pthread_mutex_init()
touchup whitespace/comments
first pass at hidden_def() macro based on the glibc one
hide some internal pthread functions
include more paths in libpthreads
macro out the thread funcs in libc if threading is disabled
add an abort for arm
touchup style
add attribute_unused and include features.h so that we can include libc-internal.h directly and have it work
clean up warnings
macro away the last parameter since we dont actually utilize it (saves a few bytes) and fix signed warnings
sync with glibc (grab some hidden updates) and fix some warnings
fix warning
fix some warnings
fix a warning
fix signed warning
fixed unused warning
remove .oS too
fix signed/unsigned warnings and unused warnings
include features.h instead of sys/cdefs.h
Jie Zhang writes: I think the loop was written for MMU case. When there is MMU, mmap () is used to allocate the stack. If one segment is already mapped, we should continue to see if we can use the next one. However, for NOMMU, malloc () is used. It's waste of CPU cycles to continue to try if it fails. Here is a new patch, which makes this change only for NOMMU.
Jan-Benedict Glaw writes: This patch is wrong and breaks (at least) building a static libc. The $(MISC_FNMATCH_OBJ) file still uses the .c extension, thus isn't built at all and eg. strip'ping the .c file fails, breaking the build.
Aubrey writes: When I mounted nfs on my target, the kernel crashed. And I found it was caused by stack overflow. When I digged into it. And I found not only "setgroups.c" but "getgroups.c" have the matrix (__kernel_gid_t kernel_groups[n]) on the stack which can be very large because "n" can be assigned to NGROUPS_MAX.
kill off minor warning
2005-12-15 Aubrey.Li <aubreylee(a)gmail.com> writes: When I mounted nfs on my target, the kernel crashed. And I found it was caused by stack overflow. When I digged into it. I found the following issue.
kill off simple unused warnings
kill off simple unused warnings
kill off simple unused warnings
fix signed/unsigned warning
revert debug "fix" since it isnt correct and previous version works
nlist should be unsigned, not signed, as it tracks # of elements in init_fini_list
fix salt type in setup_salt()
tweak prototypes to match the exported versions
kill off minor unused warnings
cut pointless files
typecast away a signed/unsigned warning
kill off unused warning
typecast away signed/unsigned warnings
include grp.h just for fun
make sure we handle the (malloc(0)==NULL) case as Aubrey points out via the e-mail list
make sure we handle the (malloc(0)==NULL) case as Aubrey points out via the e-mail list
hide __kernel functions
make sure mq_timedreceive() and mq_receive() is always defined
make sure mq_timedsend() and mq_send() is always defined
hide some functions to cut down on relocations
pointless whitespace touchups
hide the internal libc pthread_mutex funcs
beautify
touchup code a bit to prep for new weak system
sync whitespace with glibc
kill off some signedness/unused warnings
fix signed/unsigned warnings
use errno.h not sys/errno.h as pointed out by sjhill
beautify utility building
need to make sure elf_find_dynamic(key) is big enough to handle 64bit hosts
use ElfW(Addr) instead of ElfW(Word) since elf word types are always 32bits in size, even on 64bit hosts, while Addr is the proper native size ... also get creative with our signed/unsigned usage to get rid of warnings
tell people to ignore these two warnings unless someone can figure out how to make them go away ... the vfork() is safe due to the logic following it
Bug 616, Thomas Chou: update crt to new 0.9.28 uClibc style
update to new build system
Bug 616, Thomas Chou: dont use -msoft-float on nios2 ports
fix path to heap.h as point out by thomas_chou in Bug 617
previous st_dev change from unsigned long (4bytes) to __dev_t (8bytes) needed to shrink the pads as well to maintain ABI compat
for /bin/sh, use `` instead of $() as pointed out by Jan-Benedict Glaw on the mailing list
quote arg to shell-ed grep as pointed out by Jan-Benedict Glaw
fix previous commit so that __uClibc_init() is run for non-mmu cases again as report by Thomas in Bug 618
touchup comments and define Blackfin for Jie Zhang
import a bunch of EM defines from gnu binutils
import a bunch of defines from gnu binutils including blackfin for Lie Zhang
Joseph S. Myers writes: I needed this patch setting CPU_LDFLAGS to build uClibc for little-endian MIPS (with a compiler with both little-endian and big-endian multilibs); otherwise it used ld (in default big-endian mode) to link little-endian objects.
Joseph S. Myers writes: This patch fixes the build of libpthread for MIPS. The definition of _test_and_set uses __THROW after the prototype: but attributes are only accepted after the prototype in function declarations which aren't definitions, not between the prototype and the function body in a definition. The proper macro to use here is __NTH (placing the attribute before the prototype).
we dont need to loop calling abort() because abort() already loops for us
add optional support for program_invocation_name/program_invocation_short_name
tweak what is likely() in the argv[0] parsing
if arch doesnt provide _syscall6(), we need to alias the 64bit version
kill off some unused warnings
use weak handling instead of .set
tweak __progname handling some more since some [bad] apps actually try and use it
update pthread weak handling to the style glibc uses
now we can safely declare these hidden
unused
Bug 618, Thomas Chou: update crt to new 0.9.28 uClibc style
Bug 618, Thomas Chou: update build flags for nios target
update buildsystem to new style
update build files
need our own version to prevent warnings
remove duplicate ;
implement syscall6
sync __SYSCALL_CLOBBERS macro from glibc
sync Joseph S. Myers fixes from glibc for a better NAN define
sync Joseph S. Myers fixes from glibc for proper clobbers
use tabs for whitespace
grammar fix
fPIC doesnt work on bfin
grab syscall macros from linux headers
import the extend_alloca() macro from glibc
update libc lock functions to new pthread forwarding
add note about HPPA
Jan-Benedict Glaw writes: The "test" program (aka '[') doesn't know about the operator "==", but "=" is correct (cf. http://www.opengroup.org/onlinepubs/000095399/utilities/test.html).
Jan-Benedict Glaw: allow people to override the default `tar` binary via TAR make variable for non-GNU systems
Jan-Benedict Glaw: run shell scripts through $(SHELL) so people can force it to something other than /bin/sh
sync with glibc
rework the alloca() loop slightly to save some space
use hidden read/write symbols
used hidden close
use hidden strcmp
create __if_nametoindex hidden alias and use it
as weber notes in Bug 99: if_nameindex doesnt list all of my interfaces!
simple test for the if_nameindex() related functions
psm says: fix your linuxthreads / linuxthreads.old typo stupid!
include prototype for __syscall_rt_sigaction
update to parisc cvs
use an exclude from file rather than trying to pass wildcards in shell
dont include atexit() if uClibc doesnt support it
fix typo
just define the macros all the time
import the arc4random() function by ashes in Bug 90
touchup code a bit and shrink it by a few bytes
stat update
prototypes for arc4random
hide __sigjmp_save
fix building on 64bit hosts
add missing hidden alias for 64bit hosts
fix warnings when __NR_socketcall is not defined and building recv()
kill off two more relocs
hide internal funcs to kill off more relocs
hide internal _net_stayopen symbol
hide internal atexit symbols
create an alias for internal usage
hide internal _string_syserrmsgs
hide internal symbols
hide internal __libc_drand48_data symbol
hide internal __time_tm/_time_tzinfo symbols
hide internal ahostbuf symbol
hide the internal __in6addr_any/__in6addr_loopback symbols
hide internal _string_syssigmsgs symbol
create hidden alias for truncate/ftruncate and use those in the 64bit versions
declare the internal syscalls static inline
create a hidden internal pagesize symbol for libc usage
declare static
create & use an internal alias to __uClibc_init()
fix errno handling with some magical hacks
patch by Jocke to fix up lazy relocation
other half of lazy relocation from glibc dl-trampoline
include stdinit for arc4random() as pointed out by Jan-Benedict Glaw
need _GNU_SOURCE for the strsignal() func
sync with glibc
add missing __strcoll alias
copy strcoll aliases from arm
dont include linux/types.h
update for newer binutils
update for newer binutils
dont include linux/types.h
list more relocs
give the 64bit ldso on amd64 a slightly diff name so (in the future), we can do multilib
force -fsigned-char for everyone
just define _GNU_SOURCE
support a few more relocation types
more fixes by Thomas Chou in Bug 618
more fixes by Thomas Chou in Bug 618
fix by Thomas Chou to allow building of nios targets out of the box
fix by Thomas Chou to allow building of nios targets out of the box
dont depend on libc.so if we dont have shared
generate a symlink for older targets (like nios)
remove unused symbols
Aurelien Jacobs writes: The kernel include guard that uClibc rely on for POSIX_TYPES_H on ppc has changed in linux-2.6.15. Here is a trivial patch to fix this issue.
add aliases for strcoll when needed
need to include bits/sysnum.h for all of our __NR_* defs
need features.h for the alias macros
fix warnings when building on sparc
move the HAVE_SHARED/libc check down to after we source .config
no point in keeping this in svn
Thomas Chou says in bug 618: add missing __vfork: label
only create crt0.o compat link for certain arches
remove newlines from warning messages
cleanup code and dont use %m glibcism
import amd64 sem.h from glibc
sync with glibc
sync with glibc
Jie Zhang writes: This patch defines __kernel_old_dev_t for Blackfin. It also removes two trailing whitespaces. Please apply it.
dont redefine _GNU_SOURCE
descend into mmap subdir
dont use LDFLAGS when just compiling
import headers from glibc
we dont want to truncate the offset when dealing with the syscall3 version as this will screw up some 64bit hosts
test for seek funcs
only chown on include subdir in DEVEL_PREFIX
fix a (very unlikely) page leak
use LDFLAGS when linking .so files as pointed out by Peter S. Mazinger
make sure all shared libs depend on interp
dlopen test also requires threads :/
fix up ability to rename ldso
simple stdarg test
make sure linux/types.h doesnt screw us up
fix sem funcs on 64bit arches
dont include bits/kernel_stat.h as xstatconv.h already does and use sys/stat.h rather than bits/stat.h
use regular headers rather than trying to get tricky
64bit arches dont need no stinkin fcntl64
need features.h for new HIDDEN_JUMPTARGET()
enable _longjmp alias else less fails to build
update to new uClibc startup style
sync with glibc
sync with glibc
old
update TODO
shouldnt have trimmed the _ASM #if check
need features.h
forgot to cut out the other __USE_MISC section
use __syscall_error trick
use regular fseeko()
make sure we set errno properly
fixup so we can at least get to the ldso Standalone execution step
add back in _dl_start_user
m68k ldso works again (well, lazy relocation is broken atm)
m68k is doing much better now
grab some more fixes from x86_64
dont hide __libc_sigaction
fix loading of argc/argv for arm/nommu
fix broken commenting
use more portable options since some systems suck
nios no longer needs crt0.o
add syscall() by d1mag in Bug 164
only declare vfork when needed, else no-mmu build fails
Thomas Chou: fix misplaced comment
only build if we have fork
syscall6
touchup style
since just about everyone uses return _dl_elf_main for START() now, make it the default
sync some stuff from glibc and fix __hidden_ver1() for targets that define a USER_PREFIX (like bfin)
m68k now has syscall()
update strcoll stuff
cleanup whitespace
cut out unused code
use the 6-arg version of mmap where available
get rid of arch specific checks
get rid of alpha defines
check for signal existence rather than using arch defines
sync fenv.h with glibc
old
fix UCLIBC_STATIC_LDCONFIG location in menus and touchup display for other shared lib options
change HAS_FPU to UCLIBC_HAS_FPU since the define will be exported into C namespace
s/HAS_FPU/UCLIBC_HAS_FPU/
give a little info as to what the file should contain
give a little info as to what the file should contain
initial attempt at documenting how to port uClibc
note a few more places where glibc stores their stuff
move a bunch of arch-specific checks out of common files and into an arch specific header file to make porting/updates a lot easier
update syscall macros so both ldso and libc can use them
first pass at updating sparc ldso with code from glibc
update sparc code using x86_64 as a template
Frank Mehnert writes: in ldso/ldso.c, function _dl_get_ready_to_run, the variable app_tpnt_tmp is not initialized. The function _dl_parse_dynamic_info() initializes some of their members but not all. For example, if the binary does _not_ contain a DT_TEXTREL record, it is possible that the condition if (app_tpnt->dynamic_info[DT_TEXTREL]) is nevertheless true and we therefore enter the following code path (ldso.c:270).
would help if i used the right variable name ...
fix breakage from HAVE_ELF removal and standardize all the arch config files
move the sh64 code out of the sh header
update copyright years
s/TARGET_ARCH_FEATURES/FORCE_OPTIONS_FOR_ARCH/ to fix sed breakage as pointed out by Joseph S. Myers
move some generic arch rules up a level to remove duplication
didnt mean to commit the FENV option just yet
grab some macros for internal ldso usage and fix strong_alias/hidden_strong_alias when .set support is disabled
disable deprecated warnings for some files
fix warning when sizeof uchar_t is 8 bits
fix building/warnings on 64bit arches
need unistd.h for brk prototype
fix building on alpha
need sys/syscall.h for __NR_fork define
fix building on alpha
.set doesnt work on alpha
grab syscall macros from the kernel
need prototype to fix sigaction warnings
dont force linuxthreads db if debugging is enabled
fix unused warnings
fix building on 64bit hosts
fix building on 64bit hosts
import syscall from glibc
grab alpha version of mman.h from glibc
fix building with gcc4
add support for arch_prctl() (only used on x86_64 atm)
kill off redefined warnings
depend on ldso
cleanup and use the style of other *64 funcs
sync with glibc
touchup page a bit to try and be clearer about which list we are talking about
first (broken) pass at updating to new crt style
Ricard Wanderlof writes: Here's a patch to avoid a name clash between include/bits/byteswap.h and the kernel include file <linux/byteorder/swab.h> . (Normally both aren't included by the same file, but we've had one case where a conflict occurred at link time, thus necessitating the patch). I've also taken the opportunity to make the general structure and namespace of the file similar to the corresponding file for other archs.
cris uses @ for asm line separations
remove things that libc-symbols.h already defines for us
make sure we include the local sysdep.h header
touchup style to match other arch versions
disable -z now by default
Tobias no longer works for axis
try at crt1 code by tweaking crt0.c and utilizing the -S output of gcc
just exec the cat
update copyright
small sync with glibc
Bernhard Fischer writes: remove unused variable __rcmd_errstr
sync iruserfopen() prototype with glibc and remove double setting of cp to NULL by Bernard Fischer
Bernhard Fischer writes: remove unused variables
remove excess whitespace
Bernhard Fischer writes: remove unused variable name
undefine stupid defines from the kernel
the timer_* funcs have been implemented in librt so enable their prototypes
rename index variable to idx to "fix" shadow warning
use diff variable names so we dont shadow each other
change variable names so we dont shadow others
rename exp to _exp for sake of shadow warnings
just use the common ptrace version
create a local prototype to shutup warnings
create local prototypes to shutup warnings
no point in declaring save_err locally
no point in redeclaring oldcount locally
rename local tty variable to not shadow tty func
sync with glibc
remove unneeded duplicate sid definition
create local prototype for __libc_sigaction
sync with glibc and rename socket vars to _socket
rename to match glibc
rename to match glibc
sync comment with glibc and dont include sys/socket.h since we dont use socket()
sync func def with glibc and dont include sys/socket.h since we dont use socket()
sync with glibc and rename local socket var to _socket
declare local prototype since we cant use system malloc.h
rename resultvar to get rid of shadow warnings
move linux-specific header to linux subdir
create local prototype
rename _sys_result var to get rid of shadow warnings
disable usage of .set
make sure clone/__clone are created properly
remove unneeded double reloc_type definition
rename local i var to idx to get rid of shadow warning
use typeof to create the prototype
Patch by Joseph S. Myers to add support for ARM EABI
John Bowler writes in Bug 385: in various places defined(__arm__) is used to protect/select code which is ARM specific, that code must also be selected for __thumb__ because __thumb__ is an ARM but __arm__ is not set...
John Bowler writes in Bug 385: This patch changes all cases where the ARM assembler mov pc,rx instructions are used to ensure that the thumb/arm interwork change of process more works - in essence mov pc,rx needs to become bx rc.
John Bowler writes in Bug 385: This is a work round for a fairly serious GCC compiler bug - when the syscall assembler overwrites r7 (required on thumb) the compiler fails to protect the register when it is using it as a frame pointer.
John Bowler says: use (!thumb) instead of (arm) since thumb defines arm
rename local var brk to _brk
Khem Raj says: add support for using BX instruction for THUMB aware architectures
John Bowler writes in Bug 385: The patch fixes up the .align directives to '2' (i.e. a multiple of 4) not '4' (a multiple of 16 - apparently an error since it seems to be unnecessary, there is no advantage here in cache line alignment).
make the extra warnings optional
initial import of latest linuxthreads
disable lazy code for now
cast buf to get rid of warning
add prototype to get rid of warning
add syscall6
unify duplicated code cause i get tired of updating this stuff
integrate frv link.h
import files from glibc for an ia64/static port
touchup test to have some more helpful output
glibc sync
fix warning when building on non-mmu hosts
make build output a little less noisy
make build output a little less noisy
we get d_type from the kernel so use it
use just __getdents64 rather than either __getdents and __getdents64 when possible (saves space and gives us access to d_type most of the time)
add some copyright/license info
use O_DIRECTORY when possible, saves us from having to use stat() thus cutting codesize/race condition
add note about racecondition
fix segfault do to sizeof(NULL) usage
fix building
rfelker reports in Bug 683 that we leak file descriptors if the fcntl() fails ... so fix that. add back in fstat() ofter we open() the directory as we need the blocksize further down in the code. unify the memory error handling to shrink the code there a little.
kill _dummy symbol
thanks to Thomas, nios should be happy again!
grab syscall() from glibc
remove outdated file
include stdint.h and check __intptr_t_defined to see if we need to setup uintptr_t
sync with glibc
janlana writes in Bug 700: use standard uint* types rather than u_int
fix warnings on 64bit hosts
all my other 64bit changes seems to have "magically" fixed pthreads tests
Bernhard Fischer says: get rid of local ret variable
just drop all of the debug code
use the newer versions of functions when available (fixes sparc which doesnt provide older versions at all)
fix prototype for 64bit hosts
fix errno setting
eat whitespace
sync with glibc and kill dead code to fix issues found by the nftw ltp tests
add support for newer style kernel calls since some arches (like sparc) only provide the newer versions
dont bother with a pass through call
sync with glibc, should fix the swap* segfaults in ltp
add support for newer [sg]etgroups function and make the function a simple passthrough on 64bit arches (should fix the getgroup crashes in ltp)
only check for rlimit stuff if the target doesnt support the newer function call, and dont bother with 64bit versions on 64bit hosts as the regular one works fine (should fix the setrlimit ltp tests)
fix my always_inline typo to fix building on most arches
get rid of pass through func
add back in code cut by previous commit to fix the pathconf test
automate the tests a bit
use := rather than =
allow for controlling of uclibc vs glibc tests until this gets converted into new style test framework
Joseph S. Myers writes: This patch fixes some of the ARM EABI code to be interworking-safe, using bx where appropriate. (This code went in around the same time as the Thumb patches, hence not being fixed by those patches.)
convert to new test framework
convert to new test framework
rholzmann writes in Bug 716: utent.c has a few problems with mutex locking when used in a binary that was linked with pthreads. The are a few deadlock conditions where functions may be called which lock the utmplock but never release it and where a function that hold the lock calls other functions which try to relock the same lock. For example, notice in the __getutent function the error condition does not unlock the semaphore. The problem is not visible when pthreads isn't used since the lock/unlock functions are NOOP functions.
Paul Brook writes: Firstly it wasn't including $(PREFIX) when figuring out if the kernel headers are in already in the the right place.
grab pselect from glibc
ldd usage does not cause a failure in tests and we want to remove it anyways, so dont depend on utils for tests
after much deliberation, may i present Joseph S. Myers patch to add support for .init and .fini array processing for the gory details, see the mailing list: http://www.uclibc.org/lists/uclibc/2006-January/014079.htmlhttp://www.uclibc.org/lists/uclibc/2006-February/014285.html
clean the test dir silently
fix gcc warning: ex3.c:31: warning: int format, different type arg (arg 2)
rename
convert to new test system
sync with glibc
rename test to match glibc
sync with glibc
grab a bunch of tests from glibc
add support for pretty output, remove LDD, make sure we build tests as GNU_SOURCE, and link against currently compiled libs
add more test dirs, touchup output, and some other misc touchups
dont bother exporting variables and use := where appropriate
just use := instead of =
convert to new test framework
- tighten up output - add support for per-test and per-subdir CFLAGS/LDFLAGS - move common uClibc/glibc code into defines - add support for diffing output between uClibc/glibc - add rules for generating libraries (needed by dlopen) ... only supports uClibc atm though
sync with glibc and get a nice size shrinkage in the process
fix fdopen test
document why the ftell() should be 5 and not 14
allow for runtime testing
move the 64bit tests into a sep file
grab fnmatch from glibc
convert to new test framework
need a slightly different version of output for the glibc test
rename file
err, sorry for the noise, but rename back as glibc uses test-ildoubl.c
convert to new test framework
fix stat64
convert to new test framework
sync with glibc
grab from glibc
disable some more unsupported tests
convert to new framework and disable all tests that fail
allow subdirs to define extra clean files
rename to match glibc
dont bother defining _GNU_SOURCE
import from glibc to make further glibc test importing easier
sync with glibc
include toplevel testdir
get rid of link time warning with tmpname()
touchup whitespace, remove STRIPTOOL since we no longer use it, and add -Wl,-rpath to default LDFLAGS to fix shared runtime tests to make sure we load libs from the local build rather than the system or (even worse) glibc
document new test framework
dont fail on locale-based tests, just skip them
make sure we first search for libraries in the newly built tree rather than the compiler path
we cant simply alias getdents to getdents64 as they deal with structures of different sizes on 32bit hosts
make sure we build against local headers and link against local libs
add missing subdirs
touchup output some more and add support for implicit TEST defining/disabling
document new features
skip collating and equivalence stuff
cleanup code to fix misc warnings
cleanup code to fix warnings
fix warning about ignoring return value of realloc
dont use %m glibcism
fix warning
fix prototype warning
dont bother setting TESTS now
rename test to match glibc
grab some tests from glibc
grab some more tests from glibc
need Makefile for inet subdir
grab some tests from glibc
grab some tests from glibc
test file for regex test
import tests from glibc
need std=c99 to build tst-regex2
add support for generating %.i files like %.E files
hide misc div funcs so generating shared libs on alpha doesnt fail
fix fcntl() call so that it actually forces file to be closed on exec()
make sure we reset static_fd after it's closed in utmpname()
fix const position typo as pointed out by ia64/gcc
fix building on non-mmu hosts
disable test on non-mmu host
disable test on non-mmu host
disable mallopt based upon malloc implementation, not mmu status
dynamically build the DIRS variables so i dont have to keep updating it all the time
touchup whitespace
touchup headers output and make it run smoother
combine the output rules in one place
combine the crt1.0/Scrt1.o rules since they are pretty much the samething
fix parallel build with headers once and for all (i hope)
sync with kernel
touchup headers target somemore so building in subdirs works nicely again
grab headers from glibc
make headers more quiet
add infrastructure for fenv
dont define _stdio_init if it doesnt do anything
touchup syscall break define so it doesnt conflict with kernel headers
dont output so many newlines
simplify endian config/selection
improve MMU selection a little to be less confusing
tweak the idea between having a MMU and actually using it
remove hunk that shouldnt have been committed
disable ctor/dtor on bfin as binutils doesnt provide init/fini symbols
touchup header handling in other config targets
we use _GNU_SOURCE for all of uClibc now
use a tempfile while generating sysnum.h
since interp is an actual object file that is linked into shared libs, make it a build depend rather than just an order depend
make sure ldso is rebuilt if source files are updated
these defines are created for use in features.h so no point in duplicating work in the build system
just let user decide CFLAGS instead of assuming stuff for him
fix sysfs call
update MMU config options to utilize USE_MMU instead of HAS_MMU
make sure ldso is disabled for bfin
disable ldso for nios targets
rename file and fix setting of errno
sync with glibc
sync minor touchups with glibc
update copyright with glibc
removed
grab from glibc
use vfork instead of fork so test works on non-mmu
rename ldso on all 64bit hosts
make sure we declare underscore usage as pointed out by psm
enable test if LFS is enabled
move _dl_mmap_check_error() to related mmap bits of code as pointed out by Nicolas Bellido
make sure we clean everything
Nicolas Bellido: switch up order of mmap preference to try and fix arm eabi usage
update MMU ifdef check
check for a 0 size first, then check for a NULL pointer
update malloc(0) check to handle expected behavior based upon config options
update malloc(0) check to handle expected behavior based upon config options
add clone2 prototype to shutup warnings
fix running of stat test on filesystems that dont have noatime set
err, need to make sure the wrapper is executed separately
grab from glibc
blah, use a stable target instead of messing with timestamps on .c files
sync with glibc
simplify epoll code
revert unintended commit
update todo
make the fallback case smarter
sync headers with glibc
epoll is linux specific
grab header file from glibc
dont generate asm-generic if it already exists
dont invert errno as assembly routines store positive values, not negative ones
add support for __UCLIBC_CTOR_DTOR__
rename generic variables to avoid conflict with libc subdirs
sync with glibc
sync with glibc
remove warning since it seems to have "gone away" now
disable fnmatch test until our fnmatch stops sucking
fix invalid quoting
import ia64 linuxthreads files
allow people to select threads
grab some tests from glibc
pass an option to bug-glob1
add some tests for strlcat and strlcpy based upon strncat and strncpy respectively
grab some tests from dalias
check more return values
need types.h for size_t as pointed out in buildlog
fail if test.c is found so i stop screwing myself up
add support for glibc initfini.c
sync with glibc
grab glibc sigprocmask since common linux one doesnt work for alpha
note signal handling fubar issues on alpha
enable 6 arg version of mmap
disable __gmon_start__ symbol
touchup how we generate initfini.s
import rt_sigaction from glibc to fix alpha signal handling issues
sync with glibc
sync with glibc
sync with glibc
grab regdef.h from glibc and use that instead of kernel headers regdef.h
set dynamic linker if we are building as shared
remove mtrace call
disable blug-glob1 for now
dont need pal.h here
add pipe from glibc to fix popen test
sync with glibc
need to define some more registers
alpha needs ipc64 funk too
sync type style with glibc ... this fixes many alpha issues where it has different typesizes from the normal 64bit arch
grab from glibc
return NULL if year is too big
grab some time tests from glibc
move to new time dir
add support for shell script tests
start of test suite to catch errors in source code
sync with blackfin cvs
fix whitespace in comment
fix test failure pointed out by nightly build
dont execute shell tests if we just want to compile
disable test since we purposefully dont handle it
allow env to inject more CFLAGS/LDFLAGS, and remove old LSFLAGS
inform people test is skipped on non-locale hosts
rename file so we block the common version from being built
clean out arch subdirs as well
kill spurious semicolons
make all the warnings the same and add line #s so we can pick em out at runtime
grab register definitions from regdef.h instead of using our own local ones
hide div functions in libc, but export them in ldso so that other shared libs dont barf on us
disable older rlimit support by default
use sched_yield, not pthread_yield
kill off gcc signed warnings
macro out the /10 operation so arches can have their own versions ... and create some default macros for do_rem/do_div_10 so we dont duplicate the samething in many arch header files
fix build/segv issues as reported and fixed by Brent Cook
blah, glibc moved linuxthreads around
sync with glibc CVS
shouldnt have been added to svn
update ignores
sync with glibc
fix gcc warnings
sync with glibc
keep uclibc features in the source
some more fixes from rholzmann in Bug 716 ... make sure the code actually functions, then we worry about shrinking it ...
Richard Sandiford writes: This patch fixes a miscompilation of mmap() for Coldfire with gcc 4.x. The problem was that the syscall was being invoked before any part of the argument structure (buffer[]) had been initialised.
Richard Sandiford writes: m68k is one of those targets that does not accept -fPIC across the board. It is supported for 68020 and above, but not for 68000, 68010, or Coldfire, where using -fPIC leads to a compiler error. (Note that the error is flagged by cc1 proper, so it probably wouldn't have mattered with older compilers. It only matters now because cc1 is used to preprocess assembly code.) The attached patch makes m68k targets use -fpic instead of -fPIC.
Fix from Thomas Brinker for byte swapping on Coldfire processors and tested by Richard Sandiford
sync with glibc
drop the trigraphs warning ... there is no reason that we actually want to use trigraphs in uClibc, so if one exists, we should be cutting it out, not ignoring it
remove old cruft that doesnt matter for uClibc and breaks anyways when using -std=c99
add a note as to why mips is special
sync with glibc
Joseph S. Myers writes: The MIPS <bits/mman.h> header is missing definitions of POSIX_MADV_*
steal bfin maintainership from erik
use weak_alias() for data symbols, not strong_alias()
sync minor changes with glibc
merge some more minor changes from glibc
fix by Bernd Schmidt to support HAVE_ASM_SET_DIRECTIVE in weak_alias() macros
expand comment a little more as to why _stdio_init() is weak thanks to mjn3
sync with glibc
cut out _FORTIFY_SOURCE
fix signed warnings
updates from Bernd Schmidt to sync with blackfin cvs
re-enable global constructors and destructors for bfin
use cp -P instead of cp -d as pointed out by David DeHaven
fix by Peter S. Mazinger: use sys/syscall.h (bits/sysnum.h) instead of asm/unistd.h
fix by Peter S. Mazinger: use sys/syscall.h instead of asm/unistd.h
fix by Peter S. Mazinger: use c99-compliant asm keyword
fix by Peter S. Mazinger: use system attribute_hidden rather than local copy
restore proper comment headers as well as cut pointless includes as pointed out by Peter S. Mazinger
fix damaged whitespace/style
fold bfin-specific link.h back into common one as suggested by Peter S. Mazinger
sync with glibc
previous commit ifdef-ed out too much code
the 16/32 swap funcs were swapped #875
Amir Shalem writes: there are missing prototypes for chown() and execle() in uClibc-snapshot. I'm attaching a patch to add the missing prototypes.
Amir Shalem writes: there is a missing include for <bits/uClibc_uintmaxtostr.h> in libc/string/_syserrmsg.h, where _syserrmsg.h uses __UIM_BUFLEN_INT
import some optimized functions from blackfin cvs
Qunying Pan writes: Make strncmp weak hidden to fix link failures in building gdb and binutils statically
import sigqueueinfo() from glibc
merge syscall fixes from upstream blackfin cvs
blackfin kernel now supports mmap with 6 args
bfin supports FDPIC, not normal ELF
use unsigned long like every other port as pointed out by Peter S. Mazinger
Richard Sandiford writes: m68k uClinux doesn't use the normal ELF entry point interface. This patch adjusts crt1.S accordingly. I've followed the ARM example and keyed the choice of interface on __ARCH_USE_MMU__.
Richard Sandiford writes: Until a few months ago, libc/sysdeps/linux/m68k/clone.S defined __syscall_error itself. This local definition was removed in revision 13305:
add hidden proto for memset as pointed out by Peter S. Mazinger
sync with glibc
sync with glibc
sync with glibc
sync with glibc
add support for 5th argument
drop the __sigqueue symbol for now
need local prototype to make things happy
we build everything with _GNU_SOURCE now
update syscall() to take 6 arguments
fix from Jie Zhang to also declare R0 as clobber in syscall0
sync change from glibc for larger path max
blackfin needs different type for ssize_t
if $(LD) doesnt support --help, dont warn about it (stupid Darwin users)
need hidden alias
include sys/mount.h for everyone
dont shadow the socket() function
touchup printf format to fix warning
kill off sysfs()
sync fix fixes from glibc
use internal aliases for static objects as well
eat whitespace
eat extraneous ; and insert some whitespace where it belongs
dont bother exporting modify_ldt() either
need hidden proto for rtime() as well
Austin Morgan writes in #917: add support for inotify
merge bfin relocations from blackfin cvs
sync my fixes from glibc
allow arches to easily override asm-line-sep, move cris over to new style, and have hppa use it now
remove bogus lines
fix hidden symbols
Michael Troß writes: gen_wctype segfaults on my system when optimized with -O2. It does work without optimization, even -O1 does not cause the segfault. Problem is in newopt, at gen_wctype.c:865: memcpy(tbl->ti + i * blocksize, ti[uniqblock[i]], blocksize);
if we cannot generate a locale, be a bit more specific in telling the user we are skipping it
Michael Troß writes: Yes, the missing initialization of uniqblock seems to cause all this trouble. Now gen_wctype works without the rlimit stack hack.
also kill gdb files when building BFLT files
use local labels
if function or stack are NULL, make sure errno is set to EINVAL
blackfin needs NOPs after the loop end when the last statement in the loop is an if/jump
revert previous nops in strcmp as they are not needed here
Bernd Schmidt writes: too many semicolons!
Bernd Schmidt writes: abstract away addresses so we can support FDPIC ELFs
Atsushi Nemoto points out there is no more need for mips-specific ptrace.h
revert fdpic patch so we can merge it in bit by bit
boilerplate license we use
use ElfW(Addr) in more places
patch from Bernd Schmidt to abstract away load addresses
Atsushi Nemoto writes: Some archs (such as mips64) do not have getdents64 syscall but have getdents syscall. Define alias for it.
missed an ElfW(Addr) change
fix license notice
fix license notice
fix license notice
sync with glibc
add support for 32bit version of fchown
update license
update license
sync with glibc
update license
update license
update license
sync with glibc
remove __ from function names as pointed out by Peter S. Mazinger
add some more rpaths to keep the tests happy
patch from Bernd Schmidt to abstract away load address checks
patch from Bernd Schmidt to abstract away load address types
update license
convert #if 0 code to _dl_if_debug_print()
patch from Bernd Schmidt to abstract away initializing of prog load addresses
bfin works again
patch from Bernd Schmidt to abstract away initializing of relocation addresses
clean subdir as well
fix signed warnings with gcc-4
add some fun syscall TODOs and mark cris/bfin as working again
fix h_alias handling in gethostbyaddr_r() just like in gethostbyname_r() otherwise we get messed up alias memory and this simple test case will segfault: python -c 'import socket; print socket.gethostbyaddr("80.68.88.204")[2];'
merge fix from blackfin cvs: bernds writes: Use __alignof__ instead of sizeof to get alignments. Eliminates some warnings about misalignments when malloc debugging is enabled.
fix upstream blackfin page.h rather than duplicating effort here
Jie Zhang writes: Fix struct kernel_stat64 for Blackfin.
fix from psm: add UCLIBC_ prefix to HAS_SHADOW option
fixes from psm so we can pull in uClibc headers properly
pull from upstream
sync with psm: add copyright notice
fixes from psm: disable unsupported __fpu_control and sync with upstream
fixes from psm: hide internal brk symbols
sync with upstream glibc
fix from psm: remove unused defines/includes
fixes from psm: use __asm__/__volatile__
fixes from psm: use new clone definition
fix from psm: remove unused defines/includes
import new headers from upstream via psm
sync with upstream via psm
sync with upstream via psm
merge from psm: hide more brk
only define offsetof() if it isnt already defined
sync with psm: update errno handling to be the same on all arches
sync with upstream via psm
psm updates: add __libc symbols for signal cancellation
sync with upstream via psm
sync with upstream via psm
s/ifdef ASM/ifndef ASM/ as point out by psm
sync with upstream via psm
fix from psm: only define __ASSUME_NETLINK_SUPPORT if not defined
fix by Bernhard Fischer to move local prototypes to a header to keep things sane
add back in HIDDEN_JUMPTARGET() as pointed out by psm
psm says: use $(top_builddir) instead of $(top_srcdir) when accessing generated header files
sync with glibc
just be like every other uclibc port
fix from psm: just use common resource.h
fix from psm: disable unsupported features
update to new huge_val headers
use the common huge_val.h version now
fixups from psm for ASSEMBLER handling
implement readahead()
only pull in errno.h when not assembler
fix from psm: enable readahead prototype
merge fixes from upstream (rev 1.10 -> 1.13)
merge with psm: sync with common socket headers
fix from psm: makes use of the malloc debug option in malloc-standard as well
fix from psm: DODEBUG_PT is only meaningful for LINUXTHREADS_OLD, add: depends on LINUXTHREADS_OLD
fix from psm to make sure host make is new enough
add some inline funcs for the mlock funcs on no-mmu
make this stuff actually readable
remove version checking code and add some more comments
merge some more FDPIC related fixes from Bernd Schmidt
use proper #APP lines so that the assembler knows when it needs to handle parsing (see http://sources.redhat.com/ml/binutils/2004-04/msg00665.html)
only include _lfs_64.h when __UCLIBC_HAS_LFS__ is defined as pointed out by Miguel Ángel
grab s_lrint from glibc for C99
fix return casts for a bunch of functions
implement support for the rest of the 32bit uid syscalls
the makefile will include elf.h for us #778
Bernd Schmidt writes: This introduces a new SEND_EARLY_STDERR macro that is to be used in dl-startup.c before ld.so is relocated. It is needed on Blackfin (and frv) FDPIC since we have to use special tricks to get the address of a string constant.
fixup from Bernd Schmidt to properly document DL_ADDR_TO_FUNC_PTR
dont require DOPIC with FORCE_SHAREABLE_TEXT_SEGMENTS
dont need to force optimization in CFLAGS anymore (if this fails your compiler prob sucks anyways)
remove duplicated/unused ASSERT code
backport from upstream: 2001-04-11 Ulrich Drepper <drepper(a)redhat.com>
backport from upstream: 2001-04-10 Ulrich Drepper <drepper(a)redhat.com>
prevent cancellation functions from being called more than once
make default output silence and have the exit status indicate error
exercise the signal related jump code
add a test for making sure vfork/signals are handled properly across different setjmp/longjmps
fix comment typos
revert PTHREAD_THREADS_MAX back to former size since the large majority of people out there will not need more than 1k threads (and people who do can change this themselves)
get rid of the notion of .E files as .i is the proper usage
Bernd Schmidt writes: This reintroduces a mechanism identical to the DL_BOOT macro present in older versions of uClibc. On Blackfin and FRV, we want to pass more than one argument to _dl_start. We also want to do something special before returning, so delete the warning when the START macro is defined.
Bernd Schmidt writes: [blackfin updates] add support for FDPIC and include L1 functions
fix from Paul Brook for ISO C violation in terms of handling of modifying automatic local variables between setjmp/longjmp
indent
fix from cmetcalf to make sure we clear the auxvt table before using it
PTHREAD_THREADS_MAX is supposed to be in pthread-specific dir, but for now it lives in bits/uClibc_local_lim.h
fix building when susv3 legacy stuff is disabled
second SUSV3 legacy check should be for macros as pointed out by psm
revert previous change
list ABI first and tweak ISA defaults with suggestions from Jim Gifford
make ABI into a list
note test subdir problems with multilib
pulling in kernel config.h wont fly
if __NR_mprotect does not exist, dont try and create a syscall for it
only define mremap() if the syscall exists
if __NR_msync does not exist, dont try and create a syscall for it
if __NR_swapoff does not exist, dont try and create a syscall for it
if __NR_swapon does not exist, dont try and create a syscall for it
only define msync cancellation point if the syscall exists
Richard Sandiford writes: add support for init/fini arrays in shared flat libraries
create new menu so people can select what format they wish to build uClibc
tie PICFLAG:=-mfdpic to format rather than architecture
set some default vars to prevent env pollution
kill off the need for fix_includes.sh by utilizing KERNEL_SOURCE directly
cleanup style
need endian.h for __LONG_LONG_PAIR() macro
dont try and compile if the MMU is disabled
disable LDSO when FLAT format is selected
fix building when pthread support is disabled
we just want the kernel headers, not the whole kernel source ... so people may need to update their paths slightly
since we dont symlink the headers, theres nothing to filter
be more specific as to what arguments to __uClibc_main() people can skim on during initial port
force LFS support since blackfin no longer supports non-lfs
if __NR_lseek is not defined, then we fall back to calling the 64bit lseek
fix building when __NR_sigalstack does not exist
small cleanups
clean up
scrub prototype so we dont conflict with the pthread header
start pulling in top level Rules.mak so we get access to import CFLAGS/LDFLAGS/CPPFLAGS
actually scrub it, dont just comment it out
for now, dont allow mmu users to select file format
rename local "brk" var so it doesnt namespace collide with the brk() function
Paul Brook writes: When building an arm-uclinux toolchain withthreading disabled I get:
make sure UCLIBC_LDSO can be found via path
Atle Nissestad writes: The attached patch fixes compilation of the current svn on the nios2 platform, and updates the crt1/n/i.S files to get CTOR/DTOR-support to work.
sync with upstream blackfin.uclinux.org
need to keep __check_rhosts_file exported for proper rhost control
merge from blackfin.uclinux.org: Adjust crt1.S so that __uClibc_main is called properly
fix from Bryan Wu: return NULL upon error, not the NULL string
dont actually have to worry about local changes as svn export takes care of that
fix from blackfin repo: Jie Zhang writes: Passing NULL as the second argument to utimes () if the second argument to utime () is NULL as the kernel will take care of getting/setting current time
fix from blackfin repo: Jie Zhang writes: update __kernel_ipc_pid_t, __kernel_uid_t and __kernel_gid_t types to match actual kernel types
use .bz2 rather than .gz
new test taken from stat issue with new tar
dont rely on random stack state to trigger this issue; force the default stat structs to alternative bit masks
fix typo as pointed out by Tony Wu and cleanup source
Paul Brook writes: The patch below tweaks the ARM nommu startup code so that doubleword stack alignment is preserved. This is required on EABI targets.
make sure we clear out the buffer so that random garbage on the stack doesnt screw us up
its a new year
note 0.9.28.1 release
need string.h for memset()
initial waitid() implementation
as pointed out by Jocke, use "2" for actual error messages and _dl_debug_file for debug messages
fix from Bernd Schmidt to make sure _dl_debug_state isnt optimized away and does not generate relocs
sync with glibc as pointed out by Bernhard Fischer
Bernhard Fischer writes: note how uClibc chooses to handle __resolved==NULL
Bernhard Fischer writes: add undef/nonnull warnings to EXTRA_WARNINGS
missed an underscore in previous commit
sync some fixes from glibc
fix test to work even if CPPFLAGS contains -DNDEBUG
fixup warnings
make error output a little more helpful
check to see if __USE_FILE_OFFSET64 is defined rather than if it evaluates to true
fixup prototype warnings
mark some funcs as noreturn
fixup shadowed warnings
mark local function static
since these functions get exported, namespace the arguments
make sure 64bit output is correct
make sure reading 64bit types works
fix from Roman Kononov for reading in of 64bit types
fix from Atsushi Nemoto for displaying of 64bit types
use ifdef rather than if for stack direction
pull in unistd.h for syscall() prototype
Richard Sandiford writes: However, retesting on m68k showed up a problem that had appeared in uClibc since the last time I tried. Specifically, revision 15785 did:
document future need for larger time values
drive home the point people should not be using _syscall#() macros
replace bits/syscalls.h with a comment ... an empty file makes people think this is a bug rather than by design
sync some stuff from glibc to fix test build failure
fix compiling and touchup style
the sun rpc code has too many alias violations to worry over now; just disable strict-aliasing until someone gets the balls to clean this stuff up
fixup includes so we compile again
new cheesy test by Denis Vlasenko to trigger fclose loop
no need to duplicate WCHAR check
pull in features.h so we have access to config defines
Paul Brook writes: I'm seeing a hang in applications that open and close files with a non-threaded uClibc. There is code in fclose() to remove a file handle from _stdio_openlist however it's commented out, allegedly because it is dead. _stdio_openlist is used in several places, including _stdio_term when a program exits. fclose() frees the struct, so I don't see how the code can possibly be redundant.
we crash if the first argument to realpath() is non-null as well so lets mark both arguments as being non-NULL
revert previous change; reading POSIX spec some more says we need to set errno to EINVAL if filename is NULL
handle file_name==NULL and file_name=="" as required by POSIX
import a slightly modified realpath() test case from glibc
use __FDPIC__ from the compiler rather than setting our own
enable -std=gnu99 by default now
Atsushi Nemoto writes: Add st_[amc]timensec to N32/N64 version of stat, add st_[amc]time_nsec to each kernel_stat, and define STAT_HAVE_NSEC to convert them
run through Lindent
Kay McCormick reports: when evp is NULL, it is reset too late and so can cause a crash when it is dereferenced
we dont actually need asm/page.h
Atsushi Nemoto writes: This patch imports INLINE_SYSCALL, etc. from glibc-2.5 ports and implements _syscall[0-7] by using them, like arm and powerpc.
Atsushi Nemoto writes: Current ucontext_t does not match with kernel's definition. Also, on N32 ABI, we can not use kernel's struct sigcontext since kernel's sizeof(long) and user's sizeof(long) is differ.
use /*...*/ comments rather than #... so we can preprocess
cleanup style
add silentoldconfig target
make sure we declare TARGET_ARCH as a string
pull latest kconfig from kernel
make arch default to hostarch
Atsushi Nemoto writes: When I imported INLINE_SYSCALL, etc. from glibc, I just copied whole macros for each ABI. Actually, except for argument type (long vs. long long), internal_syscall[0-4] are identical for all ABI, and internal_syscall[5-6] for N32/N64 are identical for N32/N64.
cleanup a little
make sure static variables are re-initialized everytime
rewrite parisc to hppa
rewrite all sparc targets to just sparc
rewrite all superh targets to just sh
default to pulling kernel headers from the system install
simple script for counting relocs
call kernel helper to do spinlocks
make sure cleanup handler is only called once
drop -Wl,-warn-common since it doesnt serve much purpose
stub out msync() for no-mmu as well
make sure we have rtld_hidden_def(_dl_debug_state)
redo errno handling so that it should work both in thread and non-threaded situations
touchup new kconfig handling so we dont constantly rebuild
add missing file for previous commit as pointed out by Peter Kjellerstedt
need to double check internal errno handling wrt libpthread
sync with glibc
ifdef out RTLD defines we dont actually support nor are in POSIX
add support for ppoll() and emulate poll() with it when __NR_poll does not exist
fix from upstream blackfin repo for sigsetjmp
make sure dlsym() properly returns NULL with undefined symbols
make sure undefine references in dlopen()-ed libs are handled graciously
dont include asm/user.h
more ifdef tweaks from holin (#1247) for retarded hosts (like OS X)
fix typo pointed out by Al Stone
Bernd Schmidt writes: The following patch is needed for libc to be able to emulate poll with ppoll.
use html entities rather than the ISO 8859 version
fix one more to use html entities rather than the ISO 8859 version
remove dead link as pointed out by Denis Vlasenko
#1273 if EXTRAVERSION is set, make sure we respect it
dont want to actually bump EXTRAVERSION
Paul Brook writes: filter .svn dirs to greatly speed up the file grep test
POSIX requires that errno be set whenever 0 is returned by malloc()
fixes from Carmelo AMOROSO to depend less on kernel headers
implement carg
import llrint() from glibc
POSIX says you can use realloc() to shrink buffers ... make sure we dont trigger a buffer overflow in that case
test case to make sure realloc() can shrink buffers properly
remove __* symbols and enable llrintf()
fix up malloc debug building
add a basic .depend target to better catch updates in source files
disable for now
catch a small overflow in malloc-standard
dont force a . before EXTRAVERSION so we can be a little more flexible with versioning
move uclibc.org out of actual source tree
force ourselves to write proper code and develop testscases
fix ld.so.cache handling on no-mmu setups
cleanup style; no functional changes
if chroot() failed, then reset "chroot_dir" to "." so that after we do our fallback chdir(), we dont continue to prefix the chroot path ... fixes `ldconfig.host -r some/dir/`
fix from Bernd Schmidt for realloc shrinkage bug
Carmelo AMOROSO writes: running LTP test suite on uClibc-nptl for sh4 I found a bug into pread and pwrite functions. When the offset is negative it is not correctly handled due to a missing shift operation, so it is passed to the syscall as the highest unsigned positive value.
Daniel Jacobowitz: sleep()/usleep() relies on nanosleep() being a cancellation point but the files have "libc_hidden_proto(nanosleep)" which means it always calls the libc.so version, never the wrapped version in libpthread.so that's a cancellation point.
Nickolai Zeldovich writes: Currently, tcgetpgrp() in uClibc uses an int to store a PID (fetched via ioctl TIOCGPGRP). This causes problems on platforms where pid_t is defined to be larger (e.g., uint64_t). Other functions in termios, such as tcgetsid() and tcsetpgrp(), already pass a pid_t to ioctl(), so the following patch does the same in tcgetpgrp() as well.
exercise all required POSIX pthread cancellation points
cancellation-points needs librt
give proper prototypes
Nickolai Zeldovich writes: if the temp name already exists, then the retry code does not create a new temp name as the code to do so is outside of the retry loop
use POSIX -eq rather than bash == #1360
Jean-Christian de Rivaz writes: I actually suspect this code into the file uClibc/libc/sysdeps/linux/common/poll.c: tval.tv_nsec = (timeout % 1000) *1000; <==== make only usec! From milisecond this really needs a * 1000000 to make nanosecond. Without this a 1100 milisecond timeout is converted into a 1 seconde and 100 microsecond timeout! This can explain the weird result of the test code.
Atsushi Nemoto writes: http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html states it returns error code instead of setting errno.
Atsushi Nemoto writes: Current MIPS readahead(), posix_fadvise(), posix_fadvise64() do not match with kernel on all ABIs.
Bernd Schmidt writes: make sure custom stacks work properly for no-mmu
change the auxvt code from being dependent on MMU to !LDSO as auxvt things are ELF-specific, not MMU-specific
pull from Blackfin repo: add -mid-shared-library for UCLIBC_FORMAT_SHARED_FLAT and -msep-data for UCLIBC_FORMAT_FLAT_SEP_DATA
as noted by psm, make sure we accumulate PICFLAG-y back into PICFLAG
tweak msync prototype to match header
fix from Kevin Day to make sure we use strchr() rather than index()
drop __user hack for crappy kernel headers and document the __linux__ grease
add strerror_r symbol alias as some autotool based packages simply use AC_CHECK_LIB() to see if a function exists rather than checking the headers
actually update errors variable when a test fails
sync with glibc
Atsushi Nemoto writes: In MIPS syscall(2), .cpload was added to an the error path, but it was not enough for ABIs other then O32. Use SETUP_GP, SETUP_GP64 and RESTORE_GP64 to handle all ABIs. This patch fixes an error path of MIPS pipe(2) too.
setup OUTPUT_FORMAT() in linker script (helps with multilib)
simplify binutils as-needed support and enable it all the time regardless of ssp
Blue Swirl writes: I got the library to compile with the attached patches, though dynamic loader crashes early.
add more tests as suggested by Natanael Copa and as harvested from: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/92880
switch to a smaller/more robust implementation by Andrey Simonenko and as suggested by Natanael Copa
add one more testcase from Natanael Copa
not sure how this obvious one liner got lost from glibc, but merge it
bug 1310: drop hidden aliases to data since some arches crap with this due to copy relocs
also fix bug 1012 by moschny in 64bit version of readdir
if __NR__newselect and __NR_select are unavailable, fall back to __NR_pselect6
use gcc input constraints to avoid often duplicated reloads when making syscalls
forgot to add this with previous sparc commit ...
pull from Blackfin repo: cleanup string funcs
pull from Blackfin repo: optimized byteswap funcs!
from Blue Swirl: fixup sparc a bit more
drop LDFLAGS from OUTPUT_FORMAT until LD/LDFLAGS can be fixed in general
Jie Zhang writes: GCC 4.3 will put fixed headers in a seperate include-fixed directory. And I don't think that there are people who are still using the 'stupid' GCC which cannot handle -iwithprefix, at least it works with gcc-3.3.x.
Make sure that the DSO has an hash table into its elf, otherwise skip the lookup over next DSO.
cleanup code style
do not check the pointer before freeing it since free(NULL) works just fine
This patch will fix a problem when the same host is defined with both IPv4 and IPv6 entries in /etc/hosts. Previous only the first of these host would work, as uClibc would read the /etc/hosts file from top to bottom, failing if the first hit did not match the IP type.
Do string comparisos as late as possible during symbol lookup.
import trunc()/truncf() for ISO C requirements, otherwise fortran can hit infinite loops when it generates builtins+trunc() substitutes
add hidden defs for execv/execlp for completeness
mark a bunch of public mem/str functions as weak so that people who insist on their own local copies while static linking dont hit link failures when other uClibc code force the libc.a objects to be pulled in via the hidden alias symbols
plug a memory leak when using execl* functions on no-mmu
michael_d in #1849 writes: The getcwd() implementation in the absence of a getcwd syscall has an off-by-one allocation bug. As a result, sometimes the returned string has garbage at the end.
michael_d writes in #1874: On an i386 platform with no rt_sigsuspend syscall (ie: Linux 2.0), compilation will halt on libc/sysdeps/linux/common/sigsuspend.os with a cryptic error message: "Error: non-constant expression in ".if" statement"
michael_d writes in #1869: make sure GNU error functions output 'program: ' as documented in the function api
michael_d writes in 1879: When no TIOCGPTN definition is present in the kernel headers, the library's ptsname() function will not work.
pop -m32 onto LDFLAGS/CFLAGS to make building on x86_64 multilib systems transparent
implement semtimedop for #927
zen in #938 writes: I had occasion to look at the uClibc script "getent" and felt compelled to clean out the cargo-cult programming style. I believe that this version is clearer, and I've added some minor features while I was in there: * usage clause, if no arguments or "--help" requested * original version appears to have been intending to "exit 2" on failure to match, but didn't * basic, probably good enough, support for ethers and netgroups * faster ;-) [as if that matters for this script]
krichy writes in 292: I noticed, that in libc/misc/syslog/syslog.c when the syslog socket is opened, the close-on-exec flag is not set, as it is in gnu libc.
blah, enable the stupid hidden proto for fcntl
whitespace only: fix indentation
not everyone is a ninja: explicitly state that people should convert from sys_errlist[] to strerror()
Brian Austin writes: This patch adds MAVERICK CRUNCH FPU support for the Cirrus Logic EP93XX ARM9 Procs.
give EM_AVR32 a little comment
add BOTHER define from termios2
patch from Mats Erik Andersson for better catching edge cases in optimized string functions
whitespace only: touchups from Hans-Christian Egtvedt
patch from Hans-Christian Egtvedt to silence some spurious signed warnings
Chris Zankel writes: The following patches add support for the Xtensa processor architecture to uClibc. They are based on a recent SVN checkout (12/05/2007).
if an arch does not provide __NR_mmap, fall back to __NR_mmap2 (this just generalizes what Blackfin was already doing)
update my e-mail address
sync with glibc to get the extern inline directive
add info for elf.h, ldd.c, readelf.c, and MAINTAINERS
this code does not actually rely on INTERNAL_SYSCALL
use the __extern_always_inline define from cdefs.h instead of duplicating gcc version checking in every pt-machine.h header ... while __extern_always_inline should work fine, i think what is intended is __extern_inline ... should double check later
fix memory corruption on no-mmu from doing multiple execls where earlier execls fail by simply not releasing the memory reserved for the arguments of children processes
test to make sure the buffers used by the gethost*_r functions handle misaligned scratch buffers
the _dl_errno extern already exists in common headers, so no need for a local one
change NO_UNDERSCORES to just UNDERSCORES so as to be less confusing when doing double negatives
Daniel Jacobowitz writes: MontaVista noticed that when their kernels were configured to trap on unaligned access gethostbyname_r could mysteriously crash. I tracked this down to an unaligned buffer being passed to gethostbyname_r from some other part of uClibc (afraid I don't remember where from any more). We have to pad the beginning of the buffer to a pointer alignment before we store pointers in it.
no need to delete the binary upon failure
add workaround for gcc-3.4.6 with mips
fix broken whitespace in many places; no functional changes
fetch queue.h from latest freebsd cvs
cull useless headers and import a few updates from glibc
give execlp() its own cache on no-mmu to avoid recursive cache fighting
fix typo pointed out by skinkie in #2194
posix_fadvise64 on 64bit systems take 5 arguments, not 6, as pointed out by skinkie in #2194
Ricard Wanderlof writes: The following definitions in getaddrinfo.c seem redundant as they _are_ defined in the public netdb.h header, contrary to the comment. AI_DEFAULT is not, however it is not used in the file either so can be safely removed.
michael_d writes in [#2064]: fix building on linux-2.0 systems
make sure we store the function pointers to the real push/pop functions rather than the public weak ones so that the libc->libpthread forwarding code is able to work properly
if argv[0] is NULL, dont try to parse it and subsequently crash ... found by running execve05 ltp test on blackfin ([#4194])
add test case for argv[0] == null
delete/init module functions are not 2.4 specific
use __UCLIBC_HAS_STUBS__
update ptrace.h to latest from glibc
punt old unused header
use newer spiffy asm constraints to get better code generation
add ENDPROC() macro for Blackfin assembly
Blackfin: declare {INLINE,INTERNAL}_SYSCALL() and friends
Blackfin: add L2_SRAM flag for alloc func
add inlines for Blackfin atomic functions
create arch-generic brk() based on blackfin one
dont force -Wl,-s when building host utils -- people can strip themselves
unify the headers/random defines into porting.h to avoid duplication/rot
unify byte order cruft in bswap.h and porting.h and add a bswap_64() replacement
allow people to run the hostutils targets without having a .config file
do not rely on features.h so that elf.h can be used on non-elf systems (Darwin, Windows, etc...)
add mmap()/munmap() implementation for Windows
include more info in error messages so we have a better idea where things are failing
strict POSIX requires a path to specified to `find`
add GNU extension for select timeouts where the sub-second field is actually longer than one second
force DOPIC for FDPIC ELF targets
default linux-2.4 module support to off for Blackfin targets
import user.h from the kernel as it is no longer exported by the kernel
enable mprotect() regardless of MMU as some systems have MPUs which allows memory protection
apply getline() fix from linux kernel
implement daemon() using clone() on no-mmu systems as suggested by Jamie Lokier
make sure to block all signals when calling daemon() to prevent delivery while the parent is sharing the stack
waitid: linux ABI takes 5 args, not 4
Blackfin: make sure all relocs are uppercase
utils: punt readelf
add gitignore for utils
stop installing/screwing with linux-headers
locale: gen_wc8bit: try to find UTF8 locale automatically
Merge branch 'master' of git://uclibc.org/uClibc
uClibc_arch_features: sync defines between ports
ignore generated unifdef
use -isystem with gcc paths
MAKEALL: start a quick build test helper script
syscall: unify common syscall defines
drop missing {INLINE,INTERNAL}_SYSCALL fallback logic
ignore generated .i files
MAKEALL: expand cross-compiler arch search
syscall: unify part 2: NCS variety
syscall(): create a common version based on INLINE_SYSCALL_NCS()
use -EB/-EL for all targets
install_headers: convert header removal to Kbuild style
add hidden aliases for older regex search functions
ppoll: switch to INLINE_SYSCALL() to match glibc
unifdef: implement err.h funcs locally
start ignoring include/ symlinks
relocate i386 string.h to i386-specific dir
fix typo in frv endian comment
note that we do not want hidden malloc aliases
mknod: convert to INLINE_SYSCALL() to sync with glibc
add a wchar.h stub
regex: convert #if to #ifdef
string: only include inline-asm if UCLIBC_HAS_STRING_ARCH_OPT
dirent: push dirent type to prototypes
sync a few headers with glibc (no functional changes)
first pass at implementing *at funcs
alpha/sigprocmask: fix implicit memset() prototype
fdatasync: handle latest alpha syscalls
alpha: fix building with no asm/elf.h
fix building for systems w/out ldso support
linuxthreads.old: extend workaround for asm rename warnings
INLINE_SYSCALL_NCS: scope out local vars to avoid conflicts
some ports define ENOTSUP
MAKEALL: find kernel headers better
syscall: convert cris/hppa to common syscalls
avr32/microblaze/vax: punt local byteswap.h
byteswap: unify common definitions
libpthread: add format attribute to __pthread_message()
linuxthreads.old: fix crash in debug code
add hidden aliases for ntoh/hton functions
add hidden aliases for openat funcs
ignore gdb/debugging files
Blackfin: unify FDPIC/FLAT versions of clone
create real common vfork() function
add more arch-specific include/ ignores
do not install bits/syscalls-common.h
silence warnings in Blackfin ldso code
ldso: fix building for FDPIC systems
Blackfin: add elf_machine_load_address() stub
Blackfin: fix incorrect attribute order
Blackfin: fix typo in byteswap.h commit
fix dl_iterate_phdr() for FDPIC systems
Blackfin: rename __dl_boot to __start
add missing UTIME_* defines for *at funcs
enable sbrk() for everyone
do not force LFS for Blackfin systems
enable nanosecond stat support for everyone
add missing UTIME_* defines for *at funcs
force arches to provide sys/user.h
linuxthreads.old: define pthread_yield to sched_yield
drop last _syscall6 checks
xstatconv: drop useless hidden code
fstatat: fix up behavior on 32/64 bit hosts
setup attribute_optimize which comes with gcc-4.4+
daemon: fix up INTERNAL_SYSCALL() usage
sys/mount.h: sync with latest glibc
ldso: use MAP_FAILED with ld.so.cache
fcntl.h: drop unused/dead O_STREAMING
clean up O_CLOEXEC handling
ldso: use O_CLOEXEC for cache file
ldso: pull in missing bits/fcntl.h header for O_CLOEXEC
resolv/crypt: convert to foo-y kbuild style
drop __BCC__ cruft from string code
ldso: clean up breakage in tls merge
ldso: simplify handling of extra _dl_lookup_hash() arg
ldso: define MAP_FAILED for everyone
i386: use common INTERNAL_SYSCALL_ERROR_P
ldso: unify and cleanup _dl_mmap code
ldso: drop duplicated/unused defines
sparc qops: unify & shrink
malloc: handle size overflows in realloc()
sparc: use HIDDEN_JUMPTARGET for errno
sparc: use fputs to write to stderr
inet_ntop4: avoid inline initialization
sysctl: avoid inline initialization
regex: call memcpy() ourselves
libc: add hidden calls to pthread cleanup funcs
test/plt: add a script to find PLT usage
build with -fmerge-all-constants
disable _POSIX_SPAWN define
sparc: use HIDDEN_JUMPTARGET for errno
sparc: use fputs to write to stderr
inet_ntop4: avoid inline initialization
sysctl: avoid inline initialization
regex: call memcpy() ourselves
libc: add hidden calls to pthread cleanup funcs
test/plt: add a script to find PLT usage
build with -fmerge-all-constants
disable _POSIX_SPAWN define
install shared libs with +x perms
remove incorrect text from abspath option
install_headers.sh: make more user friendly
ldso: let people disable the implicit path search
bits/mmap.h: unify ala linux asm-generic efforts
nommu: use MAP_UNINITIALIZE for mallocs
bfin: add exec stack markings to assembly files
nommu: fix building of fork.c when stubs are disabled
msync: skip if syscall is missing
bfin: pull in common/sysdep.h
daemon: drop cruft incorrectly re-introduced by nptl merge
enable fcntl nocancel prototype for all threads
new helper funcs for alloca/malloc with mmu/nommu
malloc: simplify MAP_UNINITIALIZE ifdef logic
bfin: add missing GNU-stack markings to __longjmp
ldso: fix fdpic builds
tempname: fix int precision warnings
bfin: fix fp reference in _JMPBUF_UNWINDS
unify stub logic
linuxthreads.old: fix nommu initial thread stack detection
ldso: constify reloc array itself
ldso: x86_64: delete unused variable
tests: add fallback for mktemp()
tests: ignore new inet test
ldso: merge duplicate dl-syscalls.h code to common header
ldso: bfin/frv: drop dead simulator code
ldso: unify pread syscall definition
libcrypt: do not cast away const of key/salt
stdio: add support for "e" flag with fopen()
include/: ignore new sys/eventfd.h symlink
buildsys: drop manual TARGET_SUBARCH .config lookup
ldso: use __func__ rather than __FUNCTION__
make ARRAY_SIZE commonly available internally
ldso: fdpic: unify duplicate bfin/frv logic
ldso: fdpic: clean up style
ldso: bfin: shrink sram mapping func
ldso: bfin: fix sram_flags init
getutid: add a hidden def
x86_64: add PLT bypass for __sigsetjmp
ldso: simplify interp path search logic
ldso: setup search path even when there are no "/"
config: remove some redundant words in the menus
buildsys: cache build flags in vars
tests: skip redundant -Wstrict-prototypes setup
buildsys: fix detection of silent make
buildsys: simplify include_clean greatly
buildsys: skip compiler flag checking for clean targets
tests: mmap2: ignore permission denied errors on /dev/mem
tests: opendir-tst1: add header for mknod()
tests: fdopen: add missing mode args to open()
tests: test-canon: include sys/stat.h for mkdir()
tests: tst-futimens1: add missing mode args to open()
buildsys: fix handling of CFLAG_-W{a,l} vars
buildsys: handle more clean targets
tests: mark all helper scripts +x
buildsys: use = for --sort-section linker flag
librt: refactor source selection
ldso: use ELF_xxx()/ElfW() helpers
Revert "Fix redefinition of ioperm and iopl in stubs.c and arm/{ioperm.c,iopl.c}"
arm: disable ioperm/iopl stubs
ldso: bfin: tweak style
spawn: use glibc style to keep differences down
spawn: do not require C99 style
spawn: fix building on no-mmu systems
ldso: bfin: add alias from __start to _start
ldso: mark _start hidden
fchmodat: fix handling of flags
buildsys: fix building with make-3.82+
bfin: set an invalid insn for abort
regex: silence set-but-unused warnings
alpha: trim crt code to fix build errors
MAKEALL: also check for gnu suffixed toolchains too
MAKEALL: fix cross-compiler lookup breakage after CROSS cleanup
MAKEALL: add more arch aliases
mmap64: always use unsigned 64bit offsets
mmap64: include stdint.h for uint64_t
mmap64: use INLINE_SYSCALL() helper
linuxthreads.old: only declare __pthread_xxx funcs hidden inside of libpthread
getconf: include a newline in error messages
linuxthreads.old: fix typo in pthread_mutex_unlock hidden prototype
linuxthreads.old: fix set-but-unused warning
linuxthreads.old: pass back up saved_errno value in manager init
linuxthreads.old: refactor nommu logic a little to avoid mmu warning
mmap64: Use correct type for offset parameter
epoll.h: sync with glibc
rpmatch: simple inline version
rpmatch: fix previous commit w/C++ compilers
docs: restore crt from old svn tree
linuxthreads.old: fix build warnings with epoll enabled
stdio: implement assignment-allocation "m" character
pread/pwrite: handle renamed syscalls in common/ppc/xtensa code
pread/pwrite: drop fallback funcs
include/: ignore more symlinks
libc/sysdeps: add dup3 syscall wrapper
libc/stdlib: add mkostemp helpers
libc/sysdeps: dup3: check for __NR_dup3 since older kernels/arches lack it
string/microblaze: fix preprocessor style
ldso: include dlfcn.h for RTLD_NODELETE
nptl: fix gcc noreturn warning
nptl: fix gcc noreturn warning
Replace FSF snail mail address with URLs
drop support for pre ISO-C compilers
libc/stdlib: localize __unix_grantpt
libc/sysdeps: dup3: fix typo in comment
buildsys: clean up path scrubbing a bit
buildsys: allow the toolchain to search its dirs for kernel headers
buildsys: gen_bits_syscall_h: remove top_builddir references
buildsys: gen_bits_syscall_h: clean up script
buildsys: gen_bits_syscall_h: do not leave undefined SYS_xxx around
libc/sysdeps: sync bits/in.h with glibc
libc/inet: pull in stddef.h for NULL
libc: rename TRUNCATE64_HAS_4_ARGS to SYSCALL_ALIGN_64BIT
mips: only define SYSCALL_ALIGN_64BIT for O32 ABIs
linux: use OFF64_HI_LO rather than __LONG_LONG_PAIR
linux: posix_fadvise: use new SYSCALL_ALIGN_64BIT
linux: readahead: convert to SYSCALL_ALIGN_64BIT
linux: pread/write: convert to SYSCALL_ALIGN_64BIT
linux: pread/write: fix 64bit handling
i386: punt all config options that just control -march
bits/time.h: sync with latest glibc
Mikhail Gusarov (2):
Extend __gen_tempname with mode argument
Unbreak sem_open when UCLIBC_SUSV3_LEGACY is not defined
Miles Bader (112):
Remove extraneous file
Re-add files which were mistakenly deleted during the big bits/ update.
Initial checkin
Add EM_CYGNUS_V850.
Generic implemention works for v850 now, so we don't need a special version.
Remove v850-specific versions of truncate64.c and ftruncate64.c.
(L_dummy_main_reference): Reference the C symbol `main', not the linker symbol `main'.
Just tail-call __uClibc_main. There's no real point to calling abort if exit failed, and abort drags in some unecessary grot.
Don't bother zeroing BSS, since actually we _can_ rely on the loader to do it.
Use __off64_t instead of off64_t.
Grumble...
Rename mutex stuff to use heap-specific names. Doc fix.
Doc fix.
* Automatically try to unmap heap free-areas when they get very big.
(__ASMNAME): Use C_SYMBOL_PREFIX. (__ASMNAME2): Macro removed.
Remove, since it's entirely incorrect
Misc small cleanups.
Factor out some common code sequences into inline functions.
Redo the locking, so that it may actually work. Now locking is done at the malloc/free level, not within the heap abstraction, and there's a separate lock to control sbrk access.
Miscellaneous tidying-up.
Size tweaks.
Add macros to abstract the malloc header format a bit.
Use new malloc header macros.
Implement shrinking. Fix bug when growing an allocation. Use new malloc header macros.
Define MALLOC_SET_SIZE to take the user-address rather than the base-address.
MALLOC_SET_SIZE now takes the user-address rather than the base-address.
Update the size of grown/shrunk allocations. MALLOC_SET_SIZE now takes the user-address rather than the base-address.
Make sure NEW_SIZE is a multiple of HEAP_GRANULARITY. Calculate amount freed when shrinking correctly.
(MALLOC_HEADER_SIZE): New macro. (MALLOC_BASE, MALLOC_ADDR): Use it.
Use MALLOC_HEADER_SIZE.
Account for MALLOC_HEADER_SIZE when calculating new size.
Update debugging printfs.
In the allocate-and-copy case, don't include the malloc header in our size calculations.
(HEAP_MIN_SIZE): New macro. (HEAP_MIN_FREE_AREA_SIZE): Increase size. Enable debugging if HEAP_DEBUGGING is defined.
(MALLOC_REALLOC_MIN_FREE_SIZE): New macro. Enable debugging if MALLOC_DEBUGGING is defined.
Use MALLOC_REALLOC_MIN_FREE_SIZE.
Use `return' for null pointers, to avoid a giant block holding the rest of the function.
Initial checkin.
(CSRC): Add syscall.c
Handle zero NEW_SIZE case.
(__malloc_likely, __malloc_unlikely): New macros.
Add flow-control hints with __malloc_likely and __malloc_unlikely.
Use __malloc_unlikely instead of `likely'.
(headers): Remove special case for v850, now that the general case works correctly for non-MMU systems without a `nommu' suffix. Fixup indentation a bit.
(errno): Only define as a macro if __UCLIBC_HAS_THREADS__ is defined. (__set_errno): Just assign to `errno' (which will be expanded to the thread-friendly version when appropriate).
(h_errno): Only define as a macro if __UCLIBC_HAS_THREADS__ is defined. (__set_h_errno): Just assign to `h_errno' (which will be expanded to the thread-friendly version when appropriate).
(_res): Define as a macro if __UCLIBC_HAS_THREADS__ is defined, regardless of _LIBC.
Remove thread-specific stuff entirely.
Make INCLUDE_FULL_RPC default to !HAVE_SHARED.
Remove __res_state function.
whitespace
(MALLOC_SETUP): New macro. (MALLOC_SET_SIZE): Take the base-address of the block, not the user-address. (MALLOC_ADDR): Macro removed.
(malloc): Use MALLOC_SETUP.
(realloc): Follow new arg conventions of MALLOC_SET_SIZE.
Initial checkin.
(CSRC): Add `memalign.c'.
(CSRC): Make contents source files, not object files.
(initfini.s): Search the uClibc include dir, so we can find <features.h>.
Initial checkin.
(likely, unlikely): New macros. (__malloc_likely, __malloc_unlikely): Macros removed.
(likely, unlikely): New macros.
Use `likely' & `unlikely' instead of the `__malloc_'-prefixed versions.
(__heap_free): Tighten up the inner loop, and make the code more readable.
Doc fix.
Add __kernel_ino64_t. Make __kernel_loff_t unconditional.
Redo stat structures (kernel changed too).
(__heap_delete): Renamed from `__heap_unlink_free_area'. (__heap_free_area_alloc): Use __heap_delete. (__heap_is_empty): New macro.
(free): Update debug statement. Update to use __heap_delete and __heap_is_empty.
Change <bits/syscall.h> to <bits/sysnum.h>.
Update debugging hooks.
Initial checkin.
(realloc): Record the correct size in the malloc header in the case where we extended the existing allocation, and got back more than we asked for from the heap.
(__heap_check_failure): New function. (__heap_check): Add more checks. Use `__heap_check_failure'.
* Add support for uClinux's broken munmap, contingent on __UCLIBC_UCLINUX_BROKEN_MUNMAP__ (which is currently not defined anywhere). This makes other cases a tiny bit less efficient too. * Move the malloc lock into the heap structure (locking is still done at the malloc level though, not by the heap functions). * Initialize the malloc heap to contain a tiny initial static free-area so that programs that only do a very little allocation won't ever call mmap.
Fix locking to not deadlock when __UCLIBC_UCLINUX_BROKEN_MUNMAP__ is defined.
Get rid of old malloc lock stuff.
Use __heap_[un]lock instead of __malloc_[un]lock.
(uClibc_config): Define __UCLIBC_UCLINUX_BROKEN_MUNMAP__ for MMU-less systems.
Don't infinitely recurse when trying to grow __malloc_mmb_heap.
Make `-nostdlib' and `-nodefaultlibs' work correctly.
Add appropriate -I options so that any files included by unistd.h are found correctly. Tweak the whitespace of the generated file.
Define TOPDIR to be just `.' when invoking gen_bits_syscall_h.sh, since we've already chdir'ed to $(TOPDIR).
* Make -DNDEBUG depend on DOASSERTS, not DODEBUG * Make -msoft-float depend on USE_GCC_SOFT_FLOAT_OPTION, not UCLIBC_HAS_SOFT_FLOAT.
(DOPIC): Depend on !HAVE_NO_PIC. (UCLIBC_HAS_FULL_RPC): default to `y' if !HAVE_SHARED. (SYSTEM_LDSO): Depend on HAVE_SHARED. (DOASSERTS): New option.
(UCLIBC_HAS_MMU): Depend on !ARCH_HAS_NO_MMU, rather than just using it to set the default. (HAS_FPU): Depend on !ARCH_HAS_NO_FPU. (USE_GCC_SOFT_FLOAT_OPTION): New option.
Rename `Config.v850e' to `Config.v850'.
Initial checkin.
Improve malloc debugging support.
Debugging tweaks.
Rename longjmp.S to __longjmp.S Remove extra weak symbols defined by ../common/longjmp.c
(SSRC): Rename longjmp.S to __longjmp.S (CSRC): Add clone.c
whitespace
Initial checkin
Add multiple-include protection.
Initial checkin.
Use correct names for dummy crti.o/crtn.o files.
Correct license.
Pass CHILD_STACK argument to system call (it possibly worked before `by accident', as the function argument is in the same register).
Don't use -O0 when DODEBUG is turned on.
Add back in PTRACE_SINGLESTEP. Use decimal instead of hex to agree with common/sys/ptrace.h.
Reserve stack space for args we pass to __uClibc_main.
(free_to_heap): Unlock the heap before returning in the __UCLIBC_UCLINUX_BROKEN_MUNMAP__ case. Fix from YYang1(a)Winbond.com.tw.
(__libc_open): Fix wacky indentation.
(1) Make UCLIBC_CC env var work even if __UCLIBC_CTOR_DTOR__ isn't defined. (2) Add a command-line option --uclibc-cc with the same functionality.
ansidecl.h and symcat.h copied from glibc.
Make sure static heaps are aligned correctly.
Add dependencies on header files.
Make sure we don't allocate too little space for static free-areas because of our fiddling with alignment (because doing so is VERY BAD).
More fiddling with static free-areas: make sure both their size _and_ their alignment are correct.
Revert to using uClibc-specific c-symbol-prefix stuff (__C_SYMBOL_PREFIX__).
Don't set errno if for zero SIZE returns. Code formatting cleanup.
Code formatting cleanup.
Mirko Vogt (2):
avoid using c99 syntax
_vfprintf.c: use 'fputws_unlocked(S, F)' instead of 'fputws(S, F)'
Mischa Jonker (2):
libc: Fix common-generic stat.h for BE
libc/sysdeps: Fix common-generic stat.h for BE part 2
Natanael Copa (23):
ldso: initialize stack_chk_guard after TLS is initialized
define local stack_chk_guard for nptl
fix typo that sneaked in with 9a7506
Fixes NPTL build on x86.
nptl/sysdeps/unix/sysv/linux/i386: cleanup -DUSE___THREAD
nptl: proper soname handling
utils: fix install prefix for getconf
utils: Fix ldd segfault
nptl: do not define _POSIX_SPAWN since its not implemented
nptl: fix static linking
config parser: do not assume that realloc return same pointer
getservice: getservent_r must return ERANGE when buffer is too small
config parser: always initialize line pointer
parse_config: discard rest of incomplete line
getservice: fix handling of long lines
getnet: simplify alias handling and reduce MAXALIASES
getproto: increase line buffer size, simlify and fix alias handling
ntpl: fix static linking by not leaking SSP_ALL_CFLAGS
libc: fix strtoq
create DEVEL_PREFIX/MULTILIB_DIR dir rather than DEVEL_PREFIX/lib
getaddrinfo: allow numeric service without any hints
sys/queue.h: update to eglibc version
i386/bits/syscalls.h: allow immediate values as 6th syscall arg
Nathan Sidwell (2):
Fix a problem with scanning wide chars.
Fix some fragileness in dlopen/do_dlopen wrapper & worker pair.
Ned Ludd (17):
initial commit of uclibc equiv of glibc getent
misc cleanups of __stack_smash_handler() function when ssp support is enabled. syslog() support should now work both inside and outside of chroots. erandom code left in but remains #ifdef out by default. May remove erandom completely in the future for uClibc unless the LFS guys and gals want to keep it.
misc cleanups of __stack_smash_handler() function when ssp support is enabled. syslog() support should now work both inside and outside of chroots. erandom code left in but remains #ifdef out by default. May remove erandom completely in the future for uClibc unless the LFS guys and gals want to keep it.
update : $
- Added support for 13 new syscalls to allow more things to compile when using uClibc. mincore() and the ones for Extended Attributes setxattr(), lsetxattr(), fsetxattr(), getxattr(), lgetxattr(), fgetxattr(), listxattr(), llistxattr(), flistxattr(), removexattr(), lremovexattr(), fremovexattr() which are optional.
- dont use dos format
- added LD_TRACE_LOADED_OBJECTS to be stripped from the env on suid exec
- add patch from Peter S. Mazinger to allow selecting the fast access canary for propolice/ssp
- ifdef uselib update from bug #0000013
- ifdef bdflush update from bug #0000011
- updated getent script to match behaviors of newer glibc getent. update from Peter S. Mazinger
- 1/NN patches for ssp
- 2/NN patches for ssp. Updates from Peter S. Mazinger and Robert Connolly
- 3/NN patches for ssp. Doc updates from Peter S. Mazinger and Robert Connolly
- avoid segfaulting when rlimit stack is set to low for gen_wctype by calling setrlimit(RLIMIT_STACK, &limit)
- added externs to keep gcc quiet about implicit declaration of 3 functions
- keep gcc-4.x happy
Nitin Garg (1):
arm: fix the static link problem for ARM due to undefined __tls_get_addr
Paul Mundt (26):
Add some more SH relocation types.
sh64 ldso updates and fixes.
mq_* interfaces are available in librt, remove from unimplemented list.
Simplify PERFORM_BOOTSTRAP_RELOC() default path.
Add sh2a support.
Move sh64 to its own config so we don't crap up the sh one..
SH-4 has nommu variants, whereas SH-3 does not.
Fix __sigprocmask weak symbol resolution with gcc4.
Fix platform URLs, though I'm sure rmk has enjoyed the extra traffic..
Fix trapa value for _syscall6() to conform with new sh syscall ABI.
ARM1136JF-S support.
Bogus page size comment for frv PAGE_SHIFT.
Bump SHMLBA up to a sensible size for dcache alias avoidance to coincide with the kernel's get_unmapped_area() behaviour. Ideally this should be more tightly packed based off of the L1 dcache shape, once we're able to handle it through the auxiliary vector.
Merge SH-2 trapa fixups from Mark.
sh crti.S needs features.h to resolve __HAVE_SHARED__, trivial patch from Carmelo Amoroso <carmelo73(a)gmail.com>.
Fix PLTJMP() token pasting build error, patch from Carmelo Amoroso <carmelo73(a)gmail.com>.
Sync sh's procfs.h with glibc, fixes gdbserver. Patch from Carmelo Amoroso <carmelo73(a)gmail.com>.
Bring sh64 support back from the dead.
sh64 uses a 32-bit ABI, don't bother with lib64 silliness.
Switch sh64 to use __uClibc_main and the new register layout.
Update the TODO reflecting the sh64 changes.
Disable -msoft-float usage on SH, gcc doesn't support it.
Fix up an msync() redefinition for linuxthreads + nommu systems, common case depends on __ARCH_USE_MMU__, falling back on the include/sys/mman.h:msync() stub otherwise.
Kill off the GOT lookup for init/fini in the sh crti.S. This was inversely conditional on __HAVE_SHARED__, which has been broken since the time it was copied in originally. The compiler properly generates the GOT references on its own, negating the entire purpose for the init/fini reference.
Fix up memset() argument ordering in open_memstream(). Previously parts of the buffers were not being zeroed out as expected. Reported by Dmytro Gorbunov <dmitro.gorbunov(a)gmail.com>.
Use __SH_SYSCALL_TRAP_BASE for pthread vfork trap, as it will change depending on ABI.
Peter Griffin (2):
sh: Fix FPU config option
sh: Change __HAVE_SHARED__ to __PIC__
Peter Kjellerstedt (67):
Do not assume a fifth argument is used with syscall(). Allocate stack for saving SRP separately.
Synchronized with glibc (2.3.2).
Use the inlined __dl_parse_dynamic_info() in DL_BOOT() for CRIS too.
Corrected a typo.
Made it possible to make utils when $(CROSS) or $(CC) contain spaces.
Make it compile for architectures which have __UCLIBC_HAS_LFS__ defined, but neither __NR_fadvise64 nor __NR_fadvise64_64.
Use Makefile if statements rather than their shell counterparts.
Avoid compiler warnings.
Use $(LN) rather than ln.
Include features.h (without it, testing for __UCLIBC_HAS_THREADS__ makes no sense).
Implement _start completely in assembler. Otherwise the compiler will push the frame pointer when DO_DEBUG is enabled (and thus incorrect argc, argv and envp will be passed to the program).
Define va_copy for pre-C99 compilers (code taken from vfprintf.c).
Made it compile again (and it even seems to work).
A little whitespace clean up.
Corrected a typo (exection -> execution).
Let mconfig support options specified using the menuconfig directive again (this code snippet seems to have vanished somewhere between the original Linux 2.6 kconfig code and here).
Copy vendor/linux/2.6.11/scripts/lxdialog to trunk/uClibc/extra/config/lxdialog.
Updated to match Linux 2.6.11.
The list of source files was just too much. Especially trying to keep it alphabetized (which was not fully successful) made adding a new file a mess. Replaced it with a call to the make function $(wildcard).
Updated to match glibc 2.3.4 (adds missing CLOCK_MONOTONIC).
Added support for clock_getres() and clock_settime() in addition to the already existing clock_gettime(). In addition they will now use the corresponding system calls if they exists, which resulted in a move to libc/sysdeps/linux/common for clock_gettime.c (it was previously located in libc/misc/time).
Added a CRIS specific version of termios.h. It is identical to libc/sysdeps/linux/common/bits/termios.h with a couple of CRIS specific baud rates added.
* Allow baud rates above 115200 again. * Added a couple of esoteric CRIS specific baud rates.
Sync with glibc 2.3.6.
No longer needed.
Cleaned up the assembler code a little.
Remved the (BROKEN) tag from the CRIS architecture.
* Made it possible to dynamically check for supported linker options using the check_ld function. * Only use --warn-unresolved-symbols with linkers that support it.
Made include/bits/pthreadtypes.h compile again as it uses struct __sched_param.
Made it possible to build without stripping the binaries.
Silence link creation.
Corrected a typo (simularly -> similarly).
A little clean up.
Allow MMAP2_PAGE_SHIFT to be specified by the architecture specific header files.
Specify a correct MMAP2_PAGE_SHIFT to use when calculating the offset for mmap2() on CRIS.
Corrected a comment regarding mmap2().
Include bits/uClibc_page.h before dl-syscall.h as the latter may need the defines from the former.
Moved the definition of MMAP2_PAGE_SHIFT from ldso/ldso/cris/dl-syscalls.h to libc/sysdeps/linux/cris/bits/uClibc_page.h where it belongs.
A little clean up.
* Include sys/syscall.h so __NR_mmap2 and _syscall6 actually have a chance of being defined (the lack of this include probably means that the common mmap64() function has never worked as intended...) * Include bits/uClibc_page.h to get MMAP2_PAGE_SHIFT for architectures that need to define it.
A little clean up.
Added support for the new CRISv32 architecture.
Fix the _syscall6() macro (I hope).
Make execle() and chown() available again (corrects commit 15179).
Sync with glibc.
Remove uses of all QUEUEDEBUG_* macros.
Use tar rather than cp to copy all files matching *.so.* from the lib directory to $(PREFIX)$(RUNTIME_PREFIX)lib. The reason for this is that cp -P means wildly different things depending on the version of cp.
A little whitespace clean up.
Added a missing baud rate (614400) to the speeds[] table.
Made it compile again.
Allow the res argument to clock_getres() to be NULL.
Remove code to define errno in this file. It is definitly not needed when building with thread support (which we normally do), and as far as I can tell it should not be needed otherwise either. And as it did not build with the latest binutils and gcc, the choice was easy...
Added support for sysconf(_SC_MONOTONIC_CLOCK).
Do not include tls.h unless __UCLIBC_HAS_THREADS__ is defined.
Make strdup() use memcpy() rather than strcpy() to duplicate the string. The rationale is that we already have the length of the string to duplicate (from doing the malloc()), and memcpy() should then always be faster than strcpy() (or at least as fast).
Recognize _SC_MONOTONIC_CLOCK in sysconf() even if __NR_clock_getres is not defined.
Make sure struct stat is identical to struct stat64 if __USE_FILE_OFFSET64 is defined. This was the case for all architectures except those that use packed structures by default (i.e., CRIS).
Do not produce spurious "/bin/sh: [: too many arguments" if $(HEADERS_BITS_SUBARCH) is empty (which it most likely is).
Patch by Ricard Wanderlof <ricardw at axis dot com>: * Add configurable buffer sizes for getpwnam() and getgrnam(). The default buffer size is, as before, 256 (glibc seems to use 1024 by default).
Made it compile again.
Restored indentation.
Added optimized versions of strcpy() and strncpy() for CRIS/CRISv32.
Use poll() rather than select() if the former is available to wait in __dns_lookup(). This avoids segmentation faults when more than 1024 file descriptors are used by an application.
Include sys/syscall.h since we are checking for __NR_clock_getres.
Correct _init()/_fini() for CRISv32 as suggested by Stefan de Konink.
Rebased the memcpy() and memset() implementations for CRIS on the versions found in newlib rather than the ones found in glibc. This should make them smaller and (hopefully) make them compile with newer versions of gcc.
Make sure __hot and __cold are always defined.
Peter Korsgaard (3):
don't make __errno_location / __h_errno_location hidden
sync bits/socket.h PF_* / AF_* values with 2.6.38-rc3
bits/time.h: sync with glibc 2.16
Peter S. Mazinger (1307):
correct some typos
enable flockfile and friends if threads are not enabled
remove unused headers on install and clean up all thread related ones
disable obstack_printf in header, not supported
include headers only if the related option is enabled
utils should be built all the time (iconv), disable building readelf
do not recurse into subdirs if related options are not set
add attribute_relro, should be unconditional, if gcc/ld supports it
Makefile cleanups
weaks moved after the related function so gcc4 won't warn
split out nearbyint, round, trunc from libm/powerpc/s_modf.c
no check needed in libm/libpthread, we do not recurse anymore if the related option is not set, more Makefile cleanups
Don't remove libc-internal.h on install, else gcc does not build
New ssp code using syscalls where possible. Moved guard_setup to __uClibc_main.c, the only place where it is called. Removed SIGKILL option, not usable with sigaction.
Changed ssp.c license to LGPL and added vapier as contributor
Do not build __uClibc_main.o with ssp enabled
Correct targets install_dev and install_runtime to depend on shared
Add __cxa_atexit and __cxa_finalize, thanks to Stephen Warren. This patch breaks compatibility with existing binaries, unless the new COMPAT_ATEXIT option is enabled.
remove unneeded ';' and add utils to .PHONY
Revert earlier patch to install_dev and runtime targets. Need a better solution.
Remove created objects independently of TARGET_ARCH and kill 3 warnings
Speed up clean target, don't recurse where possible, remove unneeded actions
Target distclean removes now locales.txt/codesets.txt too. reorder clean target.
Do not create libc.so linker script if only development headers are installed
Provide atexit() for static builds
Check for existing libc.so ld script before trying to modify it
Should correct ppc compilation failure reported by Glauber de Oliveira Costa. Couldn't test it though on ppc.
Remove ar-target and shared targets, at build time now we traverse the tree only once. Generalize all toplevel makefiles. Make sure, that libdl.so is built against libc.so and not libc.a
Oops, libc.a didn't got installed
arm/crt1.S needs features.h and the weak _init/_fini independently of __PIC__. Add these weaks to mips/crt1.S as well.
Build crt[in].o with disabled ssp.
If HAVE_SHARED is disabled and libm/TARGET_ARCH does not exist, subdirs does not resolve to anything, not pulling in libm.a target. Add libm.a to all: .
Modify libm's Makefile not needing any recursion
Allow parallel building in libm
Remove unneeded temporary file, libm.so will wait until libm.a target is finished
Similarly to libm, remove recursion from linuxthreads. Now only libc.a and libc.so are rebuilt again if make is run a second time.
Add .type _init/_fini unconditionally to arm/crt1.S
Split out header installation into separate install_headers target and added an additional condition for libc.so linker script creation checking for libc.so.0 in place.
Move arch specific bits from linuxthreads' Makefile to linuxthreads/sysdeps/TARGET_ARCH/Makefile.in proposed by vapier. The current implementation should suffice for now, but it needs to be extended for the nptl tree.
chroot_realpath.c is a dependency also for target ldconfig
Add gcc-4.1 non-TLS __stack_chk_guard support. Run the guard setup only once.
Move _dl_protect_relro after INIT to allow using attribute_relro within uClibc_init
Enable attribute_relro on __guard and __stack_chk_guard now that ld.so supports it
Move _dl_protect_relro as in ldso.c, thanks to jocke
Do not recurse into ldso/libc/libpthread on clean
Use PTDIR in libpthread/Makefile too, add new PTNAME being nptl or linuxthreads. sjhill, I know you kill my keyboard, but please read my added comments, thanks.
Add another comment
Remove *.o and *.os running find only once
Doing the compile in one step creates smaller archives, libcrypt.a shrinks from 12k to 10k, libutil.a to 8k to 4k. Use make provided features where possible /$</$^.
User strong_alias instead of initializing __guard separately
Sync unsecvars.h w/ glibc-2.3.5, remove unused vars in uClibc, update comment about those in glibc
Remove TMPDIR from glibc's commented list
Allow building uClibc w/ make-3.79.1 if SSP is disabled
Undo size optimizing patch that does not work with gcc-4.1-head, reported by sjhill, thanks cow for testing
Missed OBJS definition in libcrypt/libutil. Use := where possible
Do not defer expansions where useless, like CSRC/OBJS/LIB_NAME/AR_LIB_NAME, defer only for shared lib related stuff, because it is optional. Run STRIPTOOL only once. More use of /$^/$<.
Defer SHARED_START/END_FILES. They are only used for the shared library.
Change __OPTIMIZE__ > 0 to defined(__OPTIMIZE__) as in glibc-2.3.5.
Rewrote almost all Makefiles: do not use strip $(x),y; run strip on all objects at once; use :=//$</$^; use CRT_SRC/CRT_OBJ/SCRT_OBJ/CSRC/COBJ/SSRC/SOBJ/MSRC/MOBJ where no more is needed, if only CSRC is present use OBJS directly instead of COBJ; CTOR_TARGETS are created directly in lib; remove unused/unneeded parts. Hope I haven't broken too much.
Curious failure now, haven't touched this one.
Remove /dev/erandom support, as [h]lfs does not use it in this form.
Add new rules file for review, better ideas, not used yet
Do not recurse into ldso if HAVE_SHARED is disabled.
Change __LIBDL_SHARED__ to SHARED. This will be also used in some other places to get an object built for lib*.so but not for lib*.a.
Forgotten to commit libdl.c, change __LIBDL_SHARED__ to SHARED.
Add -combine to CFLAGS so gcc-4.1 won't build faulty libs if all sources are built into one object
This file is a temporarily used one, until all the tree is converted to new structure, allowing to build out of source tree, PIC for shared/ non-PIC for static, allowing to add objects from one lib to the other (needed for ld.so/libc.so and probably libpthread.so)
Undo -combine addition, check_gcc can't cope with it
Update upcoming new infrastructure files
Commit first Makefile.in as example how the new infrastructure is intended to be used
Typo correction, thanks cow.
Updated libcrypt example Makefile
2 more examples that show the handling of different objects in lib*.so and lib*.a, also handle arch specific optimized versions
Add the current implementation to review
Add the linuxthreads Makefiles too
Adapted generic file to work properly with linuxthreads
Update license file to Lesser GPL v2.1
headers is prerequisite for subdirs
linuxthreads_db depends on PTHREADS_DEBUG_SUPPORT
Change in_addr_t inet_aton to int, glibc has it as int and uClibc uses it in addr.c also as int. Rename mylock/LOCK/UNLOCK in resolv.c to allow IMA compiling
Better solution to duplicate locking defines
Remove duplicate locking defines for IMA compiling.
Kill warnings if IMA compiling
Move GETXXKEY_R_FUNC into a separate file to allow IMA compiling
Workaround to allow this directory to IMA compile. Someone w/ better understanding, please try to rework this by using only one copy of sp_off
Kill warning if IMA compiled
More IMA compiling
Correcrt posix_fadvise* to allow compiling
Use local copy of sysdep.h
Make use of fcntl64 syscall if possible
All Makefile.in's. Only arm/i386/mips/powerpc/x86_64 are done, the other archs lack proper crt1. The Makefiles in extra/scripts are intended to be linked into each dir, where it is necessary to build locally.
Add -fcombine check to allow IMA compiling w/ gcc 4.x
Add script to create the minimal subset of symlinks
Default changed to IMA compiling, disabled explicitely where currently not possible. Add clean targets for linuxthreads[_db].
Remove s_ceilf.c and s_floorf.c, ceilf and floorf are provided by the float_wrapper. I hope that __ceilf and __floorf are not needed anywhere. Use only __finite from s_finite.c, disabled in fpmacros.c. Allow IMA compiling, 2 files: s_lib_version.c and w_cabs.c have to be reworked for complete IMA.
Correct w_cabs.c so it can be added to IMA, add -D_POSIX_MODE for compiling s_lib_version.c (only in the new Makefile)
Remove comment, I corrected the order already.
Correct header cleanup, if threads are disabled, thanks to Jan-Benedict Glaw reporting it.
Hope to catch --combine flag properly on all gcc versions
Moved the use of --combine to CFLAGS, we need it for debugging too
Moved guard_setup to dl-osinfo.h (used commonly by ldso and libc). Renamed to _dl_setup_stack_chk_guard, as in glibc. SSP requires now binutils-2.16.1 and newer. Add NOT_IN_libc/IS_IN_libc. Began using -DSHARED in uClibc_main.c, there are more candidates in there. Move back dl_protect_relro to it's earlier place.
Allow using ssp w/ current active Makefiles too. Build crts for non-shared archs too.
ARCH_HAS_NO_MMU implies/selects ARCH_HAS_NO_LDSO
frv seems to be an exception having no MMU, but using ldso
HAVE_SHARED depends on \!ARCH_HAS_NO_LDSO, remove BUILD_UCLIBC_LDSO and replace the dependencies w/ HAVE_SHARED
Missed one occurence of BUILD_UCLIBC_LDSO
Remove HAVE_NO_SHARED where ARCH_HAS_NO_MMU/ARCH_HAS_NO_LDSO are selected already
Enforce DOPIC, if text relocations are not allowed
Remove unused CFLAGS_NOPIC, use ?= some of check_gcc won't rerun
Renamed arch specific Makefile.in to Makefile.arch, else if TARGET_ARCH does not exist, we reinclude the including Makefile. Moved arch/common fpu_control.h link creation into main Makefile.in. Updated the link creation script to remove all the other Makefiles
We use svn, do not look for cvs related files in distclean
Backport to current build system
Use consequently headers-y and headers_clean-y, try avoiding TARGET_ARCH use in main Makefile.in
Add newly needed Makefiles that can be linked
Remove binutils-2.16.1 dependency for SSP, now it works with any binutils, but all apps linked against libc.so will get DT_NEEDED for ld.so too
Backport handling of AS_NEEDED
Update/add scripts' copyright
Remove --exclude CVS from tar
Oops, missed commiting AS_NEEDED check
Correct building locales and backport the changes
typo s/notdir/dir/
Kill a warning. Change __wcstofpmax to __wcstofpmax_l where appropiate
Change Makefiles that are not fully IMA to allow it to be used w/ a DOMULTI config option
Add configure option to allow IMA compiling
Limit IMA compiling to gcc-4, gcc-3.4.4 can't cope w/ some sources
Add -o /dev/null to AS_NEEDED check linker script check, else a.out polution all over the place
Renamed script to create_makefiles.sh, copy instead of link (to allow cygwin users to build), creates all Makefiles now, should be only used if the master copies are updated
Replace all Makefiles for new build infrastucture
Hopefully correct undefined __libc_stack_end issue
Do not add PICFLAG to generic CFLAGS, this is done based on suffix to .os/.oS (Makerules)
Add another Makefile example that will be copied over the root Makefile, adapt script
Remove last unused references to libc-a-pic-, we use only the lists in libc-a-y for objects that go into static libs, changing their suffix to .os, of they should be PIC
ASFLAGS does not need to include CFLAGS as well, compile.S does it already
Update alpha to new builds
Update sh to new builds
Update sparc to new builds
Correct gcc-4.1 ssp build
Add back -L..lib to libdl linker, now that we do not hardcode path to libs in libc.so
Add check, so we are sure that the file is correctly built, if the system is ssp enabled
Split up the .o and .os rules, so all the sources are created if DOPIC is disabled.
Only because of multi sources I had to touch up these and add code duplication
Create the lib*_pic.a links only if DOPIC is enabled
ldso powerpc changes ported to i386
include Rules.mak after noconfig_targets, else it does not pull in .config
Allow sources using syscalls to be IMA compiled on x86
Move __SSP__ check to header
Enable IMA compiling now that syscalls work
Clean up DOMULTI for libm and add more files blocked earlier by syscall problem to libpthread
Remove __set_errno proposed by jocke
Cleaner i386/syscalls.h patch to handle macro redefines proposed by jocke
Added cris on request to new build structure. It has to provide crt1.S instead of crt0.c to get it working
Undo 12115, it fails on building libc/sysdeps/linux/common
add dummy loop to kill gcc warning, probably _exit should get attribute_noreturn
Mark _exit as noreturn, include/unistd.h does this already
Allow partly IMA compile of this directory
Enable IMA on i386
Enable IMA on libc/string/generic
Enable IMA
Enable IMA
Correct IMA
Enable IMA
Enable IMA
Sync headers w/ glibc
wait4 is pid_t, not int
Sync with glibc
Correct _getdents[64] and __syscall_ipc
Last bits for IMA, now everything can be built w/ DOMULTI=y on gcc-3.4.4 with my config (no locale, the rest enabled). Not tested if libc is complete and usable. All the files listed in *_NO_MULTI need love, best would be to replace all multisources w/ single sources.
Sync headers w/ glibc
Disable DOMULTI for these, because gcc-4.0.2 can't cope with them
Sync w/ glibc
Make use of newly introduced attribute_noreturn
Use bits/getopt.h, getopt.h is not included if GNU_GETOPT support is disabled
Correct XLOCALE enabled builds pointed out by nitinkg
Remove duplicate ifdefs
Sync up w/ glibc
Change comment size_t _fpmaxtostr to ssize_t
Protect *strto{d,f,ld}_l by UCLIBC_HAS_FLOATS
Disable multi build on asm files. i386/powerpc could be used if the source is splitted up
Enable multi, because the arch specific versions are non-multi now
Remove copied sources
Remove #define _STDIO_UTILITY, can't find any use of it
Correct a problem introduced by porting the glibc header
Use strchr instead of index (BSD)
Another s/index/strchr/
Disable __xpg_sigpause until it is implemented (if at all) in uClibc
Sync w/ dirent.h, s:HAVE_D_NAMLEN:_DIRENT_HAVE_D_NAMLEN:
Split up MSRC file, bzero left out
powerpc version of bzero using memset
Split up string.c, make internals hidden
Add hidden versions, add missing .size
Add hidden versions
Add hidden versions
Add hidden versions, hope I made it correctly. Sparc optimized string functions are not usable with current build system, each function (as long as asm) should go into an own file, the file having the name of the function
Add hidden versions
Corrections to splitted files
Move to use attribute_hidden
Split up wstring.c and use attribute_hidden
undef functions needed for usage within libc
Hide internally used symbols, use weak_alias for raise/sigwait, as they could be in libpthread too
Correct Warning: function declaration isn't a prototype
Hide some internally used functions
Hide __libc_sa_len
Hide __libc_fcntl[64]. Change weak __libc_fcntl* fcntl* to strong
Update copyright notice
Undo hiding __libc_fcntl[64], CANCELABLE_SYSCALL is not grep friendly ;-(, have to find some other way to make it internal to libc and libpthread
Correct build if locales are enabled s/wcslcpy/wcsxfrm/, found by Paul Brook. Thanks
Hide more of stdio,getdents, use internal __raise
Use -z relro/-z now on all libs, add some new variables needed later, move common ldso/libdl parts to Rules.mak, remove strip from all TARGET_ARCH
Add link.so, add support for CFLAGS-$(subdir), where subdir is the last part of dir, or the full path relativ to top_srcdir, remove *CPPFLAGS, not used, remove $< from multi, unusable
Remove unneeded top_builddir
Replace TOPDIR w/ top_builddir
Include all lib*/Makefile.in in top_srcdir/Makefile.in, allows adding foreign objects to a lib
Replace TOPDIR
Correct typos
Replace TOPDIR
Replace TOPDIR, update copyright
Replace TOPDIR, add/update copyright
Run headers only once, until better solution is found
Enable __THROW,_NTH,REDIRECT_NTH
Add info to CFLAGS about lib we are building
make -j2 works here
Correct type, gcc-3.4.5 fails, thanks nitinkg for reporting/testing
Don't build empty objects, remove unused vars, update copyright
Do not create header links, use -I to find them. Moved dl-progname.h to ldso/ldso, that will exist if top_srcdir != top_builddir.
Guard debug_sym/debug_reloc, make sure elfinterp.c sees __SUPPORT_LD_DEBUG__
Partly undo earlier patch on vapier's request
Do not create any files (dl-progname.h) in ldso anymore
Remove TOPDIR
Remove TOPDIR, update copyright
Hide some
Hide some more
Hide __des_crypt/__md5_crypt
Use internal hidden versions of __login_tty/__openpty
Hide all __kernel_x and __ieee754_
Depedencies corrected (less make oldconfig/headers), rerunning make remakes only headers
Forgotten to commit
Make objs target work again
Allow building ldso in its own dir
Add .E suffix
Add libthread_db and libdl-a objects to objs:
patsubst didn't occur for all cases correctly
Do not need ordered includes anymore
Make utils includable into main Makefile.in, add compile.u and hcompile.u, usable in utils and probably tests. vapier, please quite them if you want to
Add template for utils/Makefile and make use of it
Probably this caused failures in buildroot. Buildroot should run: make oldconfig; make pregen(headers); make; make install
Correct PTINC path and remove hardcoded include for internals.h
Add support for NATIVE_LDFLAGS[-subdir]
Move _GNU_SOURCE from file to CFLAGS, make use of NATIVE_LDFLAGS
Default SHARED_LIB_LOADER_PREFIX to $(RUNTIME_PREFIX)lib
locales prepared for new build system, will allow to autobuild locales, not only use the pregenerated ones
forgot to commit added file
Change internal name __f[ge,pu]tc_unlocked to __libc_x
Use internal version of *_unlocked
Build libc if in a subdir and we have it as a dependency
Include libc's Makefile.in last to catch all the objects included by others that go into libc
Don't remove the directory again, *config did it already
Add header dependency to be used as prerequisite for the all objects
Integrate locales into new build system, move everything locale related to extra/locale, as download, unpack, locale_data.o
Rename NATIVE_LDFLAGS to BUILD_LDFLAGS proposed by vapier
Remove clean target in extra/locale and use locale_clean
Same for utils, renamed install_utils to utils_install to avoid conflict when added to top Makefile.in
Correct a dependency loop
Convert configuration to new build system
Change HOSTCFLAGS to BUILD_CFLAGS proposed by vapier
Some more hidden internals
100 JUMP relocs less (remaining 431) by hiding internally used ones
Overseen 2 unhidden __ieee754_x
Adapt to renamed internal __f{ge.pu}tc_unlocked
Unhide __mempcpy, provide __libc_mempcpy for internal use
Hide some of mem* and str*
Hide some wcs*
headers patched w/ sed -i 's:extern int errno:#include <errno.h>' linux/unistd.h fail here
Sync minimally w/ glibc, else cpio fails building
Guard wcs* w/ WANT_WIDE
Create and hide __btowc, __mbrtowc, __wcrtomb
Implement and hide __wctype
Added .oS asm targets and make ldso build w/ -DSHARED (needed by nptl)
Sync regex.h w/ glibc and make regex build w/ it
Add option to allow switching between old and new regex
Rename regex.c to regex_old.c
Add new regex code from glibc, this is almost double size of the earlier one, but passes sed tests (and thus allows making sed shrink from 91k to 42k
Correct regexec
Allow internal_function to come from libc
Hiding again
Correct typo
Use __STDC__ syntax, no need for prototype if random_r is before srandom_r
Sync w/ glibc
change __rt_sigprocmask to static inline
Sync w/ glibc
Remove test file
Hide mostly used functions
Use $@,$<
Make __syscall_fadvise64_64 static inline
Forgotten that this file is special and does not accept hidden, __mempcpy is hidden again
I must have been crazy ...
Kill 2 redefine warnings w/ gcc-4.x
Remove prototypes that are in kernel_sigaction.h already
Don't strip interp.c, thx blindvt
Remove incorrect display stripping crt1.S
More hiding, including __mempcpy
Hide setstate_r, test
remove wrong assumptions about __libc_x
Remove unneeded weak
_uintmaxtostr is only internally used, we do not need a rename, uClibc_uintmaxtostr.h is only internal header, remove from target
Rename newly created __libc_x (reserved for libpthread overwrites) w/ x_internal, do not use cascading aliases
More hiding, 300 left
Remove hp-timing.h on clean
Sync w/ glibc and disable everything uClibc does not provide
Remove a loop if locales are to be built
Add some needed prototypes and macros to allow transition of __XL and friends to hidden versions
Sync to glibc, remove __x
Guard __strcoll/strcoll for C locales and use the same logic as elsewhere
Hide str*casecmp/*coll/*xfrm and make use of the internal versions
Add needed prototypes removed from generic header
Hide strftime/strptime/wcsftime and make use of internals
Add prototype for __time, #define time __time is not usable here
Use correct syntax, correct weak/strong for [__]strxfrm
Correct syntax now...
Get rid again of memset reloc
Make use internal str*casecmp/wcscoll
Correct typo, iconv binary does not use the internal versions
Hide *clnt|pmap|svc* and some rpc. inet/rpc is full of relocs ...
No more *xdr* jump relocations
Hide more
Missed alias to xdr_string, thanks sjhill
Add hidden_weak_alias/hidden_strong_alias, remove gettimeofday hack and add comment about opendir/closedir undoable, it is too early in this file. i386/x86_64 could use optimized internal_function, but the commented part has to be done based on target, not host
Remove __strto* from header (glibc sync), disable __asprintf/__getdelim, not provided
Hide __syscall_ipc
Add hidden versions
Implement __mknod and use it
Correct use of __*log
Implement __x versions
Use __gettimeofday
Do ppc specific __ioctl too
Use __open|__closedir
Again rpc ;-( , all *inet*, *addr*
Enable __iswctype_l prototype
Reorder so that no prototype is needed. Is there a better way to get rid of gcc warning instead of adding the loop for err/errx? attribute_noreturn is not enough ;-(
Reorder and remove prototypes
Implement __tfind/__lfind and use them
Hide some of the f* *printf, use them as well
Implement __strto* __wcsto* and hide _stdlib_wcsto*
Do __sleep, should we make it weak, so that libpthread can overwrite it?
Use hidden_strong_alias for alias(__x,__y), do not use recursive aliases
Use internal versions
Add -DNOT_IN_libc to disable the libc-internal.h stuff
Sync w/ glibc
Hide __strtofpmax, implement some hiddens
Use __strtod
Hide mallinfo
Similar impl. of __libc_x using hidden_weak_alias, hope threads work w/ it
Hidden __xpg|glibc_strerror_r
Use internal \*_strerror_r
Implement more hidden
Use hidden_weak_alias
Try to mimic glibc sigaction, sjhill, could you please test w/ this version?
Convert the rest of users to hidden
Change the needed prototypes
Use __sendto in __libc_send, small correction
mmap/mremap/socket/rewind gone
typo, thx vapier
locale.h can't be included
__ptr_t = void *, move hidden first
sig* hidden versions, make __rt_sig* static inline
internal sigpause, do we really default to BSD signals?
Implement all needed hidden *printf and correct vasprintf, thx blindvt
Implement hidden *scanf
Implement hidden poll, switch user to hidden *printf/*scanf/poll
Guard wchar dependent stuff properly, thx vapier
Sync w/ glibc, should be equiv. to the earlier
Remove patch chunk and remove unused
Do __nl_langinfo, partly sync header w/ glibc, add missing nl_langinfo_l, change users to hidden version
hide __xstatX_conv
hidden initstate_r and use
make new regex code use __mempcpy
Implement hidden listen, use the hidden listen/accept
s/strong/weak/, sorry sjhill, have overseen your change
hide __sigsetmask
Do hidden pipe, please check the change in mips (.end __pipe?)
Do hidden fread/fwrite/fclose
Switch fread/fwrite/fclose/pipe/sigsetmask users
Do hidden __*stat*
Remove trailing ';' from strong_alias, thx Bernhard Fischer
Solve warning about redefined _GNU_SOURCE, allow iconv to build
Remove fread/fwrite/vfprintf redefines, the only user is iconv, being an external app
Install dummy libc-internal.h
Make sure we are really within uClibc only, these bits should move from the visible header
Sync w/ glibc
Sync w/ glibc
Do hidden sbrk
Add redirect/redefines for x to x64 until someone will answer my mail/decides of a better way. libc-internal.h will finally have >5xx __x prototypes
Do hidden fopen*/remove
__malloc_consolidate is only libc internal, enable use of __sbrk
Hidden __md5_crypt/__des_crypt, missed to adapt prototype
Hide chmod, lockf*
Use __remove and remove trailing ;
Add __lstat and reorganize somewhat
Convert internal users of chmod/*stat*, minimize change for __strsep
Add some more hidden prototypes
Do hidden fcntl*
Hidden lseek[64], disabled llseek and _llseek for now, not in any headers
Hidden readdir*
Hidden fflush, adapt fopen to hack in libc-internal.h
This header blocked the use of __THROW in libc-internal.h
Convert all users of earlier hiddens
Do hidden brk, hide _brk as well for some archs, convert users of brk
Hide _stdio_init/term, sorry, one change went mistakenly into the earlier commit
wordexp can't be built w/o glob
Sync headers w/ glibc
Hide *getc* *putc*
Add for assembler all *alias
Hide fork and vfork, use the newly introduced *alias
Hide exit/_exit
Build x64 versions only if LFS is enabled
Make clone use internal _exit
Some undefs to be pedantic
Disable some unused stuff, better guard for libc
Convert some users
Hide locales
Hide C and wchar related stuff
Get rid of warnings, use internals, create new hidden versions
New hidden versions
Correct some problems
glob/ftw/regex_old reworked. regex_old did not have MBS_SUPPORT enabled
New regex as well
Convert users
Convert some users and get rid of __rpc_thread_createerr jump reloc, this was indeed a badly chosen name
Convert all the rest, remove isxupper/isxlower, if someone objects, I'll add it back
Hide towctrans*. What is SMALL_UPLOW and why do we need it?
Better guards within _LIBC, cleanup, typos
Use kernel provided syscalls for user-space, the one from libc is not usable
Make new regex build w/ WCHAR disabled, vapier, does it now work for you?
Use hidden towupper in new regex
Macros are no good for jump relocs, hack to get rid of one introduced my new regex code
Hope it solves JBG's problem, why didn't it bail out here?
Correct C_SYMBOL_PREFIX handling for asm, supports only none or _
memmove, exit are external iconv_main
Forgot about the macros ;-(
Adapt some missed prototypes
Typo
Remove trailing ; after *alias()
Remove trailing ;
Remove all trailing ; after *_alias and change 2 to use weak_alias instead of __attribute__ ...
Build PIC objects if DOPIC is set, thx to pcj
Move fnmatch.c to fnmatch_old.c
Add new fnmatch code, for now mbstate_t and mbsrtowcs are depending on UCLIBC_HAS_LOCALE, making the new object about 5k, else it would be 10k
Sync ftw w/ glibc, splitting ftw and ftw64
fpu_control.h is handled generally in topdir/Makefile.in, remove rule for it
TARGET_ARCH is already stripped, do not do it again for nios2
Remove fpu_control.h handling as well
Remove -unhonoured- comment
Use attribute_noreturn
Add proper guard, so that we don't see the internal header in userspace
Add more hidden prototypes
Use strong_alias everywhere instead of .global/.set. Correct some cases where the non-hidden version was used.
Complete split of all the string functions. Hope haven't broken too much. wcscoll/strcoll needs some love ...
Revert a change until I find the textrel cause
Remove textrel
Provide __tolower and use it
Add __toupper, remove unneeded undefs for tolower
Get rid of tolower/toupper jump reloc, correct tow* for XLOCALE
keep __USE_GNU for program_invocation_*_name
Lost wcschr()
Sync w/ glibc, mostly REDIRECT_NTH,__wur
use internal versions of exit/memcpy
Build also if XLOCALE is enabled
__uselocale is hidden
one reloc less, uninline, should save some space
forgot again about iconv
Allow compiling newly added if_index.c (at least on 2.4), missing __u32/__u16/__s32
Allow to build gcc/libstdc++ w/ LOCALE enabled, XLOCALE probably won't work though
Allow to use atexit() and __stack_chk_fail_local() within libc
Hope I have it correct now w/ native gcc4 ssp
Get rid of hidden_def
Apply patch used in sed for malloc(0)
Add fcntl64 prototype
hidden_def/hidden_proto: convert all users (I hope) termios split, add some missing headers, other jump relocs removed
Correct atoi()
Correct libc_hidden_proto
s/libc_hidden_proto/libc_hidden_def/
needs features.h
s/__read/read/ and write in fake part
Add hidden versions of pipe()
missed to define internal setregid
another missed hidden
Correct 2 issues if ipv6 is enabled found by SpanKY, thx
Revert 13276, cache corrupted on x86
other failures w/ different options
adapt to new hidden
another from SpanKY
s/__strcmp/strcmp/
disable redirect for fcntl64 until a good way is found
make DODEBUG=y happy, update sysdeps/common/* copyright
DODEBUG=y and XLOCALE as well
get rid of wcrtomb jump reloc
get rid of strcmp jump reloc
same for iswspace*
same for __fputc_unlocked
I should also test w/ ipv6, missed that, thx SpanKY
get rid of fcntl64 jump reloc
get rid of *stat*64 jump relocs
get rid of duplicates, even bsd_signal is questionable
revert 13331 and sync partly header w/ glibc, __sysv_signal is referenced in header, keep it visible
hide __glob_*dir_hook
get rid of warning if UCLIBC_HAS_CTYPE_TABLES is not enabled
Remove __XL(N) and __XL_ALIAS(N) adapting the last use of it
Correct old_vfprintf internal version and make it reloc free
make tzset jump reloc free if UCLIBC_HAS_CTYPE_CTABLES is not enabled
make gcc4 happy w/ hidden_def/proto, correct some typos
some global data relocs gone
Last relocs jump and global data, (even locales) that I could remove are gone from libc. The remaining are left as exercise for others ;-)
Correct a typo
s/weak_alias/strong_alias/, only what I knew as needed are kept. We will now see what libpthread will do ...
jump relocs removed
Convert to hidden_def
Convert to hidden_def
Update license
Update license
Update license
Update license
All math related relocs gone
last math related global data reloc (_LIB_VERSION) removed
Remove explicit signgam prototype, use header instead
Remove __P() and add attribute_hidden to internal prototypes
Add libc_pthread_init to libc.a as well, should correct bug reported to ml
Remove unused prototypes
Build if GETC_MACRO use is disabled
correct prototypes and 1 reloc less
Make gcc4 happy as well
Don't include twice features.h and correct typo
modify IMA compiling rule and add linking rule
Add IMA build rules
Add target strip command and use it, also disable for now CFLAGS-multi-y, after splitting all MSRC, it won't be needed
Remove unused CLOCK_IDFIELD_SIZE, not in glibc
Correct unimportant typo
Remove MMAP_HAS_6_ARGS
Change to sane defaults
Import some need bits from glibc to libc-internal.h, hidden_weak_alias gone, hidden_strong_alias adapted, HAVE_ELF defined always, __SYMBOL_PREFIX removed
Get rid of *_SYMBOL_PREFIX
Remove HAVE_ELF
Add multi support to libm, remove lib*-multi-y, unneeded
Correct strip display in multi mode
Add multi support to linuxthread_db
Forgotten about the clean target
With one source or syscall only sources there is no use of IMA
Add multi to libintl
no need for libm_DEF
Use libm_ARCH_DIR and cleanup all possible archs
Correction if UNIX98PTY_ONLY is not enabled
Correct wordexp, I have hidden for now __libc_arg[c,v], there is no other use within uClibc, depends on fnmatch as well
Add -D_GNU_SOURCE to CFLAGS, else openpty picks the XOPEN variant of fd_set
Split out libc-symbols.h from libc-internal.h, use it directly in CFLAGS. Moved weak[_const]_function into proper place (if we have weak support), else noop. Modified comment about changes to glibc. Moved -D_LIBC from CFLAGS to libc-symbols.h. I am not sure about unlikely/likely/__cast
Correct comments, thx vapier
Use __typeof instead of adding full prototypes
Convert l*seek too to use __typeof
Correct sigprocmask undefined for sh and remove the useless __sigprocmask weak
Remove other __sigprocmask occurences, even if unused, remove unsed file
Another __sigprocmask
Remove old comment
Allow to be used in bits/syscalls.h even if _GNU_SOURCE is defined
Enable _GNU_SOURCE build wide, trying to get consistent interfaces, else IMA is a useless attempt
Remove redundancy and move hidden prototypes around
Sync w/ glibc
Add __longjmp prototype
Correct memcpy use
Get rid of nested warnings
Add some attribute_noreturn, replace __attribute__ ((noreturn)) as well
Guard hidden prototypes accordingly
Mark __assert as noreturn
Reorganize a bit and mark tdestroy as GNU extension
s/_GNU_SOURCE/__USE_GNU/
Change to build w/ -std=c99
Make i386 build w/ -std=c99 (almost)
Try to correct stat64/stat issue, vapier please check on 64bit arch
typo
make sigaction/raise/sigwait/siglongjmp/longjmp weak_alias, these are in libpthread as well
longjmp missed, remove sh version, it's the same as the generic one
Add more warnings, for release we should guard later w/ DODEBUG
Remove unneeded _GNU_SOURCE
s/rpc_callmsg.c/rpc_cmsg.c/ for non-full rpc as well
s/svc_auth_unix.c/svc_authux.c/
Use wildcard *.c for full rpc, update copyright
Use __typeof for __longjmp, remove alias to longjmp for cris, should be covered by common/longjmp.c
Use __typeof for __libc*longjmp
Convert all the strong_aliases to weak that are cancelable in libpthread
Move threads header to proper location
fork/vfork weak in libc, strong in libpthread
Don't use __getpid/__getpagesize
use __typeof for all __libc_x prototypes, do not need __sigaction/__vfork
Hope to mips build
waitpid undefined
__longjmp/__libc_longjmp as noreturn
add noreturn for *longjmp
Get rid of a shadow warning
s/IS_IN_linuxthreads/IS_IN_libpthread/
longjmp should use __libc_longjmp, use __typeof again now that it works correctly
provide internal nanosleep/waitpid/sigaction/raise
user internal versions of waitpid/raise/nanosleep
Remove unused prototype
Keep only hidden __pthread_mutex_* used in libc, change pthread_mutex_* to use internal version, provide pthread_mutexattr_* internal versions, remove unused __pthread_mutex_timedlock
make use of the internals provided earlier
error_message_count got lost
Use #define __NR_vfork __NR_fork consistently
Modify the earlier changes, because libc-lock references __pthread_mutex*, dont use hidden_strong_alias
hidden_strong_alias gone and won't be added back because it causes trouble
Guard the use of sigreturn as in x86_64, thx blindvt
Correct mips, does mips ever be similar to others ;-(
Enable gcvt in header, we build it
Get rid of missing prototype warnings
Some more prototypes, enable missing-prototypes/declarations warnings for now
prototypes for threads too
s|sys/perm.h|sys/io.h|, thx vapier
Add back explicit prototype, archs miss sys/io.h, remove m68k exclusion
Add some prototypes to arch specific pread_write.c, mips has __mips64 questionable ifdefs
Some warnings go away
Update copyright and comment
Disabled NULL error_print_progname, useless
remove comment
use attribute_unused instead of hardcoded
Do not build *64 and llseek, correct some failure when LFS is disabled
Add split up multi sources,IMA compiling,build dependencies
Add back the current glibc copyright notice, although the file is far different
hidden moved to prototype
Use memset instead of bzero
Using hidden_proto solves this internally, my proposal was wrong
Why this?
Change the only bcopy user to memmove and remove internal version of bcopy
Remove arch specific hidden bcopy
Too many sparc versions ;-(, another hidden bcopy removed
make it build if WCHAR is disabled
Enable -std=c99 if supported, this will define __STDC_VERSION__, have to -D__ASSEMBLER__, bug in all gcc
Sync w/ glibc
another attempt to fix sendfile64
make regex a little bit smaller
some more prototypes
back to inline, mips fails
Undo -std=c99 and related -D__ASSEMBLER__
Add IMA compiling
strlen is -cheaper- then strnlen
don't include wchar.h if WCHAR is disabled
include math.h to get the prototype
s/IS_IN_linuxthreads/IS_IN_libpthread/, some prototypes, correct Makefile.in, disable __res_state, unavailable in resolv.h
New linuxthreads builds on x86, vapier: pt-allocrtsig.c is missing from sources
pt-allocrtsig.c is irrelevant for now, remove related too, add libc_hidden_proto from old version
change strong to weak_alias, arm fails, thx Khem Raj
add comment to know why it's weak
s:THUMB_INTERWORK:USE_BX:, thx Khem Raj
correct __uselocale
__pthread_exit is noreturn only within libpthread
same in old
remove hidden versions of bzero, unused in libc.so
typo
global data uses libc_hidden_data_def, convert all -I hope- and add some new
change asm/volatile to __x__
gcc41 does not like this at all
weaks for __pthread_internal_tsd* are added if not built w/ -DSHARED, header issue
Go __malloc_lock, go ...
I will risk this one: __curbrk
missed two __curbrk
everything uses now CFLAGS, no need to add anything to CPU_FLAGS, add -DSTATIC for those not needing shared libs, needed to be seen in libc-symbols.h
Use -DSTATIC and remove stub_warning, not accepted
Make it build w/ HAVE_SHARED disabled and SSP enabled
missed another global data marking
fix typo s/__initbrk/__init_brk/
prototype was wrong, change not tested
even the hidden version of the weaks in libc (as strong in libpthread) have to be weaks
Use internal versions of strchr and stderr for non-BCC
getopt_long[_only] visible only if GNU getopt used
err() is not used internally
Hide internal wrapper
Use write instead of __libc_write for debug, hide __td_debug
hide __td_agent_list
add -DNOT_IN_libc
disable hidden_proto/def for __BCC__ generally
attribute_hidden is enough in the prototype, sync getopt-susv3 w/ gnu
Weaken libc's hidden fork versions, ltp test failed
Dont link and remove link.h
Sync w/ glibc
Add internal hidden_weak support for asm
Remove unused files
Rename some files, that will conflict w/ IMA
Remove unused file
More renames for IMA
Don't compile arc4random if option not set
More renames for IMA
Remove unused files
Remove unused file
Remove it, it's the same as the generic one in ../common
Remove vfork.c from Makefile as well
Don't compile daemon.c at all for non-MMU
Add files for IMA. Yes, I know it's a hack and no, I won't split the affected files
Disable deprecated stuff in new linuxthreads
Add back the 115200 limit
s/#if/#ifdef/
Weaken all internal vfork versions in asm code, wondering why only some of the archs fail
Mark some as GNU extensions
get_current_dir_name is GNU extension as well
Weaken all that I remember being used in libpthread
Remove unused prototypes
Update some copyrights
Mark functions as GNU extensions
Remove __x
Do not default to _POSIX_MODE
environ is GNU extension
libc-{a,so,multi}-y replaced by libc-y covering common objects both in libc.a/libc.so, the diffs go into libc-static-y/libc-shared-y exclusively, add IMA to libc, don't use any MSRC anymore
Rename _mmap.c to mmap.c so that vax does not pick up both common and arch specific mmap
Correct building objs in each libc subdir
some test uses ldd, make check depend on utils
guard *printf_function w/ UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
remove fstat jump reloc
Add prototypes
Use <> instead of \"\"
Reorganize a bit for IMA
Move hidden prototypes to proper place and get rid of duplicate hidden
Block the combo DOMULTI/SUPPORT_LD_DEBUG
DOMULTI may be used for libc, the excluded files need work, linuxthreads[_db] as well, don't try on slow box
Kill 2 signedness warnings
get rid of __pipe
hide xdr_u_short
strcoll for non-locale
Remove __P(), reorder so that gcc-4.0.2 does not fail w/ multi
Change collated_compare/prefix_array to __x hidden, shrinks glob64 from 2352 to 2063
Guard __pthread_mutex_* to be used exclusively within uClibc, do we need this header at all installed?
Undo earlier change and sync new linuxthreads' guard w/ old
It's not my day ..
Sync w/ glibc, no size change
Remove hidden_data_def for opt*
Take getopt from glibc, disable -W foo support as in the earlier version, size shrink 5%, hope it solves option parsing w/ busybox tar
Solve sendfile64 conflict if __NR_sendfile64 does not exist
Sync w/ glibc, we can leave __USE_ATFILE in, because we do not define it in features.h
All sources are accessable as they would be splitted
Sync w/ glibc, enabled only those defines, that are used in uClibc
Make use of bits/sched.h
We need hidden vfork, not __vfork
Remove __clone, add it only back, if threads has a another (strong) version, that needs to overwrite this
guard parts w/ __ASSEMBLER__ to be usable in vfork.S
Correct ifndef __ASSEMBLER__
exclude 2 files from multi if XLOCALE enabled
exclude 2 more files from multi
guard program_invocation_name w/ __ASSEMBLER__
wcscoll_l.o does not exist
Add support for CFLAGS-OMIT-file from nptl
Move -Os/-O2 first, add some gcc4 specific optimizations
Make use of CFLAGS-OMIT-file
Sync w/ nptl
Sync w/ glibc, disabling *at interfaces
Correct typo
Move common parts into internal header, should it be used for all *64.c?
Remove TOPDIR
guard __ignore_x correctly, move undefs to their proper place, add prototypes. Should I do all the other *max aliases as well
Correct comments
Do not use __XL_NPP macro
Move lseek64 into LFS guarded place
glob depends on fnmatch
Move _lfs_64.h to include and adapt files
Define internal readdir*_r() and use _lfs_64.h
Use _lfs_64.h in all *64.c
Remove unneeded hidden_proto(readdir*)
Use _lfs_64, reorganize a bit, why did stat*fs64 use stat*fs?
Don't build glob64 for non-LFS
Get rid of redefines on ppc pointed out by vapier
Remove explicit compile rules
Disable parts not supported by (outdated) glob, probably the glob[64]_t structures are wrong too
Rich Felker's glob() ported to uClibc
Add hidden version for susv3 getopt
Add Rich Felker's getsubopt, smaller then the glibc copied one
Add Rich Felker's getopt_long to be used in conjunction w/ the SuSv3 getopt
Provide hidden sigprocmask, remove __x version
Remove files not used on target
Mark __syscall_*sigaction hidden and add guard to the header
freelocale() and strxfrm_l() exist only if XLOCALE is enabled
Cleanup/sync w/ glibc
Sync w/ glibc
Sync w/ glibc and define _STAT_VER/_MKNOD_VER to 0, else some apps will consider versioned stat/mknod in uClibc
update
typo
copyright update
Update copyright
Remove duplicate include
Update copyright
Add -D__ASSEMBLER__ to compile.S so that -std=c99 would not fail
Add support to remove a flag from CFLAGS
Add AT&T research regex testsuite
Move regex tests to their own subdir and dont run them if regex is disabled
Add CFLAGS-OMIT support to glibc targets for now being the same as for uclibc targets, adapt regex
Add another test, use for those hanging -c
Move hidden test file for tst-regex2 as well
Remove CFLAGS-OMIT support, rename getline to get testregex compile w/ -D_GNU_SOURCE
Mark parts as unsupported by gnu glob, but leave it as it was
Add --gc-sections, saves 2k on libc.so
Upstream update
Rename getopt_long-susv3 to -simple
check_ld takes only 1 arg as pointed out by pkj
disable tst-gnuglob, it has no chance w/ our gnu glob
Add UCLIBC_HAS_SSP_COMPAT option guarding gcc-3.x ssp support
Remove additional endif pointed out by vapier
getopt_long-simple behaves as gnu getopt if POSIXLY_CORRECT is set, adapt test
Add back sjhill's 14625 commit, correcting the typo that made it fail
Remove __libc_internal_tsd_{s,g}et, they do not exist anymore
Get rid of nested extern warnings if threads are disabled
uClibc_pthread.h wasn't ever included
Add support for libpthread_nonshared.a, strip the objects in *nonshared*
Add common part of linker scripts to a file and make use of it
Create libpthread_nonshared.a
Remove unneeded ; after *_alias
Move __clone/__uselocale to uClibc_glue.h
Get rid of forwarded __pthread_attr_init
Not the best idea moving libc_hidden_proto to uClibc_glue.h
Sync w/ upstream, hide pthread_atfork
Use GNU features only if defined in header
Disable --gc-sections until I find why it is ignored on some configurations
Add back XLOCALE for hidden uselocale
try to get libpthread built w/ -DSHARED, what to do w/ _dl_load_lock?
Add comment why --gc-sections is ignored
Remove duplicate hidden __curbrk (ppc), make use of the hidden versions
Remove all non-constant libc_hidden_data_def(), it is too unreliable, sorry, most of global data relocations are back
Guard the reentrant prototypes w/ appropiate config option
Replace __THROW w/ __NTH pointed out by Amir Shalem
Replace __THROW w/ __NTH pointed out by Amir Shalem, take 2
stderr does not have hidden version anymore, disable it's use
Comment __mbrlen
Comment __USE_UNIX98, not needed, add __glibc_strerror_r prototype for non-GNU
Mark some functions as GNU, provide missing hidden memmem, remove _ISOC99/XOPEN_SOURCE
Correct build if UCLIBC_HAS_CTYPE_TABLES is not defined
Guard matherr/__kernel_standard w/ _IEEE_LIBM, we do not use them, save 7,6k
Enable EXTRA_WARNINGS on DODEBUG
Mark SVID functions
select needs sys/select.h, str[n]casecmp/ffs needs strings.h, if BSD is not defined, gettimeofday has other prototype and tm_gmtoff/tm_zone do not exist
Mark some functions as BSD only
Sync w/ string.h, glibc version is out of date
forgotten to update gettimeofday here as well
Add new option for SuSv3 legacy functions and use it for bcopy/bzero/bcmp/index/rindex
Correct typo
Move hidden xdr_rmtcall_args prototype before first use
Guard GL(name) and it's users w/ SHARED
s/staticly/statically/, thx Bernhard Fischer
Remove redundant redefine of __clone
Now new linuxthreads builds w/ SHARED
Correct build failure introduced by SUSV3_LEGACY option
typo stderrr
rm uClibc_arch_features.h on install
no need for bits/syscalls.h on target
remove some unneeded headers on install
remove ARCH_CFLAGS, ARCH_LDFLAGS and CROSS
FORCE_SHAREABLE_TEXT_SEGMENTS requires DOPIC
a.out.h: why was this needed?
move extend_alloca macro to alloca.h
inet.h: mark inet_ntoa_r as uClibc specific
nameser.h: sync with glibc
assert: make linenumber unsigned
move __linux__ to libc-internal.h
use __BYTE_ORDER and __*ENDIAN
msgrcv is of type ssize_t
sync some headers and disable unused prototypes
protocols.h: remove
update headers and disable prototypes
help broken apps to detect __GLIBC__ headers
limits.h: update
features.h: reorganize
include features.h
add UCLIBC_STRICT_HEADERS config option
guard IPv6 stuff
disable build warnings in utils
initialize tls_tpnt to NULL on all archs
try to fix duplicated slashes in the generated lib*.so files
syntax fix
avoid warnings on _STACK_GROWS_* usage
syntax fixes
style update
add missing prototypes
use common sigthread.h
add missing prototypes
Correct ssp code
initialize 2 variables to get rid of compiler warning
fix stubs
fix dependency on ADVANCED_REALTIME
remove error handling from some syscalls
make parse_printf_format() depend on UCLIBC_HAS_GLIBC_CUSTOM_PRINTF
remove ucontext.h and guard sigstack structure with SUSV4_LEGACY and STRICT_HEADERS
remove libc-internal.h on install
simplify guard of uClibc internals
make it possible to compile with -std=gnu99/c99 and use extern inlines
update some headers
update some headers
strcpy: remove unneeded includes from the generic version
do not care about libc-internal.h, remove hp-timing.h
better guard of IPV6 related stuff
guard nl_catd structure and related constants with STRICT_HEADERS
paths.h: add _PATH_GSHADOW
sgtty.h is useless, remove it on STRICT_HEADERS
do not enforce FORCE_SHAREABLE_TEXT_SEGMENTS on sh4
add _dl_errno support to errno.h, cleanup
provide internal hidden version of __fcntl_nocancel
remove obsoleted and incorrect comment
fix removal of sgtty.h
fix locale build
Revert "try to fix duplicated slashes in the generated lib*.so files"
remove unused ARCH_CFLAGS and ARCH_LDFLAGS
simplify ffs* code
locale.c, locale.h: no need for hidden duplocale
locale.c: export newlocale only if XLOCALE is defined
try to fix duplicated slashes in the generated lib*.so files (round 2)
Makerules: respect HARDWIRED_ABSPATH in interp.c
Makefile.in: remove uClibc_uwchar.h and uClibc_va_copy.h on install
resolv.h: disable unneeded prototypes
Makefile.in: remove uClibc_fpmax.h independently of any config option
shm.h: fix vax's bits/shm.h
guard *_chk() related stuff with UCLIBC_HAS_FORTIFY
types.h: remove __ipc_pid_t
bits/kernel_stat.h: use the same guard on all archs
bits/kernel_stat.h: no need for _LIBC guard, the file is not installed on target
bits/statvfs.h: the common one is good for alpha and sparc
add bits/atomic.h for hppa
bits/statvfs.h: update, adding ST_RELATIME
remove trailing ';' from _syscallX()
disable _POSIX2_LOCALEDEF
_strtod.c: only strtod hidden version is needed
stdlib.c: remove duplicate libc_hidden_proto for strtoul/strtoul_l
move prototype for __drand48_iterate and __libc_drand48_data to stdlib.h
stdlib.h: move MB_CUR_MAX = 1 from wchar-stub.h
fnmatch.c: use MB_CUR_MAX from stdlib.h included earlier
regcomp.c, aeabi_mb_cur_max.c: use unconditionally MB_CUR_MAX from stdlib.h
arc4random.c, stdlib.h: get rid of hidden arc4random_stir
stdlib.c, _strtod.c, stdlib.h: remove unused hidden functions
ctype.c, _collate.c, str[n]casecmp.c, strlcpy.c: remove unused hidden functions
wchar.h, _collate.c, strlcpy.c: use a common prototype of __wcslcpy
_collate.c: remove duplicated libc_hidden_proto() for strcoll*/wcscoll*
memmem.c, string.h: remove unused hidden memmem
frv/memset.S: add missing libc_hidden_def
remove unused hidden functions
str[n]casecmp.c: fix hidden usage
time.c, wchar.h: remove unused hidden wcsftime
_wctype.c, wctype.h: remove unused isw* and wctype_l hidden functions
ctype.c, ctype.h: remove commented parts that were banned for removal after 0.9.31
nanosleep.c: remove duplicated libc_hidden_proto
time.c, time.h: remove unused hidden strftime/strptime
missing prototype of __libc_drand48_data fixed
Revert "missing prototype of __libc_drand48_data fixed"
really fix missing __libc_drand48_data
add libc_hidden_proto for wcs[n]casecmp_l
wctype.h: fix libc_hidden_proto for iswupper and add it for iswspace
lutimes.c, stubs.c: fix compiling lutimes, if __NR_utimensat is not defined
epoll.c: add cancellation to epoll_[p]wait()
wordexp.c, sysconf.c: include ctype.h for isspace
dirent.h: s:__XOPEN_2K8:__USE_XOPEN2K8:
dirent.h: disable getdirentries not provided by uClibc
remove unneeded hiddens for rtime, basename, strtof* and wcstof*
no need for hidden inet_ntoa_r
crypt.h: use __const instead of const
rpc_msg.h: move xdr_accepted_reply and xdr_received_reply from rpc.h
inet_addr.c, inet_makeaddr.c: used the correct section from addr.c
time.h: update and guard internals
signal.h: disable sigvec() and guard related stuff with STRICT_HEADERS
do not include xlocale.h, it is included by locale.h when needed
locale.h, xlocale.h: guard *locale functions correctly
do not include libc-internal.h
getopt.c, getopt.h: avoid the need for __FORCE_GLIBC
remove __FORCE_GLIBC
rpc_private.h: change guard
remove subdir include/internal on install
use one common prototype for _create_xid
complex.h: sync a bit glibc to guard properly
signal.h: provide prototype for __libc_sigaction and remove all others
libc-internal.h: use a consistent prototype for __stack_chk_fail
libintl.h: add _(x) and N_(x) and use it everywhere
signal.h: move prototypes for __syscall_[rt_]sigaction to common place
parser_config.[ch]: remove duplicated hidden functions
tgmath.h: sync with glibc
setjmp.h: sync with glibc
no need for hidden sigtimedwait
remove unneeded hidden sigwaitinfo
alpha/__syscall_rt_sigaction.S: make the function hidden on non-NPTL
wchar.h: fix 2 typos in comments
wchar.h: SuSv compliance
arm: consistency check OABI v. EABI
obstack.c: use libintl.h
regex_old.c: remove unneeded guard
getopt[-susv3].c: use libintl's _(x)
libintl.h, clnt_perror.c: add fallback gettext(x) and use it for _(x)
move *longjmp related prototypes to setjmp.h
add jmpbuf-offsets.h and jmpbuf-unwind.h for all archs (LT related)
jmpbuf-unwind.h: add NTPL related section
make use of jmpbuf-offsets.h and jmpbuf-unwind.h
cleanup bits/setjmp.h of stuff moved to jmpbuf-offsets.h and jmpbuf-unwind.h
change __HAVE_FPU__ to __UCLIBC_HAS_FPU__
add jmpbuf-unwind.h and jmpbuf-offsets.h to avr32,c6x and xtensa
tgmath.h: disable builtins
local_lim.h: add NPTL version for alpha,ia64,powerpc,sparc, update common
posix_opt.h: update to glibc's NPTL version
posix_opt.h: update to POSIX 2008
huge_vall.h: add for i386,ia64,m68k,sparc
huge_val.h: add for vax
semaphore.c: include limits.h before semaphore.h
semaphore.h, uClibc_local_lim.h: make sure SEM_VALUE_MAX is always defined
cleanup fork()
fputc.c, stdio.h: no need for hidden putc, putc_unlocked and fputc_unlocked
use fputwc in putwchar()
utent.c: go back to use static __X() functions without size increase
utent.c, wtent.c: move functions from utxent.c
no need for hidden lockf64
remove libc_hidden_proto(ioperm) from all headers except arm
netdb.h: partial update, adding some __USE_MISC/__USE_GNU guards
make __uClibc_fini() hidden
unistd.h: partial update, mostly related to POSIX 2008
stdio.h: update partially, mainly for POSIX 2008
quota.h: update, but keep old functionality
dirstream.h: remove unused constants
update partially string.h and strings.h
libm: change j0 to _j0 and y1 to _y1 to avoid shadow warning
libm: remove superfluos attribute_hidden, the one in prototype is enough
mathcalls.h: fix comment, MATHCALLI and MATHCALL_PRIV include libm_hidden_proto
k_standard.c: guard scalb[f] related (unused) code with SUSV3_LEGACY
math: avoid jump relocation in libm
move __getdents[64] prototypes to dirent.h
dirent.h: use __ssize_t instead of ssize_t
versionsort*.c, alphasort*.c: do not need *64 compiled for __WORDSIZE = 64
scandir,readdir[_t]: use one common source for X() and X64()
s_scalbn.c: since we have strong_alias_untyped now, use it
alphasort*.c: use strcoll instead of strcmp to support locales
link.h: guard TLS related internals of struct link_map with _LIBC
signal.h: disable ssignal and gsignal
signal.h: disable sigreturn prototype
wait.h: resource.h is included already, rusage is defined
tsd.c: fix comment
stdlib.c: get rid of the compiler workarounds by using strong_alias_untyped
__xpg_strerror_r.c, {ge,se}trlimit.c: use strong_alias_untyped
dl-osinfo.h: include needed headers
nios[2]/crt1.S: remove unused _stdio_init,_stdio_term and __h_errno_location
geopt.c, LT new/pthread.c: s/__mempcpy/mempcpy/
ntohl.c: simplify and shrink ntohl and friends
resolv.c: remove duplicated attribute_hidden
arc4random.c: move arc4_getbyte up
arc4random.c: use smallint for rs_initialized
stdlib.h, arc4random.c: fix arc4random return type to u_int32_t
arc4random.c: replace a comment
rpc: remove unused USE_IN_LIBIO guarded code
pmap_rmt.c: do not undefine _POSIX_SOURCE, it is anyway too late
svc_auth.c: use same prototypes as in svc_authux.c
xdr_intXX_t.c,xdr.h: add xdr_quad_t and xdr_u_quad_t
rcmd.c: no need for stdio_ext.h
ruserpass.c: needs stdio_ext.h only if threads are enabled
pm_getmaps.c: change __close to close (even though unused)
clnt_generic.c: whitespace only, no code change
rpc: constify some more data
err.c, err.h: no need for hidden functions
err.c: add attribute_noreturn to static functions
*_strerror_r.c: keep all occurences in sync with string.h
locale.c, uClibc_locale.h: provide hidden __curlocale[_set]
libc-internal.h: provide dummy attribute_tls_model_ie and __thread for non TLS builds
allocsigrt.c: provide proper crrent_rtmin for LT new
setjmp.h: move __sigjmp_save prototype for consistency
allocrtsig.c,pthread.c: disable __libc_allocate_rtsig, unused
iconv.c: make iconv use the XPG version of basename
pwd_grp_internal.c: do not include pthread.h
change __asm to __asm__ and __volatile to __volatile__
getaddrinfo.c: replace #if SALEN with #if 0
sa_len.c: do not include ipx.h, the IPX code is disabled
resolv.c: include param.h and use MIN instead of min
pm_getport.c: s/__close/close/
fnmatch: replace __memset and __memcmp
_hsearch_r.c: use stdlib.h instead of malloc.h for calloc
mmap.c: provide a common mmap.c that is good for most of archs
stdio.h: move uClibc specific parts to the common place for these changes
uClibc_stdio.h: move internal to _stdio.h and make them hidden
stdio.h: move __STDIO_{GETC,PUTC}_MACRO dependent part to uClibc_stdio.h
uClibc_stdio.h: remove parts solved in features.h
uClibc_stdio.h: remove consistency check
uClibc_stdio.h: guard internals with _LIBC
signal.h: sync with glibc, mainly proper guards
uClibc_mutex.h: fix bug in conditional macros
resolv.c,time.c,_atexit.c: hide 3 locks
uClibc_pthread.h: do not install on target
disable __pthread_kill_other_threads, obsoleted
pthreadP.h: avoid shadow warnings
fix a bunch of build warnings
unwind-{resume,forcedunwind}.c: add missing prototypes
remove duplicate prototypes for _stdio_term().
do not define _ISOC99_SOURCE in specific files
Rules.mak: change the way -include is used
Rules.mak: include KERNEL_HEADERS last, even there it is wrong
socketcalls.c: prefer using recvfrom in recv and sendto in send
_stdio.h: move _load_inttype.h and _store_inttype.h prototypes here
_vfprintf.c: fix typo s/NL_MAX_ARG/NL_ARGMAX/
memalign.c: does not use MAX, do not include param.h
malloc: use uClibc_mutex.h provided macros consequently
malloc-simple: make _aligned_blocks static and __libc_free_aligned hidden
malloc.h: hide internal functions (mainly debug related)
basename.c: define it correctly, use the proper header for each version
dirname.c: include only what is needed
time.c: fix a guard to avoid a warning about unused label
getttyent.c: include stdio_ext.h only when needed
lckpwdf.c: add back lost return
_fpmaxtostr.c: move common to _fpmaxtostr.h
old_vfprintf.c: use _fpmaxtostr.h
_vfprintf.c: get rid of __STDIO_PRINTF_FLOAT
_vfprintf.c: use _fpmaxtostr.h
bcopy.c,bzero.c: include string.h instead of _string.h
memmove.c,strchrnul.c: use real name in libc_hidden_def
chdir.c: simplify code
Config.in: NPTL does not compile with disabled UCLIBC_HAS_REALTIME
clock_getres.c: include unistd.h unless syscall is defined
sysconf.c: the clock_getres function is good for NPTL as well
add epoll_pwait()
wrapsyscall.c: include proper header for epoll
clock_{g,s}ettime.c,{create,delete}_module.c: cleanup
__uClibc_main.c: make __uClibc_init hidden
utime.c,utimes.c: include headers only when needed
uClibc_stdio.h: change the guard used to include stdio-lock.h
Config.in.arch: remove UCLIBC_FORMAT_ELF config option
librt: get rid of visible __mq_timed(send,receive)
librt: provide missing prototypes for mq_timedreceive,mq_timedsend
errno and *_init cleanup
popen.c: get rid of a shadow warning
libnsl,libresolv: do not include unneeded features.h
iconv: Do not include __iconv_codesets into iconv utility
getconf.c: fix noreturn warnings
ldconfig.c: fix strncmp() usage
xtensa-config.h: remove XCHAL_MMU_MIN_PTE_PAGE_SIZE used only in uClibc_page.h
nios2,xtensa: common uClibc_page.h is good for them
Makefile.commonarch: use proper CFLAGS for jmp-unwind.c
libdl.c,dl-string.h: do not use inlined _dl_memset and others in libdl
ldd.c: reduce size
libc-symbols.h: fix weak functions handling
internals.h: use sysconf(_SC_PAGESIZE) instead of __pagesize
jmp-unwind.c: add hidden _longjmp_unwind
dl-elf.h: remove unused prototype
libdl.c: hide dl_cleanup
malloc.h: use sysconf(_SC_PAGESIZE) instead of __pagesize
getpagesize.c, unistd.h: hide __pagesize
__uClibc_main.c: do not include unused headers
dl-hash.h: remove unused _dl_symbol and unneeded prototypes
ppc/elfinterp.c: fix comment typos
libdl: no need for _dl_strstr in libdl, use strstr
avr32: common do_rem is good for it
errno, h_errno: correct them for non-TLS
_scanf.c: fix to signedness warnings
ldd.c: change syntax, no size and no functional change
remove uClibc_mutex.h on install
dl-string.h: remove mips related guard
dl-string.h: use __powerpc__ guard instead of powerpc
dl-string.h: change IS_IN_libdl guard to IS_IN_rtld
libdl.c: disable dlinfo
regex.h: sync with glibc, making it more POSIX-like
ldso/include: change guard of headers to reflect the file names.
dl-elf.h: add some includes and fix comments
dl-defs.h: include dl-sysdep.h before fallbacks.
dl-string.h: include dl-defs.h instead of dl-sysdep.h
regex_old.c: adapt to new regex.h
ftw.c: errno.h has to be included before undefining _LIBC
adapt regex to new regex.h
uClibc_pthread.h: remove __pthread_mutex_destroy, unused
Rules.mak: add ldso search paths independently of NPTL
sh: add back clone and vfork for non-NPTL
sh: remove longjmp.c, the common is good for sh
ldso: use _dl_strdup and _dl_dprintf only in ld-uClibc.so
arm: avoid 2 compiler warnings
_fpmaxtostr.c: align comments, no code change
_collate.c: avoid initialization warning
utils: expand search path to find dl-sysdep.h
mips/README: fix comment about file from which functions were copied
dl-defs.h: avoid including dl-sysdep.h if compiling hostutils
cacheflush.c: compile only if __NR_cacheflush is available
readahead.c: add correct guards
tee,vmsplice: mark them as GNU extensions
splice,sync_file_range: mark them as GNU extensions
i386/posix_fadvise64: remove fallback code, uClibc does not do that
posix_fadvise: make posix_fadvise[64] similar on all archs
dl-iterate-phdr.c: no need for visible __dl_iterate_phdr, make it static
PORTING: remove obsolete comment about readelf
munmap.c: do not include unistd.h
_exit.c: include the proper headers
getpt.c: no need for hidden posix_openpt
add lcong48[_r]
hppa/bits/atomic.h: include errno.h to get EFAULT/ENOSYS
stdlib.c: remove comment about _Exit, it is provided in _exit.c
_exit.c: add ABORT_INSTRUCTION
getgroups.c: reorganize, include param.h instead of defining MIN
get_kernel_syms.c: reorganize, no need for attribute_unused in prototype
add LDSO_SAFE_RUNPATH config option
wordexp.c: use vfork instead of fork on non-MMU archs
tempname.c: remove unneeded attribute_hidden, change type to unsigned
make UCLIBC_HAS_PROGRAM_INVOCATION_NAME and UCLIBC_HAS___PROGNAME independent options
syslog.c: no need for hidden vsyslog, use a static __vsyslog instead
ssp-local.c: make sure that -fstack-protector is not enabled when compiling file
syslog.c: disable locking in setlogmask
ssp: rework, sync messages with the ones in glibc
types.h: both icc and tendra support long long
addr.c: get rid of a compiler warning
resolv.c: shrink code a bit in getnameinfo.
add simplified __sigemptyset for internal use
signal: cleanup, include only headers that are needed
handle the type mismatch of ftell[o] and fseek[o] if long int != off_t
_stdio.c: pthread.h was already included by _stdio.h
getopt.h: cleanup header, remove anything already in cdefs.h
avoid circular dependency in lseek and llseek, providing a stub lseek
mmap64.c: use void * as in header, disable code that can't happen
llseek.c: use off64_t instead of loff_t as in header
openat*: use a static function with the different type and strong_alias_untyped
*64.[cS]: use _lfs_64.h instead of features.h and remove LFS guard
Reorder includes and include only what is necessary
no need for hidden __sigpause, use an internal static function
ppoll: no need for hidden version
poll.c: do not inline syscall
pivot_root.c: move prototype into guard
rename.c: simplify code, include only necessary headers
sched_setaffinity.c: make use of the syscall
sched_getaffinity.c: mark syscall as __always_inline
prctl.c: no need to include stdarg.h and extern
correct sendfile for 32/64 bit archs
pause.c: no need for __UCLIBC_HIDE_DEPRECATED__, the code does not use old functions
setgroups.c: move around some headers, always_inline syscall
setpgrp.c: remove unneeded header
setsid.c: whitespace only
setuid.c: always_inline syscall
provide stime and settimeofday functions if at least one of the syscalls is available
sync.c: simplify code
update acct.h
symlink.c: Compile only if syscall is available
sigsuspend.c: make build fail, if rt_sigsuspend is not available and NPTL is defined
brk.c: remove libc_hidden_proto, always_inline syscall
nanosleep.c, fsync.c: do not inline syscall, it is used twice
syscalls.h: remove unused headers
provide sysinfo stub
gettimeofday.c: use the same type as in header
time.c: move included header for fallback case
umask.c: umask always succeeds, use _syscall_noerr1
times.c: whitespace only
mount.c: whitespace only
umount: make umount2 depend on UCLIBC_LINUX_SPECIFIC
uname.c,unlink.c: whitespace only
ustat.c: always_inline syscall
utime[s]: avoid circular dependency
vfork: make all archs consistent
wait4.c: provide hidden __wait4_nocancel independent of any guards
cancel.h: add generic file to ease cancellation support
endian.h: add some handy macros to be used in syscalls
add cancellation for read, write, close
fork: provide __libc_fork only if THREADS are enabled
select: adapt cancelation to use cancel.h
pause.c: use cancel.h, provide __libc_pause only for LT_OLD
creat*.c: add LIBC_CANCEL_HANDLED to know that it is cancellable (handled by open)
adapt fdatasync, fsync, msync to use cancel.h
open64.c: no need for separate cancellation, open handles it already
open.c: add cancellation using cancel.h
waitpid.c: provide __waitpid_nocancel, use cancel.h
readv, writev: rewrite to use cancel.h
waitid.c: use cancel.h
ptfork.c: use strong_alias for vfork
fcntl: add cancellation to fcntl64, use cancel.h
wait.c: use cancel.h
nanosleep.c: use cancel.h
ioctl.c: use cancel.h
pselect.c: avoid handling cancellation twice
sigsuspend.c: add cancellation support independently of rt_sigsuspend
lseek, lseek64: add cancellation for all THREADS
rework cancellation for sigwait, sigtimedwait and sigwaitinfo
poll, ppoll: use cancel.h
make NPTL's getpid behave similar to the common one
fork: do not add fork() to libpthread
enable the common code for NPTL
add cancellation to generic pread_write
pread_write.c: make all archs use common code
wrapsyscall.c: add cancellable fcntl64
not-cancel.h: use the non-cancellable functions in libc instead of inlining code
pause.c: add back usage of pause syscall
not-cancel.h: update common version and make sure we use this one
use open_not_cancel_2 instead of open_not_cancel
xstatconv: cleanup includes
e1/bits/unistd.h: remove unneeded bits
vax/machine-gmon.h: remove, unneeded
vax/statfs.h: common one is good for vax
exec.c: remove duplicate attribute_hidden
socketcalls.c: rewrite to use cancel.h
sigpause.c: provide the X/Open variant, since the BSD version is deprecated
sigqueue.c: do not use __libc_X name internally
shm.c: do not use __libc_X internally
make arch specific cacheflush, readahead and sysmips LINUX_SPECIFIC dependent
change _NSIG / 8 to __SYSCALL_SIGSET_T_SIZE in common code
add posix_madvise.c
sigqueue.c: rewrite a bit
linuxthreads.old: remove __old_sem_* and rename __new_sem_* to sem_*
NPTL: rename __new_sem_* to sem_*
linuxthreads.old_db: style update
fts.c: add a comment about wrong usage of _lfs_64.h
linuxthreads.old: cleanup a bit
libc_pthread_init.c: include only what is necessary
forward.c: no need for attribute_hidden, provided by prototype
move __libc_pthread_init prototype to pthread-functions.h
linuxthreads: use __UCLIBC_HAS_TLS__ consistently
linuxthreads: style update
error.c: no need for __error and __error_at_line
linuxthreads: guard *tsd* related stuff correctly
bits/types.h: remove thread types, users should include pthread.h
signal: remove sigblock, siggetmask and sigsetmask
sigset-cvt-mask.h: add a guard to allow including it twice
sched.h: update header, needs size_t
signal.h: needs size_t
linuxthreads.old/internals.h: make some internal functions hidden
linuxthreads.old: move libpthread_hidden_proto to header
internals.h: mark __pthread_message hidden
linuxthreads.old: build all objects twice, once for shared lib and once for static
include pthreadP.h for SIGCANCEL
epoll.c: add cancellation to epoll_[p]wait()
update arc4random from bug #885
remove cris/fork.c, unused
remove sysdep.h from arch specific string implementation
remove arm specific sysdep.h from linuxthreads new
Phil Blundell (1):
Fix __libc_epoll_pwait compile failure on x86
Philip Craig (1):
Fix memory leak in dlopen()/dlclose().
Philip Nye (1):
resolv.c fails for /etc/hosts lookups
Randolph Chung (2):
misc net fixes for building....
the rest of the compile fixes
Ricard Wanderlof (9):
CRIS/CRISv32 architecture specific memcpy, memmove and memset.
Added support for the AI_ADDRCONFIG flag in the hints->ai_flags parameter to getaddrinfo(3).
Fixed #if -> #if defined. Take __UCLIBC_HAS_IPV4__ into account.
Removed include/ifaddrs.h and put contents in libc/inet/ifaddrs.h, as we do not need the file outside of uClibc anyway.
Simplified check_pf() so it returns a bit vector in an unsigned int, instead of modifying the contents of two bools.
Removed redundant includes.
Move ifaddrs.h from uClibc-internal location libc/inet/ to include/, and make it conditionally included among the installed header files depending on UCLIBC_HAS_AI_ADDRCONFIG.
Remove all references to __no_netlink_support as after thurough scrutiny of the code it was never used in any useful way.
File removed as it was not only redundant but also horribly out of date.
Richard Braun (3):
mips: avoid segmentation fault when RLD_MAP is 0
libdl: add option for controlling dl_cleanup
libc: fix signal handling in system()
Rob Landley (27):
Patch from Jim Gifford (of Cross Linux From Scratch) fixing the Mips failures from Mike's nightly builds.
Remove debian directory at the request of Simon Richter. (The debian developers prefer to maintain their own debian subdir as a patch.)
Fix a build break due to errno and h_errno being unresolved symbols. (No idea if this is the right fix but it's something for now.)
svn 17941/17943 broke the build. 18032 made the threaded case compile again, this makes the non-threaded case compile again. I have no idea if this is the proper fix, I'm just tired if it not compiling for two weeks.
Patch from Khem Raj that fixes running gcc on arm for me. (Otherwise it says "virtual memory exhausted" trying to build hello world.)
Patch from Al Stone to fix ia64:
Be consistent about spelling. LGPL says "License" not "Licence", so go with that. (Spotted by Xride on irc.)
No configs actually set LIBGCC_CFLAGS to anything, and it's not even written into the resulting .config, so remove it.
Have Makefile.in call conf-header.sh instead of having kconfig call it via system(). Also move it to extra/scripts since it's a uClibc build script, not part of upstream kconfig. Adjust the "grabbing a new kconfig snapshot" procedure accordingly.
Warning fix for uninitialized variable, by Al Stone.
Make the code match the comments. (I narrowed down the bug, Khem Raj pointed out the solution. This fixes a segfault for me on exit from a statically linked "hello world".)
Revert last change until we figure out the correct fix.
Bugfix from Atsushi Nemoto: return nonzero error code on failure (without which busybox ping segfaults on error). Broken during locking changes in in svn 16801.
Make menuconfig help bigger and fluffier.
Dependencies tweak: make install should depend on all, or "make -j 3 all install" can't work without two separate invocations of make.
Explain what malloc simple is good for, and what it isn't good for.
Finally fix the MALLOC=y and MALLOC_SIMPLE=y breakage from svn 23660. (I found it, this is Bernhard's patch to fix it. Tested and it Works For Me (tm)).
Current kernels support more than 8 bit major/minor. Pass dev_t through to the kernel unmolested.
Mention make utils, hostutils, install_utils.
Remove hardwired usr/ from install_utils (that's what $RUNTIME_PREFIX is for) and add install_hostutils. Now install_utils should use $PREFIX more like other packages do.
Fix __attribute__ (( __attribute__ ((noreturn)))), which doesn't compile.
Make HARDWIRED_ABSPATH a config option.
Fix thinko in svn 25434.
32/64 bit sparc got unified in 2.6.29 the way x86/x86_64 did in 2.6.28. The new guard symbol is "__SPARC_POSIX_TYPES_H".
Fix fcntl64 for 64 bit targets.
sh: fix build for SH in !NPTL case
sparc: fix build for linuxthreads.old
Roman I Khimov (13):
libpthread/nptl_db: define NOT_IN_libc
Makefile.in: install sgtty.h
libpthread/x86_64: fix clean
libc/regex: fix internal_function declarations
libc/x86_64: use ELF-compatible definitions for assembler
nptl: fix sem_open with O_CREAT
nptl: use arch-specific cancellation routines for x86_64
nptl: use arch-specific pthread_cond_timedwait and pthread_cond_wait on x86_64
ldso: fix x86_64 R_X86_64_TPOFF64 and R_X86_64_DTPOFF64 relocations
libm: unhide signgam
libm: unbreak scalbn for 64-bit processors
nptl i686: fix pthread_cond_wait.S compilation
syslog: fix 'everyone logs with user facility'
Ron (13):
Add some missing printf/scanf format attributes
Move extern prototype out of function scope
Add noreturn attributes to some functions that won't ever do so
Make more utility functions static
Provide token prototypes for functions that are external but have no header
Check #if feature test macros are defined where they may not be
Add a few missing includes
Don't shadow the err() function with a local var
Don't shadow stat with a local variable
Don't shadow the mask parameter with a local variable in the same function
Don't shadow the chroot global
Avoid warnings about shifting more bits than we have
Avoid type-punned pointers that break strict-aliasing
Ron Alder (2):
Fixed the parameters to mmap in malloc. malloc now works, but wastes alot of memory with the minimum amount of memory used for each allocation being 4k.
Implimented a simple allocation system that does not waste memory. Added realloc. The allocation system was needed to support realloc.
Ronald Wahl (1):
libc: atexit: reuse free slots at the end of exit functions table
Ryan Flux (2):
microblaze has long double support too
microblaze mmu/elf/shared lib support
Salvatore Cro (11):
tests: nptl tests dependencies cleanup
misc: utmpx based logging support
libubacktrace: Provide uClibc with backtrace functions
libc: Fix cancellation handling in some C functions
sh: move data without fetching cache block within the memset
sh: update the memcpy adding a new loop with aggressive prefetching
tests: Added new nptl tests
ldso_sh: add support for protected symbols to SH
Add protected symbols support for all architectures
test: fix tst-tls13 expected result and timeout
Added fts support for traversing UNIX file hierarchies.
Sedat Dilek (2):
Revert "Makerules: respect HARDWIRED_ABSPATH in interp.c"
Makerules: Remove duplicated slashes in interp.c
Stas Sergeev (1):
nptl: sh: fix race condition in lll_wait_tid
Stefan Kristiansson (1):
vfork: fix clone based version
Stephan Raue (1):
add timerfd syscall and header
Steve Bennett (7):
libc.so: include all output formats in linker script
Use the generic bits/select.h for microblaze
microblaze can be either big or little endian
microblaze linux has no SDA support
microblaze: add sys/user.h
microblaze/bits/setjmp.h: Fix stray #endif
string/microblaze: Fix for little-endian
Steve Ellcey (9):
libc: mips: Fix non-LFS build
mips: silence 'set but not used' warnings
libc: Fix sync_file_range.c for MIPS64 N32 ABI
mips: Remove duplicate macro definitions
buildsys: Add MIPS64R2 support
libc: fix mips N64 pread/pwrite build
Fix warnings in MIPS build
Update MIPS configuration rules.
Allow use of executable RUNPATH/RPATH when finding libraries.
Steve Kilbane (2):
bfin: fix sram/dma syscall definitions
bfin: add support for new cacheflush syscall
Steven J. Magnani (11):
malloc-simple: Make calloc() return zeroed memory
microblaze: Fix setjmp/longjmp
microblaze: Fix crt bootstrap
microblaze: syscall interface
microblaze: vfork/clone interface
microblaze: Restore soft-float
microblaze: kernel headers
microblaze: misc headers
microblaze: optimized memcpy/memmove
microblaze: thread support
microblaze: build infrastructure
Sørensen, Kenneth (1):
Fix threaded use of res_ functions.
Thierry Reding (2):
Implement accept4 system call.
Implement epoll_create1 and epoll_pwait system calls.
Thomas Petazzoni (1):
getconf: only use specs that are available
Thomas Schwinge (1):
include/elf.h: update for ELFOSABI_* changes.
Thorsten Glaser (10):
cris: add provide arch-specific vfork implementation
make __dl_start, whose address is taken, into a real object type
explicitly cast (even though this casting is not very nice)
remove apparently unused code, this time for real
silence GCC
I think this is what you mean
shut up GCC
fix cast warning
shut up GCC, part 2
maybe fix an "noreturn function does return" warning
Timo Teras (6):
Revert "nptl: mark symbols with libc forwarder hidden"
libc-symbols: add attribute_protected
libc: remove libc weak __pthreads_* wrappers
nptl: mark forwarded functions protected
static build: fix internal locking weaks to get pulled in always
resolv: various memory corruption and off by one fixes
Timo Teräs (27):
PIC fixes for hardened
nptl/sysdeps/unix/sysv/linux/i386: enable USE___THREAD for assembler
nptl: mark symbols with libc forwarder hidden
nptl: initialize stdio locking
linuxthreads.new: initialize stdio locking
nptl: turn pointer demangling off
nptl: fix libc sigaction signal checking
nptl: fix libc sigtimedwait
nptl: remove unneeded libc-lock.h include
nptl: fix malloc library locking
nptl: fix warnings of shadowing __self
ldso: support RTLD_NODELETE and DF_1_NODELETE
nptl: fix libc internal, dynamically enabled locking
nptl: fix dynamic initialization of libpthread
static build: define pthreads wrappers only for threaded builds
more workarounds for GCC PR32219
nptl: fix x86 assembly PIC relocations
config parser: fix memory corruption
nptl: fix calling convention for __pthread_mutex_cond_lock
Fix resolver broken in NPTL build
libm/x86: use call instead of jump for wrappers
nptl: fix Unwind_Resume PLT calls
posix_fadvise64: fix x86 implementation
ldso: support RTLD_NOLOAD
libdl: rudimentary locking for dlopen/dlsym/dlclose
dl: fix dlsym lookups with RTLD_NEXT
inet: do not filter responses in res_query
Tobias Anderberg (36):
Fixed another address alignment where a pagesize of 4k were assumed.
Support LD_DEBUG=all
Initial version of the CRIS port.
Added cris to ALL_SUBDIRS
Initial version of the dynamic linker code for the CRIS port.
Updated for the CRIS port.
Configuration for the CRIS port.
* Updated for the CRIS port. * Added variable LIBGCC which is included when linking libc.so. Arch specific linker options go into LIBGCC_CFLAGS defined in Config.<arch>.
* Added semi-support for version scripts. If sysdeps/linux/<arch>/libc.map exists read it and include it when linking. * Add LIBGCC when linking libc.
* Changed paramater names to match their register, i.e. __a -> __r10. * Do not clobber things that are specified as outputs.
Removed unused file
Added pthread support for CRIS.
* Added clone() system call. * Proper implementation of bits/syscalls.h, no cheating by just including <asm/unistd.h>. * Proper implementation of syscall.S, it no longer contains the __syscall_error, instead it contains code which makes syscall(nr,...) a system call. * Added sysdep.S which contains the code for __syscall_error. * Added some macros to sysdep.h. * Added sys/procfs.h, which is needed when compiling with thread support. * Removed unused syscall-cris.c.
Build libpthread now that the CRIS as support for it!
Removed redundant code. Same thing exist in sys/syscalls.h so include that instead.
Cosmetic cleanup.
Removed redundant definition of __USE_WEAK_ALIASES. Added option for selecting cris architecure type. For now, only CRIS is available. Added a default configuration for cris.
Added CPU_CFLAGS and CPU_LDFLAGS for cris. Added additional CFLAGS for cris when compiling with PIC.
Cosmetic changes.
Updated CRIS configuration files.
Removed CRIS specific code.
Cosmetic changes.
Added cris to "define list".
Added assembler version of startup code. Fix Makefile so it uses the new code.
Re-add cris to "define list" when fixing auxvt.
Initialize strings as pointers instead of arrays.
Corrected LD_BOOT macro
* Partial re-write to match other archs and remove duplicate code. * Assign insead of add when doing relocations.
Hm. Keep using crt0.c for now. My fever-hack of crt0.S didn't do the expected thing. A so called "D'oh!".
Don't forget addend on relocations + minor other fixes.
Updated cris configuration.
Updated cris configuration; added support for %m.
Updated to match the other architectures. Fixes problem with "fcntl: function not implemented".
Save r0 before modifying it.
Removed unused file.
Replaced modulo code with the modulo operator.
Tobias Klauser (5):
nios2: Add sys/user.h
nios2: Update fcntl.h from m68k
nios2: Define INTERNAL_SYSCALL_NCS, use common sycall defines
nios2: Name architecture correctly in endian.h header
nios2: Correct guard #defines in bits/kernel_types.h
Tony Wu (2):
Fix typo (OPTIMIZATIONS -> OPTIMIZATION)
uclibc: nptl: fix __lll_lock_wait_private multiple definition
Vanya Sergeev (1):
inet: fix unsafe access to _res.options in res_mkquery()
Vicente Olivert Riera (2):
siginfo.h: add a missing function member on ia64, mips and sparc arches
siginfo.h: __SIGEV_PAD_SIZE takes __WORDSIZE into account
Vineet Gupta (51):
LT{,.old}: include stddef.h for size_t
utimes: Export utimensat based utimes
leek: if lseek syscall is not available, use lseek64 even for !LFS
fstat64: Fix Build warnings with common-generic ABI build
libc/ipc: Make IPC_64 0 for common-generic ABI
libpthread: linuxthreads.old: Allow building for no-legacy-syscalls ABI
ldso: Fix Build warnings with common-generic ABI build
Reinstate hidden protos for config_{open,close,read}()
Fix weak/strong attribute of __errno_location and it's __GI alias
ldd: Add ARC support
ldso: Add ARC support
LT.old: Add ARC support
ARC port to uClibc
ARC defconfigs
ldso: ARC whitespace tweaks
elf: Add ARC Magic and Relocations
buildsys: store savedefconfig to defconfig file
ARC: opencode ENTRY/END macros in crt1
test/tls/tst-tls[6-8]: Fix build errors
ARC: Make vfork weak in libc
LT.old: Make __errno_location/__h_errno_location thread safe
weak symbols need to be "defined" weak but "declared" strong
open64: ensure that openat check works
syscalls-common.h: Rename some macro args for correct documentation
ARC: syscalls.h: code-reuse/fix-arg-annotations
ARC: make sigaction inline with other arches
ARC: ldso: Dont force frame pointer as it useless for unwinding on ARC
ARC: clone: Ensure that @fn returns back to clone
NPTL: ARC support
ARC/NPTL: Fix __libc_sigaction redefinition with static links
ARC/NPTL: Add tests
ARC/NPTL: clone to set TP if CLONE_SETTLS
libc: posix_fadvise: Fix build breakage for !LFS
ARC: Conditionalise certain relocations as provided by TLS tools only
ARC: remove stale TRUNCATE64_HAS_4_ARGS
ARC: siagction: opencode memcpy
ARC: sigaction: inline syscall trap
ARC: sigaction: fold default sigrestorer into "C"
signal.h: elide memset from sigemptyset
ARC: Conditionalise certain relocations as provided by TLS tools only
ARC: remove stale TRUNCATE64_HAS_4_ARGS
ARC: siagction: opencode memcpy
ARC: sigaction: fold default sigrestorer into "C"
ARC: sigaction: inline syscall trap
signal.h: elide memset from sigemptyset
ARCv2 ISA support
ARCv2: optimised string routines
posix_fadvise: handle 2 variants for SYSCALL_ALIGN_64BIT
sync_file_range: fix standard UCLIBC_SYSCALL_ALIGN_64BIT handling
elf: Add STT_GNU_IFUNC from glibc
ARC: Remove unused EM_ARC_A5
Vladimir Zapolskiy (4):
bits/socket.h: add SOCK_CLOEXEC and SOCK_NONBLOCK support
inotify: add inotify_init1 system call support
endian.h: add BSD convertions between big/little-endian byte order
lutimes: add lutimes support
Waldemar Brodkorb (96):
Fix for SIGBUS error on MIPS64 with N64 ABI
libc: fix MIPS N64 fork
libc: mips: Fix setjmp/longjmp for MIPS64 N64 ABI
unbreak networking code for sparc
fix for pipe() on sparc
welcome to the uClibc-ng project take two
Merge remote-tracking branch 'origin/upstream'
Revert "sparc: use HIDDEN_JUMPTARGET for errno"
Revert "sparc: disable cancellable system, as it fails in strange ways right now"
sparc: remove unused subdirs variable
sparc: add missing pthread_spin_lock/pthread_spin_trylock
test: NPTL: sync WRITE_BUFFER_SIZE with glibc test
test: do not depend on compile
m68k: fix typo
test: get out of the endless while loop, when bind failed
test: sync with glibc, use do_test
test: disable test for systems without FPU
sparc: remove sparc64/sparcv9 code
Merge remote-tracking branch 'origin/upstream'
Merge remote-tracking branch 'origin/upstream'
bump version to 1.0.0
Merge remote-tracking branch 'origin/upstream'
Merge remote-tracking branch 'origin/upstream'
disable broken architectures
test: disable posix_fallocate64 for small embedded systems
nptl: remove duplicate vfork() in libpthread
linuxthreads: remove unused s390 code
disable tests if HAVE_SHARED is not set
disable tests for arc as long as binutils is buggy
xtensa: add support for NPTL
add tls test macros for xtensa
testsuite: fix xtensa macros
cris: do not include asm/elf.h
cris: remove call to HIDDEN_JUMPTARGET
Add eventfd_read() and eventfd_write()
enable this symbol by default
libpthread: disable unimplemented configurations
remove forced gcc optimization
disable linkage of gcc_eh
m68k: fix linuxthreads compile for coldfire
linuxthreads: fix compile error for non-MMU
disable some test for avr32, compile failures.
disable a test for avr32, compile failure.
test: disable for noMMU case
c6x: disable it at the moment
m68k: remove reg.h
reduce the list of supported architectures
Merge remote-tracking branch 'origin/upstream'
Merge remote-tracking branch 'origin/upstream'
Merge remote-tracking branch 'origin/upstream'
Merge remote-tracking branch 'origin/upstream'
remove text files not useful for uClibc-ng
Merge remote-tracking branch 'origin/upstream'
disable test for noMMU
sync tcp header with glibc
merge upstream changes
don't optimize for special mips cpu
sparc64 support was removed recently
relocation fixes
for mips64 with N32 ABI we need to use newfstatat
revert getopt changes to tests
update INSTALL
fix warning when doing make clean
remove hidden warning option, not useful for others.
reduce some unneeded warnings.
remove comment
reenable c6x for toolchain testing without NPTL
Merge branch 'master' of git+ssh://openadk.org/git/uclibc-ng
remove another two warnings.
be sure to use EXTRA_CFLAGS for tests, too
remove unused Linux 2.0 compat code, otherwise c6x without NPTL is broken
add -fPIC to some tests.
enable microblaze. at least toolchain creation is working without NPTL
remove API dir. tests are disabled anyway.
add support for $ORIGIN
merge upstream changes
mark 1.0.0 release
only advertise when choosen
Use executables RPATH/RUNPATH when searching for libraries.
mark for development
really fix tests after getopt long changes
resolve merge conflict
unbreak support for ARM no MMU case
uncomment nios2
resolve merge
Revert "resolve merge"
merge uClibc upstream changes
sync with uClibc
gcc 4.9.x produces some calls to abort()
use weak to fix f.e. cdrkit static compile. fixes #3
Merge remote-tracking branch 'origin/upstream' into 1.0
fix non-thread compile for xtensa
should have test it better, fix non-thread compile
okay, chicken-egg-problem solved really now. (was xtensa no thread failure)
fix regression for ARM thumb mode
prepare for 1.0.1
Wang Yufen (2):
arm: add RESET_PID in the clone impl
add argument check in mknod
Will Newton (7):
ldso: Fix compilation for x86_64 without TLS support.
nptl: fix start_thread() for _STACK_GROWS_UP
nptl: Fix __USER_LABEL_PREFIX__ concatenatio
libc/inet/resolv.c: Remove obsolete comment.
libc/inet/resolv.c: Use IE model for TLS data.
_scanf.c: Implement 'm' modifier for 'c' and '[' conversions.
arm/clone.S: Add missing IT instruction for Thumb2.
William Pitcock (7):
nptl: fix compilation on x86_64
libm: implement generic cexp(), cexpf() and cexpl().
libm: add cabsf() and cabsl() functions.
libm: implement a generic sincos().
libcrypt: make crypt() itself more modular
libcrypt: add support for SHA512-CRYPT password hashing
libcrypt: add support for SHA256-CRYPT password hashing
Xi Wang (1):
nice: fix overflow checking in int_add_no_wrap()
Xishi Qiu (1):
add argument check in setenv()
Yann E. MORIN (8):
ARM: reorder "Use BX" option
ARM: introduce blind options to select & force THUMB mode
ARM: remove sub-arch/variants selection from menuconfig
ARM: transform the EABI/OABI choice into a boolean
ARM: #include <bits/arm_asm.h> where __USE_BX__ is used
ARM: detect BX availibility at build time
ARM: remove EABI/OABI selection
arm: move check for BX to its own header
Yoshinori Sato (2):
include unistd.h for smallint
include unistd.h for smallint
Zhang Pu (1):
fix pthread_cancel lead to segmentation fault for x86_64.
austinf (4):
fix compilation of linuxthreads for sparc add myself to MAINTAINERS for sparc
sparc also needs CONSTANT_STRING_GOT_FIXUP for doing debug printing in ldso
for sparc v8 MAGIC1 was defined incorrectly
patch from Joseph S. Meyers
wangyufen (1):
add argument check in mknod
-----------------------------------------------------------------------
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated
via 3b8d53ecf756a2352227b6c12eefb63847318005 (commit)
from a22b1f00846fb4dc09fe8ddc32a44152875af7c2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3b8d53ecf756a2352227b6c12eefb63847318005
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Sun Mar 8 21:36:25 2015 +0100
prepare for 1.0.1
-----------------------------------------------------------------------
Summary of changes:
Rules.mak | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Rules.mak b/Rules.mak
index 5686e46..56ea7fb 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -126,8 +126,8 @@ export RUNTIME_PREFIX DEVEL_PREFIX KERNEL_HEADERS MULTILIB_DIR
# Now config hard core
MAJOR_VERSION := 1
MINOR_VERSION := 0
-SUBLEVEL := 0
-EXTRAVERSION :=-git
+SUBLEVEL := 1
+EXTRAVERSION :=
VERSION := $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL)
ABI_VERSION := $(MAJOR_VERSION)
ifneq ($(EXTRAVERSION),)
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated
via 037eeeea891eb7d416817d44292e886723de5c91 (commit)
via 79d38fafe77ab295dfafc19c04e7ea96b20cfe7d (commit)
from 474700954dda085369a77e76c1c13a2c93b0a7e1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 037eeeea891eb7d416817d44292e886723de5c91
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Sat Mar 7 16:07:11 2015 -0600
should have test it better, fix non-thread compile
commit 79d38fafe77ab295dfafc19c04e7ea96b20cfe7d
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Thu Mar 5 19:47:26 2015 +0100
fix non-thread compile for xtensa
-----------------------------------------------------------------------
Summary of changes:
ldso/ldso/xtensa/dl-tlsdesc.S | 4 ++++
ldso/ldso/xtensa/elfinterp.c | 3 +++
2 files changed, 7 insertions(+)
diff --git a/ldso/ldso/xtensa/dl-tlsdesc.S b/ldso/ldso/xtensa/dl-tlsdesc.S
index a6ebc94..f1bbf41 100644
--- a/ldso/ldso/xtensa/dl-tlsdesc.S
+++ b/ldso/ldso/xtensa/dl-tlsdesc.S
@@ -17,6 +17,9 @@
<http://www.gnu.org/licenses/>. */
#include <sysdep.h>
+
+#if defined(USE_TLS) && USE_TLS
+
#include <tls.h>
#include "tlsdesc.h"
@@ -94,3 +97,4 @@ _dl_tlsdesc_dynamic:
.size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
#endif /* SHARED */
+#endif /* USE_TLS */
diff --git a/ldso/ldso/xtensa/elfinterp.c b/ldso/ldso/xtensa/elfinterp.c
index 1397e95..66deb63 100644
--- a/ldso/ldso/xtensa/elfinterp.c
+++ b/ldso/ldso/xtensa/elfinterp.c
@@ -31,8 +31,11 @@
*/
#include "ldso.h"
+
+#if defined(USE_TLS) && USE_TLS
#include "dl-tls.h"
#include "tlsdeschtab.h"
+#endif
unsigned long
_dl_linux_resolver (struct elf_resolve *tpnt, int reloc_entry)
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via d9af3e5575a741eb784c7f55a998f0e4085ae1ca (commit)
from b15663cf14e1bff98533de992e99feba041b1357 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit d9af3e5575a741eb784c7f55a998f0e4085ae1ca
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Sat Mar 7 16:07:11 2015 -0600
should have test it better, fix non-thread compile
-----------------------------------------------------------------------
Summary of changes:
ldso/ldso/xtensa/dl-tlsdesc.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ldso/ldso/xtensa/dl-tlsdesc.S b/ldso/ldso/xtensa/dl-tlsdesc.S
index dee4258..f1bbf41 100644
--- a/ldso/ldso/xtensa/dl-tlsdesc.S
+++ b/ldso/ldso/xtensa/dl-tlsdesc.S
@@ -17,10 +17,10 @@
<http://www.gnu.org/licenses/>. */
#include <sysdep.h>
-#include <tls.h>
#if defined(USE_TLS) && USE_TLS
+#include <tls.h>
#include "tlsdesc.h"
hooks/post-receive
--
uClibc-ng - small C library for embedded systems