summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-10-08xtensa: support call0 ABIMax Filippov
Most changes are mechanical replacement of 'retw' instruction with 'abi_ret' macro, defined to 'retw' or 'ret' according to ABI. Assembly code that makes calls is duplicated for call0 ABI with changed register numbers for parameters/return value and call instruction. 'entry' instructions are replaced with 'abi_entry' macro. More interesting changes: - non-leaf assembly functions (e.g. _dl_tlsdesc_dynamic, _dl_linux_resolve, SYSCALL_ERROR_HANDLER, PSEUDO) now need to preserve registers around intermediate calls they make, use temporary stack frame for that; - setjmp/longjmp only need to save and restore return address, stack pointer and callee-saved registers in the jmpbuf; - __clone and syscall functions had hardcoded offsets to parameter passed on stack, on call0 ABI they don't need stack frame, so the offset is different. Replace these offsets with FRAMESIZE macro. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2015-10-05libc: posix_fallocate must return an error number on failureYuriy Kolerov
posix_fallocate implementation in uClibc relies on fallocate system call - it just returns what fallocate returns. However fallocate returns -1 on failure and assigns an error number to errno variable. In the same time posix_fallocate must return an error number but not -1. What does this patch: if fallocate returns -1 then posix_fallocate returns errno. Otherwise posix_fallocate returns 0 on success. However there is a side effect - posix_fallocate sets errno on failure because fallocate does it. But POSIX does not forbid it thus it's not a problem. Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
2015-10-05libc: fix sign extension in fallocate()Yuriy Kolerov
For common generic syscall ABI fallocate syscall handler in kernel expects a 64-bit signed arguments for offset and len. However uClibc has 2 wrappers for this syscall: fallocate and fallocate64. On 32-bit machines fallocate (not fallocate64) expects 32-bit values of offset and len. Thus in this case uClibc's fallocate must pass to the syscall those values with sign extension. High word of 64-bit value must be 0 or 0xFFFFFFFF depending on sign of the original 32-bit value (offset or len). It is how sign extansion works - all high bits of the negative value must be 1. So on 32-bit machines uClibc's fallocate does sign extension incorrectly when 32-bit values are passed (offset or len). It just fills the second word of 64-bit value by zeros. E.g. fallocate works incorrectly when offset or length is negative value - in this case kernel thinks that positive values are passed. Solution is to call fallocate64 from fallocate and pass 32-bit values of offset and len to fallocate64. off_t type is automatically converted to off64_t with an appropriate sign extension. Then fallocate64 invokes kernel's system call properly. This error is detected in LTP's test kernel/syscalls/fallocate02: ----------->8---------- fallocate(..., 1, -1024, 1024) failed, expected errno:22: TEST_ERRNO=0 fallocate(..., 1, 1024, -1024) failed, expected errno:22: TEST_ERRNO=0 fallocate(..., 1, 12288, -1024) failed, expected errno:22: TEST_ERRNO=0 fallocate(..., 1, -24576, 1024) failed, expected errno:22: TEST_ERRNO=0 ----------->8---------- fallocate does not emit an error because negative values are passed to the kernel without sign extension and kernel thinks that it got valid positive values. Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
2015-10-05libc: fix setting return value and errno in fallocate()Yuriy Kolerov
fallocate system call must return 0 on success. On error, -1 is returned and errno is set to indicate the error. However there is an error in fallocate which is fixed by this patch - it does not set errno and returns invalid value on error (it returns error code instead of -1). This error is detected in LTP's test kernel/syscalls/fallocate02: ----------->8---------- fallocate(..., 1, 0, 1024) failed, expected errno:9: TEST_ERRNO=0 fallocate(..., 1, -1024, 1024) failed, expected errno:22: TEST_ERRNO=0 fallocate(..., 1, 1024, -1024) failed, expected errno:22: TEST_ERRNO=0 fallocate(..., 1, 12288, 0) failed, expected errno:22: TEST_ERRNO=0 fallocate(..., 1, 12288, -1024) failed, expected errno:22: TEST_ERRNO=0 fallocate(..., 1, -24576, 1024) failed, expected errno:22: TEST_ERRNO=0 ----------->8---------- Signed-off-by: Yuriy Kolerov <yuriy.kolerov@synopsys.com>
2015-09-15NPTL: fix CFLAGS for cancellation pointsMax Filippov
Stack unwinding that happens during NPTL thread cancellation needs cancellable syscall wrapper functions to be compiled with -fexceptions -fasynchronous-unwind-tables to be able to unwind to cleanup handlers registered before syscall invocation. Add these flags for all cancellable syscall wrappers. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2015-09-11Revert "tgmath.h: disable builtins"Waldemar Brodkorb
This reverts commit d1671548b968103f4df1b80659e60ae1fc5a67b3. You get following errors while compiling freeswitch: awgn.c: In function 'awgn_init_dbov': awgn.c:110:5: error: void value not ignored as it ought to be s->rms = pow(10.0, level/20.0)*32768.0; Reverting this commit allows to build the code.
2015-08-30tst-mkostemps: fix test case on read-only root filesystemWaldemar Brodkorb
Better use /tmp as embedded systems might have a read-only root. Fix two wrong asserts.
2015-08-27nptl_db/db_info: fix the incorrect initial size for dtvpJunling Zheng
When debugging a program on ARMv7 with thread-local storage declared using "__thread", attempting to print a thread-local variable will result in the following message: Cannot find thread-local storage for Thread <snip> (LWP <snip>), executable file /tmp/tls: capability not available This can be traced back to uclibc libpthread/nptl_db/td_thr_tls_get_addr.c which gdb uses to look up the address of the TLS. The function returns TD_NOCAPAB due to a mismatch in size between the DTV pointer and the size recorded in the db description. The problem lies in libpthread/nptl_db/db_info.c which initializes the db with the sizeof the union dtv. Instead it should be the sizeof a pointer to union dtv. Fixed the initial size for dtvp to sizeof a pointer, instead of sizeof the union. Refer to: http://sourceware.org/ml/libc-alpha/2006-10/msg00088.html https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=416b630981788c1f08e746e19765aa0e5c2a1360 Signed-off-by: Junling Zheng <zhengjunling@huawei.com>
2015-08-22bump versionv1.0.6Waldemar Brodkorb
2015-08-22add tests for mkostemps()Romain Naour
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
2015-08-22quieten compile warningsWaldemar Brodkorb
Sync with glibc, quietens gcc warnings.
2015-08-22ldso: install backward compatibility symlink by defaultWaldemar Brodkorb
Simplify the switch from uClibc to uClibc-ng suggested by Alexey Brodkin <Alexey.Brodkin@synopsys.com>. Gcc always uses .0 ld.so link, so install it by default.
2015-08-19Revert "ldso: install backward compatibility symlink by default"Waldemar Brodkorb
This reverts commit f52fb21a7af0aa4e983b3e6c2ddd1b6a526b5169. Totally wrong patch.
2015-08-15ldso: install backward compatibility symlink by defaultWaldemar Brodkorb
Simplify the switch from uClibc to uClibc-ng suggested by Alexey Brodkin <Alexey.Brodkin@synopsys.com>. Gcc always uses .0 ld.so link, so install it by default.
2015-08-14fix some type differences to linux-next for h8/300Waldemar Brodkorb
2015-08-14glibc compat: bump glibc minor versionWaldemar Brodkorb
See this discussion: http://lists.busybox.net/pipermail/buildroot/2015-August/137229.html Should help to fix compile issues with boost for ARC.
2015-08-14getenv: allow overwriting of functionWaldemar Brodkorb
This fixes static compile issues of sudo, because sudo uses it's own getenv implementation.
2015-08-14add mkstemps, mkstemps64 and mkostemps, mkostemps64 functionsRomain Naour
Change __gen_tempname() prototype in order to pass the additional suffix lenght. In __gen_tempname() add a new check for suffixlen. Update some comments in the code. Signed-off-by: Romain Naour <romain.naour@openwide.fr> Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
2015-08-10locales: add patch from OpenWrtWaldemar Brodkorb
This fixes some build problems on f.e. Fedora hosts, when locales are enabled. Suggested via #buildroot on Freenode.
2015-08-02bump version for releasev1.0.5Waldemar Brodkorb
2015-08-02sh: fix static linking issueWaldemar Brodkorb
2015-08-02simplify, as the other does not work correctly, suggested by tgWaldemar Brodkorb
2015-08-02fix inline asm changing the stack pointer leading to segfaults problemmirabilos
2015-08-02fix MIPS N32 ABI Big Endian setjmp/longjmpmirabilos
access to the jmp_buf structure occasionally happens asymmetrically: fields defined in pointer size width (64 on N32) can be accessed as 32-bit words, but in that case, a̲l̲l̲ involved code must agree on that…
2015-08-02integrate old m68k vfork bugfix of pre-µClibc-ng treemirabilos
2015-07-25set title correctly, as mentioned by tgWaldemar Brodkorb
2015-07-22fix static builds of pthread apps for x86/x86_64Waldemar Brodkorb
Found via buildroot autobuilder.
2015-07-22ARCv2: update memset() so it could be used without double load/storesClaudiu Zissulescu
Existing version of memset() relies on existence of 64-bit load/stores. While ARC HS38 may not have those instructions implemented in SoC. Proposed implementation checks if "-mno-ll64" option was passed to gcc (for ARCv2 "-mll64" is set implicitly by default) by checking __LL64__ definition and if it is not defined uses 32-bit load/stores. Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Vineet Gupta <vgupta@synopsys.com>
2015-07-14prepare 1.0.4 releasev1.0.4Waldemar Brodkorb
2015-07-11allow to test and use metagWaldemar Brodkorb
2015-07-11Merge branch '1.0' of git+ssh://uclibc-ng.org/git/uclibc-ng into 1.0Waldemar Brodkorb
2015-07-11tst-sscanf: fix linking for m68kWaldemar Brodkorb
2015-07-11builtin_unreachable is not available for older gccWaldemar Brodkorb
2015-07-05fix parallel build issue when LOCALES are enabledWaldemar Brodkorb
2015-07-03test/tls: xtensa: fix TLS_LD definitionMax Filippov
TLS_LD should use linker-provided symbol _TLS_MODULE_BASE_ instead of symbol it resolves to get thread pointer, otherwise linker relaxation doesn't work correctly, adding extra offset to thread-local variable address. This fixes most of tls/tst-tls* tests. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2015-06-30NPTL/arc: notify kernel of the TP valueVineet Gupta
Native gdb makes a ptrace (GET_THREAD_AREA) which needs to return the TP. however when libc sets up TP reg (for main thread), it doesn't call arc_settls syscall so kernel doesn't know of TP register details (moreso because clone doesnt have SETTLS flag) Note that kernel doesn't know about r25 being TP etc. This commit got lost in merge of NPTL tools into arc-mainline-dev and showed up again as STAR 9000919529 (native gdb can't debug threaded apps) ------->8--------------- [ARCLinux]# gdb ./pth Reading symbols from ./pth...(no debugging symbols found)...done. (gdb) b main Breakpoint 1 at 0x106f2 (gdb) r Starting program: /pth [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". thread_get_info_callback: cannot get thread info: generic error (gdb) q ------->8--------------- Debugged-by: Anton Kolesov <akolesov@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2015-06-23xtensa: add ret_ERRVAL definitionMax Filippov
ret_ERRVAL is used by mq_timedsend and mq_timedreceive, it needs to be defined to retw, otherwise error return from those functions segfaults. This fixes the following testsuite failures: .... tst-mqueue1 FAIL tst-mqueue1 got 1 expected 0 Didn't expect signal from child: got `Segmentation fault' .... tst-mqueue2 FAIL tst-mqueue2 got 1 expected 0 Didn't expect signal from child: got `Segmentation fault' .... tst-mqueue3 FAIL tst-mqueue3 got 1 expected 0 Didn't expect signal from child: got `Segmentation fault' .... tst-mqueue4 FAIL tst-mqueue4 got 1 expected 0 Didn't expect signal from child: got `Segmentation fault' .... tst-mqueue5 FAIL tst-mqueue5 got 1 expected 0 Didn't expect signal from child: got `Segmentation fault' .... tst-mqueue6 FAIL tst-mqueue6 got 1 expected 0 Didn't expect signal from child: got `Segmentation fault' Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2015-06-23xtensa: fix stack frame size for NPTLMax Filippov
Cancellable syscalls use call8 to call functions that enable/disable cancellation, thus they cannot use the default FRAMESIZE. Redefine FRAMESIZE for such syscalls. This fixes the following testsuite failure: .... tst-mqueue8 FAIL tst-mqueue8 got 1 expected 0 going to cancel mq_receive in-time in-time mq_receive cancellation succeeded going to cancel mq_receive early Didn't expect signal from child: got `Segmentation fault' Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2015-06-23add patch from ldso-future branchWaldemar Brodkorb
Fixes segfaults when gcc 5.1 is used for x86. http://git.uclibc.org/uClibc/commit/ldso/ldso/i386/dl-sysdep.h?h=ldso-future&id=7de778389d0040be4a21ffc326310e0eb361570a Mentioned in #uclibc.
2015-06-18Fix libgcc_s_resume issue with gcc 5.1Thomas Petazzoni
When built with gcc 5.1, uClibc-ng fails to build with the following issue: librt/librt_so.a(rt-unwind-resume.oS): In function `_Unwind_Resume': rt-unwind-resume.c:(.text+0x3c): undefined reference to This commit fixes the code in a way similar to what was done in glibc in commit: https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=175cef4163dd60f95106cfd5f593b8a4e09d02c9 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-06-10disable not available CFLAGS for h8300Waldemar Brodkorb
2015-06-10h8300 has no NPTLWaldemar Brodkorb
2015-06-10just use 4k pages for microblaze, the config are missing and never committed ↵Waldemar Brodkorb
into uClibc
2015-06-10avoid some compiler warningsWaldemar Brodkorb
Patch seen here: http://lists.uclibc.org/pipermail/uclibc/2015-April/048892.html
2015-06-10allow endian choice for microblaze biendian architectureWaldemar Brodkorb
2015-06-10use common ptrace.h for xtensa, fixes buildroot issues compiling enlightmentWaldemar Brodkorb
2015-06-10use mktemp, otherwise test is failing. reverts partially ↵Waldemar Brodkorb
7c721d31e4b7a0bdf6f803b8e7c38996bf60b59f
2015-06-10disable silly test for mips/sparcWaldemar Brodkorb
2015-06-10getconf.c: undef VERSIONBernhard Reutner-Fischer
might come in via nptl so undef it before redefining it Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2015-06-10ARC: enable IPv6 in defconfigsAlexey Brodkin
These days IPv6 is used more and more in different software packages. And so we're adding IPv6 support by default in uClibc for ARC cores. Signed-off-by: Alexey Brodkin <Alexey.Brodkin@synopsys.com> Cc: Vineet Gupta <vgupta@synopsys.com> Cc: Anton Kolesov <akolesov@synopsys.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>