Henrik Nordstrom wrote:
ons 2009-11-11 klockan 18:38 +1300 skrev Amos Jeffries:
Henriks recent commit to remove one of these on grounds of being "old"
has highlighted a need to document this and perhapse bring you all in on
making the changes.
Haven't removed any, just generalized one to apply to another lib
needing the same conditions..
Thats what I mean. I was de-generalizing them.
A: The squid binary is topping 3.5MB in footprint with many of the small
tool stopping 500KB each. A small but substantial amount of it is
libraries inked but unused. Particularly in the helpers.
Unused libraries uses just a tiny bit of memory for the link table, at
least if built properly (PIC).
With some of the libraries being bunched up when there is a strong link
between, ie "-lresolv -lnsl" in @RESOLVLIB@
Does anyone disagree?
Not with the principle.
What I have been working on is mainly that lots of these have also found
their ways into _DEPENDENCIES rules which is a no-no. System libs must
only be added to _LDADD rules.
Does anyone have other examples of libraries which _need_ to include
other libraries like -lresolv/-lnsl do for Solaris?
-lldap need -llber in some LDAP implementations. But we already deal
with that.
OpenSSL: -lssl -lcrypto -ldl
-lnsl is a bit special as it's needed in pretty much every binary built
and is why it is in XTRA_LIBS.
-lcap should move to it's own variable.
we should probably skip -lbsd on glibc systems. But need it on Solaris
systems and possibly others. Does not hurt on Linux.
-lm is probably needed just about everywhere.
-ldl requirements are very fuzzy and not easy to detect when wrong. On
Linux the proble only shows up when doing a static build as the dynamic
linker handles chain dependencies automatically.
I'm not terribly fussed with Henriks change because the DISK IO stuff is
heavily interlinked. It's "only" an extra build dependency for every
test run. But it grates against my ideologies to see the AIO specific
API testers needing to link against the pthreads libraries and vice-versa.
You are welcome to split the DISK_OS_LIBS variable into AIOLIB and
PTHREADLIB if you prefer. Have no attachment to it, was just that it was
easier to extend & rename AIOLIB than to add yet another variable needed
at the same places. Just keep them out of _DEPENDENCIES rules, and make
sure to add it where needed. Only makes a difference for the testsuite
programs.
Regards
Henrik
Okay. Thanks. ...and Thanks for the extra pointers.
Amos
--
Please be using
Current Stable Squid 2.7.STABLE7 or 3.0.STABLE20
Current Beta Squid 3.1.0.14