Age | Commit message (Collapse) | Author |
|
as documented in the function api
|
|
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"
I've investigated and found that the cause is that a literal '0' is being passed into a block of complex assembler macrology that is only prepared to deal with register names - '%eax', etc.
In turn, that seems to be because of a typo in the GCC register constraints. The constraints for 2 and 3-argument syscalls includes a "C" constraint. To gcc, "C" means an SSE floating point constant -- an unlikely element in a syscall. I suspect the author meant to type "S" (%esi).
|
|
getcwd syscall has an off-by-one allocation bug. As a result, sometimes the returned string has garbage at the end.
|
|
|
|
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
|
|
|
|
after having added memset.
Thanks to Peter Mazinger for pointing this out.
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
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.
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
|
|
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.
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
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).
|
|
|
|
|
|
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.
|
|
|
|
__bswap_16 could not assume that it's zero extended when an unsigned short int is loaded into the data register.
|
|
create these for deleted entries in .eh_frame.
|
|
|
|
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.
|
|
|
|
common directory where SHMLBA = __getpagesize()
This patch fixes the issue.
Khem Raj
MontaVista Software Inc.
|
|
<hcegtvedt@atmel.com>
|
|
|
|
fprintf is considered failing if the return is less than 0
|
|
Jean-Christian de Rivaz writes:
The attached patch solve an issue I faced while using the libdbus-glib
waiting for a D-Bus message or the end of a glib timer at the same time.
This specific case of use generate a poll call with a zero timeout. On
platformes with the glibc a zero timeout poll return immetiately even if
there is no file descriptor event. But on platformes with uClibc a zero
timeout poll block until a file descriptor event occurs.
|
|
- 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,")
|
|
|
|
This wants a stub_enosys(readahead) line later on, like many, many others need..
|
|
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.
Now uClibc will continue reading, even if the first correct entry name, but wrong IP
type fails. Thus, allowing a second correct entry name with correct IP type
will result in a name resolve.
Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
to copy relocs
|
|
suggested by Natanael Copa
harvested from: http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/92880
|
|
I got the library to compile with the attached patches, though dynamic
loader crashes early.
In buildroot I changed the architecture name by hand from sparc to
sparc64, otherwise the compiler produced 32-bit files with V9 (64-bit)
instructions. This configuration is not supported by QEMU, so I aimed
for pure 64-bit. I think Sparc64 option needs to be added to
buildroot.
The _Qp_ ops seem to be required by the ABI. This and setjmp patches
are just hacks to get the compilation further. The _Qp_ ops can be
found in glibc, would it be OK to use those?
V9 assembler requires declarations for global register use.
The mem* functions in sparc32 directory did not work. They are
actually used only by the hybrid 32-bit + V9 CPU configuration.
|
|
|
|
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.
|
|
AC_CHECK_LIB() to see if a function exists rather than checking the headers
|
|
(spotted by Peter S. Mazinger <ps.m@gmx.net>)
|
|
replace "buf = malloc(BUFSIZ); if (!buf) abort();" by __uc_malloc
elsewhere.
With last 7 patches together uclibc has 3k of static data total
with fairly big .config and with 2k being used for 2 x BUFSIZ stdio buffer:
text data bss dec hex filename
114 132 2048 2294 8f6 _stdio.o (ex lib/libc.a)
total data 593
total bss 3062
|
|
|