Age | Commit message (Collapse) | Author |
|
Some state and registers are missing from setjmp/longjmp handling.
Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
The warning was repeated for every .c file which is including
this header:
./ldso/include/dl-hash.h: In function '_dl_find_hash':
./ldso/include/dl-hash.h:150: warning: unused parameter 'tpntp'
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Tested: ran testsuite
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
It is deemed too unsafe. Quoting Timo:
If I'm building with "-fPIC -pg" it instruments all C functions with
profiler stuff which is called via PLT and causes EBX reloads
--> crash
-fno-omit-frame-pointer is sometimes useful for profiling too
--> crash
Also the upcoming -fsplit-stack will be broken by this too (that might
need additional uclibc support though).
And I'm pretty sure there's also other similar compiler features.
There's no predefined #defines in gcc for any of these.
What I'm trying to say that there are *numerous* situations when the
compiler can create stack frame for you without you ever knowing it. And
if you want to do a tail jump, you really should be doing it from .S
file where you control fully the prologue/epilogue code. (GCC naked
attribute does not seem to work on x86.)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Thanks, Timo!
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
break it
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
These two failures are fixed:
Failure: Test: ilogb (0.0) == FP_ILOGB0 plus exceptions allowed
Failure: Test: ilogb (NaN) == FP_ILOGBNAN plus exceptions allowed
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
These failures no longer happen:
Failure: Test: scalb (2.0, 0.5) == NaN plus invalid exception
Failure: Test: scalb (3.0, -2.5) == NaN plus invalid exception
Failure: Test: rint (0.5) == 0.0
Failure: Test: rint (1.5) == 2.0
Failure: Test: rint (2.5) == 2.0
Failure: Test: rint (3.5) == 4.0
Failure: Test: rint (4.5) == 4.0
Failure: Test: rint (-0.5) == -0.0
Failure: Test: rint (-1.5) == -2.0
Failure: Test: rint (-2.5) == -2.0
Failure: Test: rint (-3.5) == -4.0
Failure: Test: rint (-4.5) == -4.0
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Fixed failures:
Failure: Test: pow (1, NaN) == 1
Failure: Test: pow (1, inf) == 1
Failure: Test: pow (-1, inf) == 1
Failure: Test: pow (1, -inf) == 1
Failure: Test: pow (-1, -inf) == 1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
This error is gone:
Failure: Test: modf (NaN, &x) == NaN
Result:
is: -0.00000000000000000000e+00 -0
should be: nan nan
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
test/math was not running at all, presume it has bit rotted:
It was trying to run libm-test.c as if it is a binary.
It was looking for libm-test-ulps (file with allowed
errors in lower bits) in arch-specific dirs which do not exist
in uclibc, as a result wrong file (libm-test.inc) was used instead.
Test failure was not showing the error result, user had to
fish it out from some .out files.
I added libm-test-ulps-ARCH files from recent glibc,
this filtered out a lot of false positives.
For example, cosf(M_PI_6l * 4.0) ideally should be -0.5,
we are getting -0.50000005047356477217, and this isn't
a failure (the difference is one lowest bit of mantissa).
"make check UCLIBC_ONLY=1 VERBOSE=1" still fails,
but not as catastrophically as before.
For the record, the failure occurs on the stage where we check
32-bit float functions, these tests fail:
Failure: Test: modf (NaN, &x) == NaN
Failure: Test: ilogb (NaN) == FP_ILOGBNAN plus exceptions allowed
Failure: Test: scalb (2.0, 0.5) == NaN plus invalid exception
Failure: Test: scalb (3.0, -2.5) == NaN plus invalid exception
Failure: Test: scalb (0, NaN) == NaN
Failure: Test: scalb (1, NaN) == NaN
Failure: Test: scalb (0, inf) == NaN plus invalid exception
Failure: Test: scalb (-0, inf) == NaN plus invalid exception
Failure: Test: scalb (1, inf) == inf
Failure: Test: scalb (-1, inf) == -inf
Failure: Test: scalb (inf, -inf) == NaN plus invalid exception
Failure: Test: scalb (-inf, -inf) == NaN plus invalid exception
Failure: Test: scalb (1, NaN) == NaN
Failure: Test: scalb (0, NaN) == NaN
Failure: Test: scalb (inf, NaN) == NaN
Failure: Test: pow (1, NaN) == 1
Failure: Test: pow (1, inf) == 1
Failure: Test: pow (-1, inf) == 1
Failure: Test: pow (1, -inf) == 1
Failure: Test: pow (-1, -inf) == 1
Failure: Test: rint (0.5) == 0.0
Failure: Test: rint (1.5) == 2.0
Failure: Test: rint (2.5) == 2.0
Failure: Test: rint (3.5) == 4.0
Failure: Test: rint (4.5) == 4.0
Failure: Test: rint (-0.5) == -0.0
Failure: Test: rint (-1.5) == -2.0
Failure: Test: rint (-2.5) == -2.0
Failure: Test: rint (-3.5) == -4.0
Failure: Test: rint (-4.5) == -4.0
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
An architecture that _may_ have a MMU (and thus implements
the msync syscall), but for which the kernel and uClibc are built as
noMMU, we have a stub for msync.
Thanks to Steven J. Magnani for noticing.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
If there was an error during syscall then after it's completion a3
register holds a non-zero value and v0 holds an actual error code which
should be saved in errno. This can be achieved by calling
__syscall_error with the value from v0 as a parameter. So this value
should be stored in a0, but the appropriate assembly instructions are
missing. Fixed this now by adding "move a0, v0".
I think it was once fixed by 58c5f8ba4cdf62342d05a546d15404cbbb3c4e07
but then something went wrong. Again...
Signed-off-by: Alexander Gordeev <lasaine@lvk.cs.msu.su>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
text data bss dec hex filename
- 318 4 0 322 142 libc/pwd_grp/lckpwdf.o
+ 312 4 0 316 13c libc/pwd_grp/lckpwdf.o
- 166 0 1 167 a7 libc/stdlib/abort.o
+ 157 0 1 158 9e libc/stdlib/abort.o
- 42 0 0 42 2a libc/sysdeps/linux/common/pause.o
+ 27 0 0 27 1b libc/sysdeps/linux/common/pause.o
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
...or rather, it WILL BE code shrink when gcc become clever enough
to not emit a second, useless XORing of ebx:
31 db xor %ebx,%ebx
85 c0 test %eax,%eax
74 11 je 73 <__GI_sleep+0x73>
31 db xor %ebx,%ebx <=== ?!
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
__USE_EXTERN_INLINES was unused and had bit-rotted, had to fix it
when it didn't work as intended at first.
text data bss dec hex filename
- 168 0 0 168 a8 libc/unistd/sleep.o
+ 146 0 0 146 92 libc/unistd/sleep.o
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
text data bss dec hex filename
- 197 0 0 197 c5 libc/unistd/sleep.o
+ 168 0 0 168 a8 libc/unistd/sleep.o
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
GCC can emit prologue/epilogue code for the functions in various
different cases:
- frame pointers
- PIC build (to load ebx for indirect calls/jumps)
- forced stack smashing protection
If we used jump in such cases, we'd corrupt the call stack and
crash.
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
It can be easily reconstructed, since it's obvious
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
Use less stack by using same "sigset_t set" object for new and saved
signal set, remove redundant clearing of set, and do not save/restore
errno around sigprocmask(SIG_SETMASK) - it never changes it.
While at it, improve comments and make code style consistent
across sleep.c file.
text data bss dec hex filename
- 242 0 0 242 f2 libc/unistd/sleep.o
+ 197 0 0 197 c5 libc/unistd/sleep.o
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
No code changes according to objdump.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
objdump confirms that I did not mess it up.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
Example:
--ppfs->maxposarg;
Verified with objdump that no code is changed
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
God knows this file is hard to read as-is, some readability improvement
is in order.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
We increase line buffer size, reduce MAXALIASES and make sure we don't
segfault when there are too manuy aliases in /etc/protocols.
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Reduce MAXALIASES to something lower. There will probably never be
need for more than 1 alias but we allow a few extra.
While here we alos fix segfault when there are too many aliases.
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Don't try to be smart by dynamically realloc buffersize as it doesn't
work. Instead, be simple and allocate a buffer big enough.
This fixes a memory leak when calling getserv{ent,byname,byport}
multiple times.
To save memory we reduce number of max aliases. We seldomly will need
more than 1 anyways. While here, fix segfault that happened if there
were too many aliases.
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
If line is longer then size of given buffer and buffer is not allocated by
the config parser itself, then discard rest of line.
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
We must always initialize line pointer since data pointer might
have changed due to a realloc (in getserv.c for example).
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
This fixes issue introduced by 72e1a1ce186c39f07282398e2af9eb0253e60f15
This should also fix the following testcase to exit with error rather
than cause an endless loop.
int main(void) {
if (getservbyname("non-existing", "udp") == NULL)
err(1, "getservbyname");
return 0;
}
Reported by Pirmin Walthert
http://lists.uclibc.org/pipermail/uclibc/2010-August/044277.html
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
We need to update the parser->line pointer on realloc and do not
initialize the token array til after the potensial realloc in
bb_get_chunk_with_continuation().
While here, also replace a realloc() with malloc() where pointer always
is NULL.
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
return value of pipe on success is supposed to be 0
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
|
Protected symbols should not be overridden by
symbols from other modules. Such symbols are exported
i.e. globally visible, but references from whithin
defining modules are satisfied locally.
Signed-off-by: Salvatore Cro <salvatore.cro@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
No functional changes, just a code tidy-up.
Please keep them sorted in future changes.
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
NPTL library needs both madvise and statfs symbols, that are guarded
by UCLIBC_LINUX_SPECIFIC option. This fix provides these symbols too
when NPTL is used, indipendently by UCLIBC_LINUX_SPECIFIC choice.
Otherwise libpthread link fails as below:
LD libpthread-0.9.32-git.so
libpthread/nptl/libpthread_so.a(pthread_create.oS): In function `__free_tcb':
pthread_create.c:(.text+0x1184): undefined reference to `madvise'
libpthread/nptl/libpthread_so.a(sem_open.oS): In function `__where_is_shmfs':
sem_open.c:(.text+0x764): undefined reference to `statfs'
collect2: ld returned 1 exit status
make: *** [lib/libpthread.so] Error 1
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
For those archs that provide non multiplexed socket calls
it possible to implement the lib C wrappers without calling the
multi-purpose __socketcall. For a subset of these functions that
are cancellation point, it needs to correctly handle cancellation.
Signed-off-by: Francesco Rundo <francesco.rundo@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
All archs have now moved their generic sysdep.h header from
sysdeps/generic to sysdeps/common directory, so it is possible
to remove the sysdeps/generic directory from the include list.
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Add canonicalize_file_name function and its related tests.
Required by elfutils and coreutils (readlink).
Signed-off-by: Salvatore Cro <salvatore.cro@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|