On Monday, November 26, 2012 12:21:55 PM Miloslav Trmac wrote:
----- Original Message -----
> > If I understand correctly it's only adding arch detection and syscall
> > tables to ausyscall. Why are these syscall table conditional?
>
> To reduce the number of text relocations in libaudit. Libaudit links
> against a number of applications and text relocations eats memory and
> increases startup time.
Is that really an issue with the current code? The gentab.c code was
designed to avoid text relocations.
I guess not
# relinfo.pl /lib64/libaudit.so.1.0.0
/lib64/libaudit.so.1.0.0: 45 relocations, 35 relative (77%), 60 PLT entries, 2
for local syms (3%), 97 users
# relinfo.pl /home/sgrubb/working/BUILD/audit/lib/.libs/libaudit.so.1.0.0
/home/sgrubb/working/BUILD/audit/lib/.libs/libaudit.so.1.0.0: 45 relocations,
35 relative (77%), 56 PLT entries, 2 for local syms (3%), 0 users
However, it does trim about 14k off libaudit by not compiling these in.
At least on x86_64 (which, true, is especially well-designed for
this),
there are no text relocations in libaudit nor libauparse, whether
--with-alpha or --with-armeb are used or not. In fact the number of
relocations of any kind is exactly the same in both cases.
Any one care to retest this on a different architecture, e.t. 32-bit x86?
FWIW, at least the attached patch was necessary to build with --with-alpha
--with-armeb.
Applied. Thanks.
-Steve