Configure: disallow the mixture of compiling flags and env / make variables
Note that this might give surprising results if someone forgets an environment variable that has been set previously. Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5534)
This commit is contained in:
parent
310f28df2e
commit
b92013602b
2 changed files with 19 additions and 25 deletions
20
Configure
20
Configure
|
@ -621,10 +621,10 @@ while (@argvcopy)
|
||||||
{
|
{
|
||||||
$user{$1} = ref $user{$1} eq "ARRAY" ? [] : undef;
|
$user{$1} = ref $user{$1} eq "ARRAY" ? [] : undef;
|
||||||
}
|
}
|
||||||
if (exists $useradd{$1})
|
#if (exists $useradd{$1})
|
||||||
{
|
# {
|
||||||
$useradd{$1} = [];
|
# $useradd{$1} = [];
|
||||||
}
|
# }
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -891,6 +891,18 @@ while (@argvcopy)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (grep { scalar @$_ > 0 } values %useradd) {
|
||||||
|
my $detected_env = join(', ', grep { @{$useradd{$_}} || env($_) }
|
||||||
|
sort keys %useradd);
|
||||||
|
if ($detected_env) {
|
||||||
|
die <<"_____";
|
||||||
|
***** Mixing env / make variables and additional compiler/linker flags as
|
||||||
|
***** configure command line option is not permitted.
|
||||||
|
***** Affected env / make variables: $detected_env
|
||||||
|
_____
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
foreach (keys %user) {
|
foreach (keys %user) {
|
||||||
my $value = env($_);
|
my $value = env($_);
|
||||||
$value //= defined $user_synonyms{$_} ? env($user_synonyms{$_}) : undef;
|
$value //= defined $user_synonyms{$_} ? env($user_synonyms{$_}) : undef;
|
||||||
|
|
24
INSTALL
24
INSTALL
|
@ -581,30 +581,12 @@
|
||||||
RCFLAGS Flags for the Windows reources manipulator.
|
RCFLAGS Flags for the Windows reources manipulator.
|
||||||
RM The command to remove files and directories.
|
RM The command to remove files and directories.
|
||||||
|
|
||||||
These can be mixed with flags given on the command line.
|
These cannot be mixed with compiling / linking flags given
|
||||||
Any variable assignment resets any corresponding flags
|
on the command line. In other words, something like this
|
||||||
given before it, so for example:
|
isn't permitted.
|
||||||
|
|
||||||
./config -DFOO CPPFLAGS=-DBAR -DCOOKIE
|
./config -DFOO CPPFLAGS=-DBAR -DCOOKIE
|
||||||
|
|
||||||
Will end up having 'CPPFLAGS=-DBAR -DCOOKIE'.
|
|
||||||
|
|
||||||
Here is how the flags documented above are collected as
|
|
||||||
augmentation of these variables:
|
|
||||||
|
|
||||||
-Dxxx xxx is collected in CPPDEFINES
|
|
||||||
-Ixxx xxx is collected in CPPINCLUDES
|
|
||||||
-Wp,xxx collected in CPPFLAGS
|
|
||||||
-Lxxx collected in LDFLAGS
|
|
||||||
-lxxx collected in LDLIBS
|
|
||||||
-Wp,xxx collected in LDLIBS
|
|
||||||
-rpath xxx collected in LDLIBS
|
|
||||||
-R xxx collected in LDLIBS
|
|
||||||
-framework xxx collected in LDLIBS
|
|
||||||
-static collected in LDLIBS
|
|
||||||
-xxx collected in CFLAGS
|
|
||||||
+xxx collected in CFLAGS
|
|
||||||
|
|
||||||
reconf
|
reconf
|
||||||
reconfigure
|
reconfigure
|
||||||
Reconfigure from earlier data. This fetches the previous
|
Reconfigure from earlier data. This fetches the previous
|
||||||
|
|
Loading…
Reference in a new issue