Age | Commit message (Collapse) | Author |
|
|
|
rather than the public weak ones so that the libc->libpthread forwarding code is able to work properly
this should fix the case where libpthread.so is not linked directly, but rather via another library:
app -> links to libfoo.so -> links to libpthread.so
and any function (like readdir_r) that does:
__UCLIBC_MUTEX_LOCK()
__UCLIBC_MUTEX_UNLOCK()
|
|
|
|
for 2.4 kernels.
|
|
returns NULL (the buffer contents is undefined);
also check errno more thoroughly (bugs were seen slipping through)
|
|
|
|
It is "make install_kernel_headers" now.
|
|
|
|
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
|
|
Saves several 100 bytes
|
|
- synch F_LINUX_SPECIFIC_BASE related fcntls for all arches
|
|
|
|
|
|
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
|
|
- pull bits/fcntl.h from glibc (Timo Teräs)
|
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|