Age | Commit message (Collapse) | Author |
|
When a 'hard' error occurs, fwrite reports that all data was written or
buffered even if that is not the case. It should report how much data
was actually written and buffered.
Signed-off-by: Jan Vangorp <jan.vangorp_ext@softathome.com>
|
|
The man page for fopencookie prescribes that custom write functions
should return 0 on error (and should definitely not return a negative
value) [1].
However, the uClibc implementation expects a negative return value in
case of an error (libc/stdio/_WRITE.c). If the write function returns 0
on error, we drop into an infinite loop if the error persists.
This patch wraps the user supplied write function such that a 0 return
value is converted to -1. errno is first set to EAGAIN such that if the
custom write function does not set errno in case of error, this is
treated as a "soft" error.
Custom write functions that cater towards uClibc and _do_ return a
negative value are not affected.
If no custom write function is supplied, set errno to EINVAL such that
this condition is treated as a "hard" error. Previously the behaviour
depended on whether the last error before the write happened to be a "hard"
or a "soft" error.
[1] http://git.kernel.org/cgit/docs/man-pages/man-pages.git/tree/man3/fopencookie.3?id=6c0d0ef0c7a9c4bcf805c6f9e9bc1ef1c3865ea0#n164
Signed-off-by: Jan Vangorp <jan.vangorp_ext@softathome.com>
|
|
Simplify and use generic lowlevellock.
Tested-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
|
|
Simplify and use generic lowlevellock.
Tested-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
|
|
Simplify and use generic lowlevellock.
Tested-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
|
|
Rename mmap2 test as this is a ARM specific test, only
execute on ARM systems. Add more new tests from glibc.
|
|
Nobody should use gcc 3.3 nowadays.
|
|
These files are not used, no regression found while
running the testsuite.
|
|
Fix some gcc warnings while compiling the testsuite.
|
|
See here:
https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commit;h=900056024b75eae8b550d7fee1dec9e71f28344e
Fixes testsuite runs on newer kernels.
|
|
Remove ppc64 bits and bytes, as we don't support ppc64 and
it makes the code more readable without the dead code.
|
|
|
|
lowlevellock.c for arm differs from the generic lowlevellock.c only in
insignificant ways, so can be removed. Follow glibc commit 6d96f5e4c0
Solves __lll_timedlock_wait busy-wait issues described at
http://sourceware.org/bugzilla/show_bug.cgi?id=15119
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
|
|
unlocked NORMAL mutex.
Althought, it is undefined behavior, there is no reason for segfault.
Program received signal SIGSEGV, Segmentation fault.
__pthread_unlock (lock=lock@entry=0x804b03c <lock+16>)
at libpthread/linuxthreads.old/spinlock.c:231
231 (&lock->__status, oldstatus, (long)(thr->p_nextlock) & ~1L))
It occurs only on platforms which has HAS_COMPARE_AND_SWAP defined.
Restore glibc commit fbaf6e72d6 "spinlock.c (__pthread_unlock): Don't crash if
called for an untaken mutex." behavior, broken later by commit 4ad1d0cfbf.
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
|
|
Currently, targets dependancy list don't include Makefile.in,
this leads to incomplete rebuild after target's compiler/linker
flags was changed.
Use "$(wildcard)" function due to Makefile.in could be absent
in subdirectory.
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
|
|
Sync pthread_spin_lock/pthread_spin_trylock with GNU libc as it avoids
any usage of deprecated SWP instruction. This allows to build uClibc-ng
for ARMv8 Cortex-A53 CPU in 32 Bit mode.
|
|
|
|
There exist some problem with the new memcpy/memset functions
imported from GNU libc/newlib. If you have any problem
with the new MIPS optimized assembly try to disable
prefetching support.
Thanks to Rene Nielsen and Matthew Fortune analyzing the
problem so far.
|
|
Both $(CC_FLAG_ASNEEDED) and $(CC_FLAG_NO_ASNEEDED) never become "y",
must check for non-empty strings.
To keep make 3.80 compatibility "$(if" used only.
Fixes: 7da4d1e7 "buildsys: do not use $(and)".
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
|
|
Even though by default for ARC uClibc gets compiled with
disabled long-calls user may provide UCLIBC_EXTRA_CFLAGS
with "-mlong-calls". With this option uClibc will be
successfully compiled but later it will fail in runtime
because dynamic loader cannot deal with relocations
at least very early on its start.
In particular it will be seen as call to non-relocated
symbol _dl_parse_dynamic_info() which ends-up as a segfault
like this:
------------------------>8--------------------
potentially unexpected fatal signal 11.
Path: /bin/test
CPU: 0 PID: 63 Comm: test Not tainted 4.5.2 #7
task: 9f13f180 ti: 9f166000 task.ti: 9f166000
[ECR ]: 0x00040000 => Insn could not be fetched
[EFA ]: 0x0000283c
[BLINK ]: 0x2000407c
[ERET ]: 0x283c
@No matching VMA found
[STAT32]: 0x8008009e : IE U
BTA: 0x0000283c SP: 0x5fef5ccc FP: 0x00000000
LPS: 0x20004080 LPE: 0x20004064 LPC: 0x00000000
r00: 0x20006684 r01: 0x5fef5db0 r02: 0x00000000
r03: 0x20000000 r04: 0x80808080 r05: 0x2f2f2f2f
r06: 0x41464d00 r07: 0x00000080 r08: 0x000000dd
r09: 0x00000000 r10: 0x00000073 r11: 0x80808080
r12: 0x2000407c r13: 0x20000000 r14: 0x5fef5e74
r15: 0x000ceb3c r16: 0x5fef5e7c r17: 0x5fef5d44
r18: 0x000ceb0c r19: 0xffffffff r20: 0x000ceb1c
r21: 0x00000000 r22: 0x00000000 r23: 0x000d08a5
r24: 0x00000000 r25: 0x80808080
Segmentation fault
------------------------>8--------------------
Solution to this issue is simple we make sure dynamic
loader never gets compiled with "-mlong-calls" by forcing
"-mno-long-calls" on it.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: Anton Kolesov <akolesov@synopsys.com>
Cc: linux-snps-arc@lists.infradead.org
|
|
This reverts commit fad6c6021feb6c2dd4a3bd5de1113994d4a9b04e.
A fix was applied with a90c9ac641ba4f692f5eec209b82097d93e9b813
|
|
Accidentally, commit 43ef9c6b3 wasn't taken into account.
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
|
|
With new binutils supporting DT_RELACOUNT, ldso was crashing as it was
parsing relocs incorrectly.
Apparently that code ran for first time and was never tested.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
|
|
Commit 9c4fce55a (nptl: remove sigaction, sigprocmask, and sigfillset from
libpthread) removed pt-sigaction.c from the build to fix static build.
However, since the libc sigaction is weak when HAS_THREADS is enabled, static
build is not be affected. Tested for xtensa, x86, MIPS32 targets.
Fixes nptl/tst-signal7.
Moreover, commit 9193a76bb from the 0.9.33 branch has the right version.
Ref.: http://patchwork.ozlabs.org/patch/286084/
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
|
|
|
|
Got the working code from https://github.com/jdkoftinoff/mb-linux-msli/,
otherwise SIGILL while using linuxthreads.
|
|
Sync mostly with GNU libc implementation of setjmp/longjmp.
Just generate PIC compatible code, so no difference for static
builds are made. Add sysdep.h with some handy assembly macros
used inside setjmp.S/__longjmp.S.
This unbreaks dynamic linker support, first test suite run
only shows 10 errors, which doesn't look so bad.
|
|
|
|
Linuxthreads.new isn't really useful with the existence
of NPTL/TLS for well supported architectures. There is no
reason to use LT.new for ARM/MIPS or other architectures
supporting NPTL/TLS. It is not available for noMMU architectures
like Blackfin or FR-V. To simplify the live of the few uClibc-ng
developers, LT.new is removed and LT.old is renamed to LT.
LINUXTHREADS_OLD -> UCLIBC_HAS_LINUXTHREADS
|
|
copy file from linuxthreads to be able to compile gdbserver.
|
|
|
|
|
|
Triggers a bug in MIPS code under certain circumstances, which
are unclear at the moment.
|
|
Ported over from glibc mostly without changes.
Lightly tested with mongrel2 in qemu-system-sparc.
|
|
|
|
|
|
|
|
With binutils 2.26 for m68k and 2.25.1 for coldfire,
these -fPIC workarounds no longer required.
|
|
License notices in most of the source files refer to an outdated
FSF address. Replace it with URL, like in the rest of the source
files.Signed-off-by: Nikola Forró <nforro@redhat.com>
|
|
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
|
|
|
|
Sync with GNU libc behaviour.
|
|
This might be used to generate a Debian copyright file.
|
|
|
|
|
|
GDB 7.11 does not build if compiled against uclibc-ng (1.0.12 was used,
but the problematic code exists in 1.0.13 as well). The reason is that
GDB release includes its own obstack implementation, but elides the code
if <gnu-versions.h> declares a compatible obstack implementation in
libc. uclibc-ng does claim compatible obstack interface (GDB expects
version 2, but accepts version 1 if sizeof(int) == sizeof(size_t)),
however, uclibc-ng does not provide the _obstack_free symbol that is a
part of the interface (glibc does provide this symbol). This later
causes a link failure.
The attached patch makes uclibc-ng enables an alias _obstack_free ->
obstack_free.
Signed-off-by: Alexey Neyman <stilor@att.net>
|
|
On systems where uClibc doesn't provide an arch specific byteswap.h,
we fall back on bits/byteswap-common.h. However, there is a bug
in this header in the __bswap_constant_64(x) macro. If, for example,
a double is passed, we get 'invalid operands to binary &' in which we
mismatch a 'double' and 'long long unsigned int'. The newer glibc
headers fix this and so we import them. Also, since the inclusion of
byteswap.h is not appropriate for assembly code, we guard a portion
of endian.h which uses byteswap.h from inclusion in any assembly.
This is needed, for example, for f2fs-tools 1.6.0 on 32-bit big
endian PowerPC.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
|
|
Currently, the Thumb support on ARM has three related Config.in
options, which are not trivial for users to understand, and are in
fact not needed:
- The USE_BX option is not needed: knowing whether BX is available or
not is easy. If you have an ARM > v4 or ARMv4T, then BX is
available, otherwise it's not. This is the logic used in glibc.
- The USE_LDREXSTREX option is not needed: whenever Thumb2 is
available, ldrex/strex are available, so we can simply rely on
__thumb2__ to determine whether ldrex/strex should be used, without
requiring a Config.in option.
- Once USE_BX and USE_LDREXSTREX are removed, the only thing left
that COMPILE_IN_THUMB does is to set -mthumb. This makes the option
unnecessary, as on ARM at least, the user is already supposed to
pass -march=<foo> or other compiler options tuning the library for
a specific ARM variant. There is no reason to do otherwise for
Thumb, which allows to get rid of the COMPILE_IN_THUMB option.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
Register window saving loop in __sigsetjmp incorrectly calculates offset
in the jmp_buf in case it was called with call12. The bug was introduced
in commit f4b1b7ade7971141 "xtensa: fix setjmp that didn't save all
registers correctly".
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
|