Age | Commit message (Collapse) | Author |
|
|
|
By capping max padding to not be bigger than three next insns,
we avoid having ridiculously big NOPs like this one:
53:66 66 66 66 2e 0f 1f nopw %cs:0x0(%rax,%rax,1)
5a:84 00 00 00 00 00
which was bigger than next three insns combined!
Size changes:
text data bss dec hex filename
102 0 0 102 66 x86_64/memcpy.o
102 0 0 102 66 x86_64.old/memcpy.o
90 0 0 90 5a x86_64/mempcpy.o
102 0 0 102 66 x86_64.old/mempcpy.o
210 0 0 210 d2 x86_64/memset.o
242 0 0 242 f2 x86_64.old/memset.o
213 0 0 213 d5 x86_64/stpcpy.o
220 0 0 220 dc x86_64.old/stpcpy.o
428 0 0 428 1ac x86_64/strcat.o
444 0 0 444 1bc x86_64.old/strcat.o
417 0 0 417 1a1 x86_64/strchr.o
418 0 0 418 1a2 x86_64.old/strchr.o
33 0 0 33 21 x86_64/strcmp.o
33 0 0 33 21 x86_64.old/strcmp.o
213 0 0 213 d5 x86_64/strcpy.o
220 0 0 220 dc x86_64.old/strcpy.o
135 0 0 135 87 x86_64/strcspn.o
151 0 0 151 97 x86_64.old/strcspn.o
225 0 0 225 e1 x86_64/strlen.o
233 0 0 233 e9 x86_64.old/strlen.o
140 0 0 140 8c x86_64/strpbrk.o
156 0 0 156 9c x86_64.old/strpbrk.o
135 0 0 135 87 x86_64/strspn.o
151 0 0 151 97 x86_64.old/strspn.o
Also, a few files got their .text alignment relaxed from 16 to 8 bytes,
which reduces padding at link time.
|
|
e.g. testb $0xff, %cl -> testb %cl, %cl
|
|
and marked with libc_hidden_proto/def(),
or not be exported in .h files
and be hidden (or even static if possible).
We have five functions which violate this. Fixing:
netdb.h: export ruserpass()
rpc/rpc.h: export xdr_accepted_reply() and xdr_rejected_reply()
make inet_ntoa_r static function (it is not exported in any .h file)
make _time_tzset hidden function (it is not exported in any .h file)
|
|
|
|
(pointed out by Peter S.Mazinger)
|
|
|
|
|
|
|
|
vprintf_internal, so that:
* vprintf() does locking and __STDIO_STREAM_TRANS_TO_WRITE thing,
then calls vprintf_internal
* vsnprintf, vdprintf.c, vasprintf.c use
vprintf_internal directly
This makes sprintf faster (since it doesn't do any locking)
and stops it from pulling in fseek in static compile.
|
|
|
|
The attached patch adds support for compiling arm uClibc as pure Thumb code.
This is needed because some recent ARM codes do not implement traditional ARM
mode. Specifically:
* Cortex-M1 - An extremely minimal FPGA based core that only implements
Thumb-1 (aka ARMv6-M).
* Cortex-M3 - A Thumb-2 only ARMv7-M core.
Most of uClibc already builds in Thumb mode, all that is left are a handful of
assembly bits.
Tested on arm-uclinuxeabi.
|
|
|
|
|
|
Also, remove the hidden __memset symbol from memset.S
|
|
Found a problem with the AVR32 optimized bzero() code. Due to a
missing #include, it actually generated no code.
|
|
|
|
Added related test cases.
Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Hacked-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
The following definitions in getaddrinfo.c seem redundant as they _are_
defined in the public netdb.h header, contrary to the comment. AI_DEFAULT
is not, however it is not used in the file either so can be safely
removed.
|
|
Signed-off-by: Chris Zankel <chris@zankel.net>
|
|
This patch uses the HIDDEN_JUMPTARGET instead of the __GI_ prefix in AVR32
assembler files. This is done to follow the code style in uClibc.
Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
|
|
in libc to avoid having to place executable code on stack.
Signed-off-by: Chris Zankel <chris@zankel.net>
|
|
skinkie in #2194
|
|
|
|
(patch by Bernd Schmidt <bernds_cb1 at t-online.de>)
|
|
didn't provide one (Xtensa, for example, is such an architecture).
Signed-off-by: Chris Zankel <chris@zankel.net>
|
|
when AI_NUMERICSERV flag set.
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
|
|
|
|
|
|
allocations, dma_memcpy to move stuff between L1 and main memory, and a new
structure to describe the global data in L1 scratchpad memory.
|
|
In file included from toolchain_build_i386/gcc-3.4.6/libiberty/hashtab.c:49:
build_i386/staging_dir/i386-linux-uclibc/sys-include/malloc.h:193: error: ISO C forbids data definition with no type or storage class
|
|
We use the compiler-driver and not ld.
|
|
a problem where the linker was trying to use the wrong symbol name for the
init function.
Define SYMBOL_PREFIX as _ in Rules.mak for h8300, bfin, i960,
microblaze, and v850. Add -D__UCLIBC_UNDERSCORES__ in CFLAGS for targets
which define SYMBOL_PREFIX as _. Remove defines and undefs from
uClibc_arch_features.h of each target.
Add $(SYMBOL_PREFIX) to __uClibc_init when passed by ld option -init.
|
|
__dns_lookup(). This avoids segmentation faults when more than 1024
file descriptors are used by an application.
|
|
|
|
|
|
MontaVista noticed that when their kernels were configured to trap on unaligned
access gethostbyname_r could mysteriously crash. I tracked this down to an
unaligned buffer being passed to gethostbyname_r from some other part of uClibc
(afraid I don't remember where from any more). We have to pad the beginning of
the buffer to a pointer alignment before we store pointers in it.
|
|
doing double negatives
|
|
This was one of the stragglers still bent on __uClibc_start_main
utilization, now it's only FR-V.
|
|
|
|
execls fail by simply not releasing the memory reserved for the arguments of children processes
|
|
|
|
generalizes what Blackfin was already doing)
|
|
The following patches add support for the Xtensa processor architecture
to uClibc. They are based on a recent SVN checkout (12/05/2007).
The first patch (attached to this post) adds Xtensa support to various
shared configuration and make files. The following patches then include
the Xtensa specific files and directories.
I welcome any feedback and would appreciate it if you could include the
patches into the mainline tree. I am certainly committed to maintain the port.
Bob Wilson was kind enough to review the patches.
Some notes about the architecture: Xtensa is a configurable and
extensible processor architecture developed by Tensilica. For more
information, please visit: www.linux-xtensa.org.
|
|
|
|
|
|
|
|
|
|
I noticed, that in libc/misc/syslog/syslog.c when the syslog socket is opened, the close-on-exec flag is not set, as it is in gnu libc.
This enables that behavior.
|
|
|