summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Configurations/README6
-rwxr-xr-xConfigure11
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.
diff --git a/Configure b/Configure
index b172595ece..67e59a252d 100755
--- a/Configure
+++ b/Configure
@@ -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) {