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.
|
|
|
|
|
|
|
|
|
|
Either by first compiling objects and linking those or by just passing
the source to create the desired binary (this patchlet does the latter).
Fixes cosmetic glitch by just not building individual .o (in pwd, at least).
|
|
Revert r21503 and redo more cleanly.
|
|
We have to generate sysnum.h to satisfy all includes of ldso.c
|
|
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.
|
|
mremap, instead of __USE_MISC according to glibc. Missing prototype was spotted out by Peter Mazinger
|
|
|
|
|
|
|
|
and TLS dynamic linker support
|
|
|
|
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.
|
|
|
|
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
SIgned-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
While compiling trunk on ARM with GCC 4.2 and enabling LDSO_GNU_HASH_SUPPORT I stumbled upon this problem.
GCC made a call to libgcc function __aeabi_uidivmod()->__div0()->__raise() and raise is not yet compiled in at the time of compiling ldso
so I got well known undefined symbol __raise problem
This patch uses the do_rem () macro to do the same operation.
|
|
Remove 'find' command. It makes cleanup faster too.
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
|
|
|
|
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.
|
|
|
|
Jacobowit <dan@codesourcery.com>
|
|
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>)
|
|
compilation on Blackfin.
|
|
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>
|
|
|
|
Signed-off-by: Chris Zankel <chris@zankel.net>
|
|
when building MIPS that looks like this:
libc/string/mips/memcpy.S:156:1: pasting "memcpy" and ":" does not give
a valid preprocessing token
make[1]: *** [libc/string/mips/memcpy.os] Error 1
Even if this does not cause an error on other architectures, this option
should not be having an effect on preprocessed assembly code.
|