1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
--- set_soenv.in.orig 2015-01-17 23:35:07.000000000 -0800
+++ set_soenv.in 2015-02-23 16:02:44.000000000 -0800
@@ -359,7 +359,7 @@
elsif ( $platform =~ m/freebsd/ )
{ $BIG_SVX = "TRUE";
$COM = "GCC";
- $COMPATH = '@COMPATH@';
+ $COMPATH = '@COMPATH@' . '/bin';
$CVER = "C300";
$GUI = "UNX";
$GUIBASE = "unx";
@@ -2617,26 +2617,37 @@
my @originalPairs = @_;
my @pairs = @originalPairs;
my @Path = split /$ps/, $oldPath;
+ my @buildPath;
+ my @sysPath;
+ my $elem;
+
+ for $elem (@Path) {
+ if ($elem eq '.' || $elem =~ m'^$SOLARENV/' ||
+ $elem =~ m'/solenv/') {
+ push @buildPath, $elem;
+ } else {
+ push @sysPath, $elem;
+ }
+ }
while (@pairs) {
my $path = shift @pairs;
my $cmd = shift @pairs;
my $to_append = 1;
- my $elem;
if (! -x "$path/$cmd") {
AddWarning ("Missing executable $path/$cmd\n");
}
- for $elem (@Path) {
+ for $elem (@sysPath) {
if ($elem eq $path) {
# print "Hit duplicate path in path; break\n";
$to_append = 0;
last;
}
- if (-f "$elem/$cmd") {
+ if (-f "$elem/$cmd" && ! -l "$elem/$cmd") {
# print "Element already in path ...\n";
- unshift @Path, $path;
+ unshift @sysPath, $path;
$to_append = 0;
last;
} else {
@@ -2644,7 +2655,7 @@
}
}
if ($to_append) {
- push @Path, $path;
+ push @sysPath, $path;
}
}
@@ -2654,14 +2665,14 @@
my $cmd = shift @pairs;
my $realpath;
- $realpath = PathLookup ($cmd, @Path);
+ $realpath = PathLookup ($cmd, @sysPath);
if (!($realpath eq $path)) {
AddWarning ("Path conflict for executables " .
"$path/$cmd against $realpath");
}
}
- return join $ps, CleanupPath (@Path);
+ return join $ps, @buildPath, CleanupPath (@sysPath);
}
#------------------------------------------------------------
|