Age | Commit message (Collapse) | Author |
|
For hardware configurations lacking LLOCK/SCOND (say ARC750),
use a syscall to atomically do the cmpxchg.
This is costly and painful, but really the only way out.
Note that kenrel only guarantees this to work in a UP configuraion
Reported-by: Avinash Patil <avinashp@quantenna.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
|
|
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
|
|
ARC EX instruction maps directly to this primitive, thus helps elide the
llock/scond based retry loop where possible.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
|
|
In gcc 6.x cleanup, the macros got renamed.
(Need to support the old toggle for some more time)
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
|
|
These functions are used by firefox for example.
Tested with running firefox on x86 system.
|
|
Only static linking is supported for now.
More debugging and analyzing for ld.so, TLS and NPTL
is required. But at least you can bootup a static
root fileystem in Qemu.
|
|
Not perfect, but a starting point.
Some tests of the test suite are failing.
|
|
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
|
|
|
|
The test suite is now a developed in a separate git repository.
See here:
http://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng-test.git
The test suite should be just like every other software compiled
with the cross-toolchain. In the past strange problems where found
when the test suite got build in the toolchain creation step.
|
|
Somehow this got removed with f1d7505e40654a185843bdc8f1cf1fd00ab55c04.
Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
|
|
|
|
This is because some old ARC750 cores lack these instructions.
We now rely on the default for the toolchain driver:
-mcpu=A7 won't enable those, while -mcpu=archs will as these
instructions are baseline (and thus is not impacted with this change).
If some arc700 based cpu does have them, it can override the driver
defaults in it's one level up build system.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
|
|
Change directory back to the parent before processing
the directory (after the contents have already been processed).
Signed-off-by: John Ata <john.ata@baesystems.com>
|
|
|
|
Cc: Anton Kolesov <akolesov@synopsys.com>
Cc: linux-snps-arc@lists.infradead.org
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
|
|
|
|
To analyze or debug any linuxthreads problems it is useful to
have the ability to have a full gdb on the target available.
At the moment you could only debug stuff on microblaze.
Now we can verify that linuxthreads are working fine for
every supported architecture.
|
|
There was a deadlock hanging in a sycall to futex,
which should be solved now.
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
|
|
Despite the prev fix, tst-mqueue3 was still segfaulting.
The issue was BLINK register not restored properly for return
00002690 <mq_timedsend>:
2690: sub r9,r25,0x448
2698: ld r10,[r9]
269c: cmp r10,0
26a0: beq -36
26a4: st.aw blink,[sp,-4]
26a8: st.aw r0,[sp,-4]
26ac: st.aw r1,[sp,-4]
26b0: st.aw r2,[sp,-4]
26b4: st.aw r3,[sp,-4]
26b8: st.aw r4,[sp,-4]
26bc: bl 1e28 <__librt_enable_asynccancel>
26c0: mov r9,r0
26c4: ld.ab r4,[sp,4]
26c8: ld.ab r3,[sp,4]
26cc: ld.ab r2,[sp,4]
26d0: ld.ab r1,[sp,4]
26d4: ld.ab r0,[sp,4]
26d8: ld.ab blink,[sp, 4] <---- function return BLINK
26dc: mov r8,182
26e0: trap_s 0
26e2: cmp r0,-1024
26e6: st.aw r0,[sp,-4]
26ea: mov r0,r9
26ee: bl 1e90 <__librt_disable_asynccancel> <-- BLINK clobbered
to next PC
26f2: ld.ab r0,[sp,4] <----| loops here until sp is out of bound
26fa: cmp r0,-1024 |
26fe: jls [blink] -----|
2702: b 15d8
2706: nop_s
So the fix was to retain BLINK on stack before function call, and pop it
later
- 26d8: ld.ab blink,[sp, 4]
+ 26d8: ld blink,[sp] <--- restore BLINK, but retain on stack
26dc: mov r8,182
26e0: trap_s 0
26e2: cmp r0,-1024
26e6: st.aw r0,[sp,-4]
26ea: mov r0,r9
26ee: bl 1e90 <__librt_disable_asynccancel>
26f2: ld.ab r0,[sp,4]
+ 26f6: ld.ab blink,[sp,4] <--- finally pop BLINK
26fa: cmp r0,-1024
26fe: jls [blink]
Reported-by: Eugeniy Paltsev <paltsev@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
|
|
This was reported as uClibc test suite failures of tst-mqueue3 and
tst-mqueue5.
The syscall args were getting clobbered, so use scratch regs which are
not used for syscall args
00002690 <mq_timedsend>:
; SINGLE_THREAD_P
2690: sub r1,r25,0x448 <--- clobers r1, r2
2698: ld r2,[r1]
269c: cmp r2,0
26a0: bz mq_timedsend_nocancel
; DOCARGS (saves syscall args but r1, r2 clobbered already)
26a4: st.aw blink,[sp,-4]
26a8: st.aw r0,[sp,-4]
26ac: st.aw r1,[sp,-4]
26b0: st.aw r2,[sp,-4]
26b4: st.aw r3,[sp,-4]
26b8: st.aw r4,[sp,-4]
26bc: bl 1e28 <__librt_enable_asynccancel>
Reported-by: Eugeniy Paltsev <paltsev@synopsys.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
|
|
gcc 4.8 does not support nan flag.
Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
Fixes compilation of uClibc-ng when UCLIBC_HAS_LONG_DOUBLE_MATH is
used.
|
|
The nested libpthread_nonshared.a and libdl.os shouldn't be included
in the static libc.a. Fixes compile issues for static builds.
|
|
The tests shouldn't include libgcc exception handling functions directly
from libgcc.a when a non-shared gcc compiler is used while compiling
the testcases. These fixes open testsuite regressions found for
ppc and xtensa.
|
|
Remove powerpc64 bits as we only support powerpc32.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Reorder entries alphabetically (architecture name as order
criterium) and remove unused entries.
|
|
|
|
|
|
Enable locale application to be build when utils are
build. Remove useless compile and link warnings.
Default to minimal locale builds.
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
|
|
Similar to musl libc a single libc has many benefits and solves
some open issues with uClibc-ng.
- no pthread_mutex_* weak symbols exported anymore
- applications no longer failing to link when either
-lrt or -lpthread are missing for dynamic and static linking mode
- smaller C library
- slightly better runtime performance
|
|
|
|
Seems better and more stable.
|
|
We do not support 2.4 Linux kernels anyway, and almost
all newer 2.6 kernels should have tgkill syscall.
Cleanup the raise situation, pt-raise.c is unused, sync
raise.c with latest GNU libc.
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
|
|
The code was disabled a while ago in commit:
814b0901f460a246315bfa7933a661f415bdc7fa
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
|
|
Fixes a compile error for samba 4.5.0.
Reported-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
|
Add some definitions and fix some types to make gdb compile
happy.
|
|
[ glibc commit d3c7e68655 ]
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
|
|
The time to run the tests is very high and always subtests
are failing. We need to fix the subtests and see how to reduce
the time the test is running. At the moment it blocks
my regression testing to much.
|
|
elf-fdpic.h or elf-dsbt.h is included by link.h. When C++ program
includes <link.h>, we get following build failure.
../usr/include/bits/elf-fdpic.h: In function 'void* __reloc_pointer(void*, const elf32_fdpic_loadmap*)':
../usr/include/bits/elf-fdpic.h:95: error: invalid use of 'void'
void pointer addition and subtraction is not allowed in C++ as it has
undetermined size, however in C with language extension it is possible
because sizeof void is treated as one byte.
Instead of performing subtraction on void pointers, typecast it to char*
first.
This build failure is detected by Buildroot autobuilder.
http://autobuild.buildroot.net/results/a10/a10ed48e6eb8411a3d8372f57c05fd11130da0e0/
Signed-off-by: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
|
|
A single test with targeting ARM showed that this feature
seems bit rotted. Remove DOMULTI and simplify Makefiles.
|
|
Max ULP for "cos (M_PI_6l * 2.0) == 0.5" in "test-double" sub-test
is set to "0" for ARC. It causes "test-double" test failure.
I realized that this sub-test on ARM gets completely same results.
But it doesn't fails on ARM because max ULP is set to "1" for ARM.
I am wondering, if it was done for any special reason?
Otherwise, set max ULP for "cos (M_PI_6l * 2.0) == 0.5" test to
"1" instead of "0" for ARC.
Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
|
|
|