try to cope with people passing /path/libfoo.so.X.Y instead of -lfoo
if a static library has been found, don't search for it again.
This commit is contained in:
parent
cd256c4e71
commit
3628fb6ff2
@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
# $OpenBSD: libtool,v 1.109 2009/10/15 11:26:08 steven Exp $
|
# $OpenBSD: libtool,v 1.110 2009/10/15 13:46:23 steven Exp $
|
||||||
|
|
||||||
# Copyright (c) 2007-2009 Steven Mestdagh <steven@openbsd.org>
|
# Copyright (c) 2007-2009 Steven Mestdagh <steven@openbsd.org>
|
||||||
#
|
#
|
||||||
@ -318,6 +318,16 @@ sub parse_linkargs1
|
|||||||
}
|
}
|
||||||
push(@$result, $a);
|
push(@$result, $a);
|
||||||
push(@$deplibs, $fulla) if ($libdir ne '');
|
push(@$deplibs, $fulla) if ($libdir ne '');
|
||||||
|
} elsif ($a =~ m/(\S+\/)*(\S+)\.so(\.\d+){2}/) {
|
||||||
|
(my $key = $2) =~ s/^lib//;
|
||||||
|
my $d = main::abs_path(main::dirname($a));
|
||||||
|
$dirs->{$d} = 1;
|
||||||
|
if (!exists $libs->{$key}) {
|
||||||
|
$libs->{$key} = Library->new($key);
|
||||||
|
}
|
||||||
|
# not really normal argument
|
||||||
|
# -lfoo should be used instead, so convert it
|
||||||
|
push(@$result, "-l$key");
|
||||||
} else {
|
} else {
|
||||||
push(@$result, $a);
|
push(@$result, $a);
|
||||||
}
|
}
|
||||||
@ -892,7 +902,11 @@ sub link
|
|||||||
}
|
}
|
||||||
my $l = $libs->{$k};
|
my $l = $libs->{$k};
|
||||||
# here we find shared or static libraries
|
# here we find shared or static libraries
|
||||||
$l->find($dirs, $self->{shared});
|
if (defined $l->{fullpath} && $l->{fullpath} =~ m/\.a$/) {
|
||||||
|
# static library was registered already, don't search
|
||||||
|
} else {
|
||||||
|
$l->find($dirs, $self->{shared});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
my @libfiles = values %$libs;
|
my @libfiles = values %$libs;
|
||||||
|
Loading…
Reference in New Issue
Block a user