We compute various values for vpath lookup the first time through

and store them in static variables; however one value (std_dirs)
was not being stored statically so the second time through it was
not set.
Fixes Savannah bug #32511
This commit is contained in:
Paul Smith
2011-09-18 20:52:13 +00:00
parent ef2b0425e7
commit 0369a93825
4 changed files with 38 additions and 41 deletions

View File

@@ -1,50 +1,35 @@
# -*-perl-*-
# -*-perl-*-
$description = "Test the interaction of the -lfoo feature and vpath";
$details = "";
open(MAKEFILE,"> $makefile");
# The Contents of the MAKEFILE ...
print MAKEFILE "vpath %.a a1\n";
print MAKEFILE "vpath %.so b1\n";
print MAKEFILE "vpath % a2 b2\n";
print MAKEFILE "vpath % b3\n";
print MAKEFILE "all: -l1 -l2 -l3; \@echo \$^\n";
# END of Contents of MAKEFILE
close(MAKEFILE);
mkdir("a1", 0777);
mkdir("b1", 0777);
mkdir("a2", 0777);
mkdir("b2", 0777);
mkdir("b3", 0777);
@files_to_touch = ("a1${pathsep}lib1.a",
"b1${pathsep}lib1.so",
"a2${pathsep}lib2.a",
"b2${pathsep}lib2.so",
"lib3.a",
"b3${pathsep}lib3.so");
my @dirs_to_make = qw(a1 b1 a2 b2 b3);
for my $d (@dirs_to_make) {
mkdir($d, 0777);
}
my @files_to_touch = ("a1${pathsep}lib1.a",
"a1${pathsep}libc.a",
"b1${pathsep}lib1.so",
"a2${pathsep}lib2.a",
"b2${pathsep}lib2.so",
"lib3.a",
"b3${pathsep}lib3.so");
&touch(@files_to_touch);
&run_make_with_options($makefile,"",&get_logfile);
run_make_test('
vpath %.h b3
vpath %.a a1
vpath %.so b1
vpath % a2 b2
vpath % b3
all: -l1 -lc -l2 -l3; @echo $^
',
'', "a1${pathsep}lib1.a a1${pathsep}libc.a a2${pathsep}lib2.a lib3.a\n");
# Create the answer to what should be produced by this Makefile
$answer = "a1${pathsep}lib1.a a2${pathsep}lib2.a lib3.a\n";
if (&compare_output($answer,&get_logfile(1)))
{
unlink @files_to_touch;
rmdir("a1");
rmdir("b1");
rmdir("a2");
rmdir("b2");
rmdir("b3");
unlink(@files_to_touch);
for my $d (@dirs_to_make) {
rmdir($d);
}
1;