From: Richard Levitte Date: Tue, 9 Jan 2018 18:51:19 +0000 (+0100) Subject: Configure: try to make sure every config target name is unique X-Git-Tag: OpenSSL_1_1_0h~140 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=bda1af6d5f6f275c78d3145a03a208d8bc056553;p=oweals%2Fopenssl.git Configure: try to make sure every config target name is unique Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/5047) (cherry picked from commit 225f980d22dfe66aa3945c21609042c32284e61c) --- diff --git a/Configurations/README b/Configurations/README index eecf1ea72e..6e13645491 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 44aecc7859..ecbebcce77 100755 --- a/Configure +++ b/Configure @@ -2271,6 +2271,17 @@ sub read_config { eval $content; warn $@ if $@; } + 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) {