diff options
author | Richard Levitte <levitte@openssl.org> | 2018-01-09 19:51:19 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2018-01-09 19:51:19 +0100 |
commit | 225f980d22dfe66aa3945c21609042c32284e61c (patch) | |
tree | 03d3490582659a89c2fd8626179acf27d01fe717 | |
parent | 8e403a79b0e679c8df41a9686006c5fe052d79bd (diff) |
Configure: try to make sure every config target name is unique
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5047)
-rw-r--r-- | Configurations/README | 6 | ||||
-rwxr-xr-x | Configure | 11 |
2 files changed, 16 insertions, 1 deletions
diff --git a/Configurations/README b/Configurations/README index 9f31dfcd9e..9d5dc5c55c 100644 --- a/Configurations/README +++ b/Configurations/README @@ -18,10 +18,14 @@ configuration in diverse ways: Configurations of OpenSSL target platforms ========================================== -Target configurations are a collection of facts that we know about +Configuration targets are a collection of facts that we know about different platforms and their capabilities. We organise them in a hash table, where each entry represent a specific target. +Note that configuration target names must be unique across all config +files. The Configure script does check that a config file doesn't +have config targets that shadow config targets from other files. + In each table entry, the following keys are significant: inherit_from => Other targets to inherit values from. @@ -2381,6 +2381,17 @@ sub read_config { %targets = read_eval_file($fname); } + my %preexisting = (); + foreach (sort keys %targets) { + $preexisting{$_} = 1 if $table{$_}; + } + die <<"EOF", +The following config targets from $fname +shadow pre-existing config targets with the same name: +EOF + map { " $_\n" } sort keys %preexisting + if %preexisting; + # For each target, check that it's configured with a hash table. foreach (keys %targets) { |