Age | Commit message (Collapse) | Author |
|
* when looking for a library, also look for an unversioned solib before falling
back to using the static one (which may not even exist)
* when a library has no libtool file (.la) with a proper dependency_libs entry,
libtool(1) falls back to using objdump to determine the depencencies;
however this works only if dependencies are in standard search paths; fix it
by looking at the RPATH entry in objdump then add non standard dirs to
search_dirs and -rpath
inputs from and ok espie@, ok jasper@
|
|
|
|
Before, libtool first searched all directories for .la files, and if
search failed, switched to actual libraries (.so/.a). But the correct way
is to check each directory first for .la, then for .so/.a.
The problem was reported by ajacoutot@ who verified that the patch fixes
his case and okay'ed the initial diff. And jasper@'s bulk uncovered a bug
which is fixed now (verified by another bulk).
|
|
LT::UList->new() instead of calling tie() manually. As a bonus, few
extra lines in actual code go away.
okay espie@ who still thinks that I test things _before_ commit
|
|
|
|
ajacoutot@, me and probably others were seeing. No fallout in bulk build.
Input from espie@ and ajacoutot@.
Prodding by ajacoutot@
Bulk test by jasper@
|
|
libraries. Until now we only did that for bin programs, but some libs
can also depend on other libs which aren't in the standard search path.
passed a full ports bulk (thanks jasper@)
ok jasper@ sthen@
|
|
OK and additional changes from espie@
|
|
probably be reworked and simplified in the future anyway...
ok espie@
|
|
ok miod@
|
|
ok miod@
|
|
|
|
method that does all the work to produce the right options (one option,
so that the *.ver file contains all useful information).
Have to cater to regexp: in particular, make sure to nm on every object
and static library we might need, so we don't lose anything.
Allow for the result to be empty (since some projects use -export-symbols-regex
everywhere, *including on binaries with empty symbol lists*)
should now be clean portswise.
As usual, a non working option means lots of weird fuck-ups to fix first...
thx to millert@ for the hint, aja,jasper,landry for comments and testing.
|
|
output slightly more debug info
|
|
|
|
real option -export-symbols.
Instead of blindly passing that one to the linker, error out beforehand,
so that people know the problem IS libtool usage and not our program.
(as exemplified by Todd Fries on ldns).
|
|
as found out by sebastia@ and used during 5.2 vax package build...
no ill side-effects so far, so do this as a stopgap measure
(matthieu@ reports that our libtool is not yet very good for static-only
arches).
|
|
|
|
|
|
|
|
|
|
linking.
(and always load basic linker class when we're actually linking)
Start making a proper "library stash class".
|
|
|
|
Still fucks up order somehow...
|
|
for a separate file
|
|
|
|
|
|
make sure -L dir will error out.
"cute" gnu libtool: -x c will vanish from linker arguments, but only
in library linking-mode.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
otherwise I get bogus bug-reports from nitwits
|
|
|
|
to standard ldconfig search dirs...
Of course, ld complains because it doesn't have them in its standard
search dir. BUT there's an option -rpath-link designed just for that
(look up needed objects during compile and trust the end result to
find them).
So use that for ldconfig directories... so that xcb can link without
needing to go have a look at the NEEDED list, but without encoding
standard rpaths in the resulting binary...
Also, put all the junk that needs -Wl together so we can add one single
-Wl,-rpath,foo,-rpath-link,foo2 thingy...
|
|
|
|
|
|
|
|
having two methods that do completely different things with the same name (!)
is evil...
|
|
part of $gp as they should be...
Oh, and create an actual linker object for later.
|
|
|
|
|
|
make that a somewhat more "real" object...
|
|
in --mode=compile
|