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@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@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@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@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@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@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@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@gmail.com Added support for error_print_progname as proposed by Will Newton will.newton@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@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@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@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@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@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@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@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@sys.sigma.se (I just checked in a fix for memcmp to make it pass). Some cleanups from W. Greathouse wgreathouse@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@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@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@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@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@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@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@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@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@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@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@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@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@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@cyberiansoftware.com to fix a thinko on my patch. As noted by Michiel Thuys michiel.thuys@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@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@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@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@securepipe.com A patch from Jon Nelson jnelson@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@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@lineo.com -- do not try to build ldso when we don't support shared libraries... Fix up some problems noted by August Hoerandl ahoerandl@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@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@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@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@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@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@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@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@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@bluegiga.com reports Preevaluate some stuff so it only gets run once, speeding the compile Patch from Andrew Ip aip@cwlinux.com to add ftime, allowing openssl to be built. Patch from John Tyner jtyner@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@lineo.com: Yet more minor cleanups Wohoo! David McCullough found the bug! His comments follow: Minor update Patch from Miles Bader miles@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@coactive.com Add missing values.h A small patch from Erwin Authried eauth@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@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@vtt.fi to fix a memory leak in dns_lookup. Add statfs64 Patch from Jari Korva jpkorva@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@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@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@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@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@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@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@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@lsi.nec.co.jp Patch from Stefan Soucek ssoucek@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@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@racsa.co.cr for noticing! -Erik Enable fdatasync Patch from Brian Stafford brian@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@lsi.nec.co.jp noticed that `make install' tries to build ldso stuff on non-shared-library systems. And Matthew Bloch mattbee@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@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@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@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@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@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@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@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@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@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@phreaker.net Since pthreads work on powerpc, at least mention the option. Richard June rjune@bravegnuworld.com noticed that setutent was only opening utmp readonly. Oops. Patch from Jim Treadway jim@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@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@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@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@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@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@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@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@realitydiluted.com: Patch from Tobias Anderberg tobias.anderberg@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@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@rc.ru Fix a couple of silly bugs I'd left in while fixing things -Erik Patch from Tobias Anderberg tobias.anderberg@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@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@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@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@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@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@brecis.com, remove double define of _PATH_LOCALE. Several cleanups/fixes from Marshall M. Midden m4@brecis.com This patch, from Ronald Wahl rwa@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@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@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@peppercon.com to fix a memory leak Add missing stropts.h Per bug report from Ronald Wahl rwa@peppercon.com: ...inet_pton breaks since tolower is implemented as a macro and its argument is evaluated more than once: Tobias Anderberg tobias.anderberg@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@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@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@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@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@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@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@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@redsonic.com, the gid and uid were reversed in putpwent(). Oops. -Erik Patch from Tiago Marques tmarques@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@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@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@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@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@atecom.com: 'wcschrnul.o' appeares two times in MOBJW2 Patch from Marshall M. Midden m4@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@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@wmi.com Remove -fuclibc-ctors Fix malloc so it compiles and works when using pthreads -Erik Add a test from Alex King alex@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@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@i3micro.com: Remove my horrible SH hack infavor of this fix for initfini.awk from Stefan Allius allius@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@xecurenexus.com to limit things to the lower 16 bits of 'id'. Patch from M. R. Brown mrbrown@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@atecom.com and "M. R. Brown" mrbrown@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@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@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@linux-sh.org: Patch from Paul Mundt lethal@linux-sh.org: Patch from Paul Mundt lethal@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@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@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@uclibc.org on behalf of Peter Kjellerstedt [peter.kjellerstedt@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@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@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@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@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@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@axis.com). Fix fwrite return value bug reported by Matthias Kilian kili@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@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@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@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@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@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@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@mba.ocn.ne.jp to do arch-required mapping of signal strings (alpha, mips, hppa, sparc). Fix a problem reported by Atsushi Nemoto anemo@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@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@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@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@mba.ocn.ne.jp. Another missing mips function, needed by the boehm garbage collector. Patch by "Bradley D. LaRonde" brad@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@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@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@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@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@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@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@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@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.html http://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@redhat.com backport from upstream: 2001-04-10 Ulrich Drepper drepper@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@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@gmail.com. Fix PLTJMP() token pasting build error, patch from Carmelo Amoroso carmelo73@gmail.com. Sync sh's procfs.h with glibc, fixes gdbserver. Patch from Carmelo Amoroso carmelo73@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@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