Age | Commit message (Collapse) | Author |
|
|
|
|
|
installed in target dir, and dont try to copy them again
|
|
mostly related to ELF section ans padding, not code gen.
Resulting reductions in size (only biggest ones are shown)
uClibc.t4 - new, uClibc.t3 - old:
15673 244 92 16009 3e89 uClibc.t4-stdcfg_so/lib/ld-uClibc-0.9.29.so
15673 244 92 16009 3e89 uClibc.t4-stdcfg_so/lib/ld-uClibc.so
15673 244 92 16009 3e89 uClibc.t4-stdcfg_so/lib/ld-uClibc.so.0
15678 244 92 16014 3e8e uClibc.t3-stdcfg_so/lib/ld-uClibc-0.9.29.so
15678 244 92 16014 3e8e uClibc.t3-stdcfg_so/lib/ld-uClibc.so
15678 244 92 16014 3e8e uClibc.t3-stdcfg_so/lib/ld-uClibc.so.0
39910 200 4 40114 9cb2 uClibc.t4-stdcfg_so/lib/libm-0.9.29.so
39910 200 4 40114 9cb2 uClibc.t4-stdcfg_so/lib/libm.so
39910 200 4 40114 9cb2 uClibc.t4-stdcfg_so/lib/libm.so.0
40179 200 4 40383 9dbf uClibc.t3-stdcfg_so/lib/libm-0.9.29.so
40179 200 4 40383 9dbf uClibc.t3-stdcfg_so/lib/libm.so
40179 200 4 40383 9dbf uClibc.t3-stdcfg_so/lib/libm.so.0
234104 1472 5980 241556 3af94 uClibc.t4-stdcfg_so/lib/libc.so.0
234104 1472 5980 241556 3af94 uClibc.t4-stdcfg_so/lib/libuClibc-0.9.29.so
235319 1472 5992 242783 3b45f uClibc.t3-stdcfg_so/lib/libc.so.0
235319 1472 5992 242783 3b45f uClibc.t3-stdcfg_so/lib/libuClibc-0.9.29.so
|
|
|
|
The only code change observed is actually a case
where we were not doing that as needed:
00000000 <__GI_tzset>:
-53 push %ebx
-e8 00 00 00 00 call 6 <__GI_tzset+0x6>
-5b pop %ebx
-81 c3 03 00 00 00 add $0x3,%ebx
- R_386_GOTPC _GLOBAL_OFFSET_TABLE_
6a 00 push $0x0
-e8 fc ff ff ff call 10 <__GI_tzset+0x10>
- R_386_PLT32 time
+e8 fc ff ff ff call 3 <__GI_tzset+0x3>
+ R_386_PC32 __GI_time
3d ff 4e 98 45 cmp $0x45984eff,%eax
0f 9e c0 setle %al
0f b6 c0 movzbl %al,%eax
50 push %eax
-e8 fc ff ff ff call 21 <__GI_tzset+0x21>
+e8 fc ff ff ff call 14 <__GI_tzset+0x14>
R_386_PC32 _time_tzset
58 pop %eax
5a pop %edx
-5b pop %ebx
c3 ret
No mass migration of libc_hidden_proto(foo) planned.
Lets wait for potential fallout first.
|
|
Now it uses dedicated script instead of inline makefile commands,
which helps readability.
It also installs asm[-generic] and linux subdirs from kernel headers
(previously it had to be done separately).
Lastly, it passes each uclibc header thru unifdef, which strips
#ifdef UCLIBC_INTERNAL conditional from headers.
Currently it's a no-op (no such #ifders in tree).
The plan is to have libc_hidden_proto(foo) migrated to headers
and guard them by these #ifdefs.
|
|
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
and add it to arpa/inet.h header.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
by Will Newton <will.newton@gmail.com>
|
|
implementation when built without SHARED flag as reported
by Will Newton <will.newton@gmail.com>
|
|
Poschwatta
|
|
linuxthreads.old.
|
|
|
|
|
|
|
|
|
|
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.
|