Browse Source

Rework building: Get rid of old %unified_info structures

Now that we have the names of libraries on different systems
established through platform modules, we can remove the old structure
to establish the same thing, i.e. $unified_info{sharednames} and
$unified_info{rename}.  That means removing support for the RENAME and
SHARED_NAME keywords in build.info as well.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/7473)
Richard Levitte 5 years ago
parent
commit
f5fb6f0543
4 changed files with 14 additions and 163 deletions
  1. 0 26
      Configurations/README
  2. 1 2
      Configurations/common.tmpl
  3. 13 103
      Configure
  4. 0 32
      build.info

+ 0 - 26
Configurations/README

@@ -446,23 +446,6 @@ support building static libraries and DLLs at the same time, so using
 static libraries on Windows can only be done when configured
 static libraries on Windows can only be done when configured
 'no-shared'.
 'no-shared'.
 
 
-One some platforms, shared libraries come with a name that's different
-from their static counterpart.  That's declared as follows:
-
-    SHARED_NAME[libfoo]=cygfoo-{- $config{shlibver} -}
-
-The example is from Cygwin, which has a required naming convention.
-
-Sometimes, it makes sense to rename an output file, for example a
-library:
-
-    RENAME[libfoo]=libbar
-
-That line has "libfoo" renamed to "libbar".  While it makes no
-sense at all to just have a rename like that (why not just use
-"libbar" everywhere?), it does make sense when it can be used
-conditionally.  See a little further below for an example.
-
 In some cases, it's desirable to include some source files in the
 In some cases, it's desirable to include some source files in the
 shared form of a library only:
 shared form of a library only:
 
 
@@ -571,15 +554,6 @@ conditions based on something in the passed variables, for example:
       SOURCE[libfoo]=...
       SOURCE[libfoo]=...
     ENDIF
     ENDIF
 
 
-or:
-
-    # VMS has a cultural standard where all libraries are prefixed.
-    # For OpenSSL, the choice is 'ossl_'
-    IF[{- $config{target} =~ /^vms/ -}]
-     RENAME[libcrypto]=ossl_libcrypto
-     RENAME[libssl]=ossl_libssl
-    ENDIF
-
 
 
 Build-file programming with the "unified" build system
 Build-file programming with the "unified" build system
 ======================================================
 ======================================================

+ 1 - 2
Configurations/common.tmpl

@@ -129,8 +129,7 @@
      return "" if $cache{$lib};
      return "" if $cache{$lib};
      unless ($disabled{shared} || $lib =~ /\.a$/) {
      unless ($disabled{shared} || $lib =~ /\.a$/) {
          my $obj2shlib = defined &obj2shlib ? \&obj2shlib : \&libobj2shlib;
          my $obj2shlib = defined &obj2shlib ? \&obj2shlib : \&libobj2shlib;
-         $OUT .= $obj2shlib->(shlib => $unified_info{sharednames}->{$lib},
-                              lib => $lib,
+         $OUT .= $obj2shlib->(lib => $lib,
                               objs => $unified_info{shared_sources}->{$lib},
                               objs => $unified_info{shared_sources}->{$lib},
                               deps => [ reducedepends(resolvedepends($lib)) ],
                               deps => [ reducedepends(resolvedepends($lib)) ],
                               installed => is_installed($lib));
                               installed => is_installed($lib));

+ 13 - 103
Configure

@@ -1727,8 +1727,6 @@ if ($builder eq "unified") {
         my %includes = ();
         my %includes = ();
         my %defines = ();
         my %defines = ();
         my %depends = ();
         my %depends = ();
-        my %renames = ();
-        my %sharednames = ();
         my %generate = ();
         my %generate = ();
 
 
         # We want to detect configdata.pm in the source tree, so we
         # We want to detect configdata.pm in the source tree, so we
@@ -1859,11 +1857,9 @@ if ($builder eq "unified") {
             => sub { push @{$generate{$1}}, $2
             => sub { push @{$generate{$1}}, $2
                          if !@skip || $skip[$#skip] > 0 },
                          if !@skip || $skip[$#skip] > 0 },
             qr/^\s*RENAME\[((?:\\.|[^\\\]])+)\]\s*=\s*(.*)\s*$/
             qr/^\s*RENAME\[((?:\\.|[^\\\]])+)\]\s*=\s*(.*)\s*$/
-            => sub { push @{$renames{$1}}, tokenize($2)
-                         if !@skip || $skip[$#skip] > 0 },
-            qr/^\s*SHARED_NAME\[((?:\\.|[^\\\]])+)\]\s*=\s*(.*)\s*$/
-            => sub { push @{$sharednames{$1}}, tokenize($2)
-                         if !@skip || $skip[$#skip] > 0 },
+            => sub { warn "RENAME is no longer supported\n" },
+             qr/^\s*SHARED_NAME\[((?:\\.|[^\\\]])+)\]\s*=\s*(.*)\s*$/
+            => sub { warn "SHARED_NAME is no longer supported\n" },
             qr/^\s*BEGINRAW\[((?:\\.|[^\\\]])+)\]\s*$/
             qr/^\s*BEGINRAW\[((?:\\.|[^\\\]])+)\]\s*$/
             => sub {
             => sub {
                 my $lineiterator = shift;
                 my $lineiterator = shift;
@@ -1897,48 +1893,23 @@ if ($builder eq "unified") {
             );
             );
         die "runaway IF?" if (@skip);
         die "runaway IF?" if (@skip);
 
 
-        foreach (keys %renames) {
-            die "$_ renamed to more than one thing: "
-                ,join(" ", @{$renames{$_}}),"\n"
-                if scalar @{$renames{$_}} > 1;
-            my $dest = cleanfile($buildd, $_, $blddir);
-            my $to = cleanfile($buildd, $renames{$_}->[0], $blddir);
-            die "$dest renamed to more than one thing: "
-                ,$unified_info{rename}->{$dest}, $to
-                unless !defined($unified_info{rename}->{$dest})
-                or $unified_info{rename}->{$dest} eq $to;
-            $unified_info{rename}->{$dest} = $to;
-        }
-
         foreach (@programs) {
         foreach (@programs) {
             my $program = cleanfile($buildd, $_, $blddir);
             my $program = cleanfile($buildd, $_, $blddir);
-            if ($unified_info{rename}->{$program}) {
-                $program = $unified_info{rename}->{$program};
-            }
             $unified_info{programs}->{$program} = 1;
             $unified_info{programs}->{$program} = 1;
         }
         }
 
 
         foreach (@programs_install) {
         foreach (@programs_install) {
             my $program = cleanfile($buildd, $_, $blddir);
             my $program = cleanfile($buildd, $_, $blddir);
-            if ($unified_info{rename}->{$program}) {
-                $program = $unified_info{rename}->{$program};
-            }
             $unified_info{install}->{programs}->{$program} = 1;
             $unified_info{install}->{programs}->{$program} = 1;
         }
         }
 
 
         foreach (@libraries) {
         foreach (@libraries) {
             my $library = cleanfile($buildd, $_, $blddir);
             my $library = cleanfile($buildd, $_, $blddir);
-            if ($unified_info{rename}->{$library}) {
-                $library = $unified_info{rename}->{$library};
-            }
             $unified_info{libraries}->{$library} = 1;
             $unified_info{libraries}->{$library} = 1;
         }
         }
 
 
         foreach (@libraries_install) {
         foreach (@libraries_install) {
             my $library = cleanfile($buildd, $_, $blddir);
             my $library = cleanfile($buildd, $_, $blddir);
-            if ($unified_info{rename}->{$library}) {
-                $library = $unified_info{rename}->{$library};
-            }
             $unified_info{install}->{libraries}->{$library} = 1;
             $unified_info{install}->{libraries}->{$library} = 1;
         }
         }
 
 
@@ -1948,33 +1919,21 @@ This is usually a fault in a build.info file.
 EOF
 EOF
         foreach (@engines) {
         foreach (@engines) {
             my $library = cleanfile($buildd, $_, $blddir);
             my $library = cleanfile($buildd, $_, $blddir);
-            if ($unified_info{rename}->{$library}) {
-                $library = $unified_info{rename}->{$library};
-            }
             $unified_info{engines}->{$library} = 1;
             $unified_info{engines}->{$library} = 1;
         }
         }
 
 
         foreach (@engines_install) {
         foreach (@engines_install) {
             my $library = cleanfile($buildd, $_, $blddir);
             my $library = cleanfile($buildd, $_, $blddir);
-            if ($unified_info{rename}->{$library}) {
-                $library = $unified_info{rename}->{$library};
-            }
             $unified_info{install}->{engines}->{$library} = 1;
             $unified_info{install}->{engines}->{$library} = 1;
         }
         }
 
 
         foreach (@scripts) {
         foreach (@scripts) {
             my $script = cleanfile($buildd, $_, $blddir);
             my $script = cleanfile($buildd, $_, $blddir);
-            if ($unified_info{rename}->{$script}) {
-                $script = $unified_info{rename}->{$script};
-            }
             $unified_info{scripts}->{$script} = 1;
             $unified_info{scripts}->{$script} = 1;
         }
         }
 
 
         foreach (@scripts_install) {
         foreach (@scripts_install) {
             my $script = cleanfile($buildd, $_, $blddir);
             my $script = cleanfile($buildd, $_, $blddir);
-            if ($unified_info{rename}->{$script}) {
-                $script = $unified_info{rename}->{$script};
-            }
             $unified_info{install}->{scripts}->{$script} = 1;
             $unified_info{install}->{scripts}->{$script} = 1;
         }
         }
 
 
@@ -1990,53 +1949,20 @@ EOF
 
 
         push @{$unified_info{rawlines}}, @rawlines;
         push @{$unified_info{rawlines}}, @rawlines;
 
 
-        unless ($disabled{shared}) {
-            # Check sharednames.
-            foreach (keys %sharednames) {
-                my $dest = cleanfile($buildd, $_, $blddir);
-                if ($unified_info{rename}->{$dest}) {
-                    $dest = $unified_info{rename}->{$dest};
-                }
-                die "shared_name for $dest with multiple values: "
-                    ,join(" ", @{$sharednames{$_}}),"\n"
-                    if scalar @{$sharednames{$_}} > 1;
-                my $to = cleanfile($buildd, $sharednames{$_}->[0], $blddir);
-                die "shared_name found for a library $dest that isn't defined\n"
-                    unless $unified_info{libraries}->{$dest};
-                die "shared_name for $dest with multiple values: "
-                    ,$unified_info{sharednames}->{$dest}, ", ", $to
-                    unless !defined($unified_info{sharednames}->{$dest})
-                    or $unified_info{sharednames}->{$dest} eq $to;
-                $unified_info{sharednames}->{$dest} = $to;
-            }
-
-            # Additionally, we set up sharednames for libraries that don't
-            # have any, as themselves.  Only for libraries that aren't
-            # explicitly static.
-            foreach (grep !/\.a$/, keys %{$unified_info{libraries}}) {
-                if (!defined $unified_info{sharednames}->{$_}) {
-                    $unified_info{sharednames}->{$_} = $_
-                }
-            }
-
-            # Check that we haven't defined any library as both shared and
-            # explicitly static.  That is forbidden.
-            my @doubles = ();
-            foreach (grep /\.a$/, keys %{$unified_info{libraries}}) {
-                (my $l = $_) =~ s/\.a$//;
-                push @doubles, $l if defined $unified_info{sharednames}->{$l};
-            }
-            die "these libraries are both explicitly static and shared:\n  ",
-                join(" ", @doubles), "\n"
-                if @doubles;
+        # Check that we haven't defined any library as both shared and
+        # explicitly static.  That is forbidden.
+        my @doubles = ();
+        foreach (grep /\.a$/, keys %{$unified_info{libraries}}) {
+            (my $l = $_) =~ s/\.a$//;
+            push @doubles, $l if defined $unified_info{libraries}->{$l};
         }
         }
+        die "these libraries are both explicitly static and shared:\n  ",
+            join(" ", @doubles), "\n"
+            if @doubles;
 
 
         foreach (keys %sources) {
         foreach (keys %sources) {
             my $dest = $_;
             my $dest = $_;
             my $ddest = cleanfile($buildd, $_, $blddir);
             my $ddest = cleanfile($buildd, $_, $blddir);
-            if ($unified_info{rename}->{$ddest}) {
-                $ddest = $unified_info{rename}->{$ddest};
-            }
             foreach (@{$sources{$dest}}) {
             foreach (@{$sources{$dest}}) {
                 my $s = cleanfile($sourced, $_, $blddir);
                 my $s = cleanfile($sourced, $_, $blddir);
 
 
@@ -2069,9 +1995,6 @@ EOF
         foreach (keys %shared_sources) {
         foreach (keys %shared_sources) {
             my $dest = $_;
             my $dest = $_;
             my $ddest = cleanfile($buildd, $_, $blddir);
             my $ddest = cleanfile($buildd, $_, $blddir);
-            if ($unified_info{rename}->{$ddest}) {
-                $ddest = $unified_info{rename}->{$ddest};
-            }
             foreach (@{$shared_sources{$dest}}) {
             foreach (@{$shared_sources{$dest}}) {
                 my $s = cleanfile($sourced, $_, $blddir);
                 my $s = cleanfile($sourced, $_, $blddir);
 
 
@@ -2110,9 +2033,6 @@ EOF
         foreach (keys %generate) {
         foreach (keys %generate) {
             my $dest = $_;
             my $dest = $_;
             my $ddest = cleanfile($buildd, $_, $blddir);
             my $ddest = cleanfile($buildd, $_, $blddir);
-            if ($unified_info{rename}->{$ddest}) {
-                $ddest = $unified_info{rename}->{$ddest};
-            }
             die "more than one generator for $dest: "
             die "more than one generator for $dest: "
                     ,join(" ", @{$generate{$_}}),"\n"
                     ,join(" ", @{$generate{$_}}),"\n"
                     if scalar @{$generate{$_}} > 1;
                     if scalar @{$generate{$_}} > 1;
@@ -2129,9 +2049,6 @@ EOF
             # a generated file in the build tree.
             # a generated file in the build tree.
             if ($ddest ne "" && ($ddest eq $src_configdata || ! -f $ddest)) {
             if ($ddest ne "" && ($ddest eq $src_configdata || ! -f $ddest)) {
                 $ddest = cleanfile($buildd, $_, $blddir);
                 $ddest = cleanfile($buildd, $_, $blddir);
-                if ($unified_info{rename}->{$ddest}) {
-                    $ddest = $unified_info{rename}->{$ddest};
-                }
             }
             }
             foreach (@{$depends{$dest}}) {
             foreach (@{$depends{$dest}}) {
                 my $d = cleanfile($sourced, $_, $blddir);
                 my $d = cleanfile($sourced, $_, $blddir);
@@ -2154,11 +2071,7 @@ EOF
                 # should be added back after treatment.
                 # should be added back after treatment.
                 $d =~ /(\.a)?$/;
                 $d =~ /(\.a)?$/;
                 my $e = $1 // "";
                 my $e = $1 // "";
-                $d = $`;
-                if ($unified_info{rename}->{$d}) {
-                    $d = $unified_info{rename}->{$d};
-                }
-                $d .= $e;
+                $d = $`.$e;
                 $unified_info{depends}->{$ddest}->{$d} = 1;
                 $unified_info{depends}->{$ddest}->{$d} = 1;
             }
             }
         }
         }
@@ -2171,9 +2084,6 @@ EOF
             # a generated file in the build tree.
             # a generated file in the build tree.
             if ($ddest eq $src_configdata || ! -f $ddest) {
             if ($ddest eq $src_configdata || ! -f $ddest) {
                 $ddest = cleanfile($buildd, $_, $blddir);
                 $ddest = cleanfile($buildd, $_, $blddir);
-                if ($unified_info{rename}->{$ddest}) {
-                    $ddest = $unified_info{rename}->{$ddest};
-                }
             }
             }
             foreach (@{$includes{$dest}}) {
             foreach (@{$includes{$dest}}) {
                 my $is = cleandir($sourced, $_, $blddir);
                 my $is = cleandir($sourced, $_, $blddir);

+ 0 - 32
build.info

@@ -2,15 +2,6 @@
 # %skipdir there for further explanations.
 # %skipdir there for further explanations.
 SUBDIRS=crypto ssl apps test util tools fuzz engines
 SUBDIRS=crypto ssl apps test util tools fuzz engines
 
 
-{-
-     my @sover = split(/\./, $config{shlib_version});
-     our $sover_filename;
-     $sover_filename = join('.', @sover)
-         if $config{target} =~ /^mingw/ || $config{target} =~ /^VC-/;
-     $sover_filename = join('', map { sprintf "%02d", $_ } @sover)
-         if $config{target} =~ /^vms/;
-     "";
--}
 LIBS=libcrypto libssl
 LIBS=libcrypto libssl
 INCLUDE[libcrypto]=. crypto/include include
 INCLUDE[libcrypto]=. crypto/include include
 INCLUDE[libssl]=. include
 INCLUDE[libssl]=. include
@@ -44,26 +35,3 @@ IF[{- $config{target} =~ /^(?:Cygwin|mingw|VC-)/ -}]
   SHARED_SOURCE[libcrypto]=libcrypto.rc
   SHARED_SOURCE[libcrypto]=libcrypto.rc
   SHARED_SOURCE[libssl]=libssl.rc
   SHARED_SOURCE[libssl]=libssl.rc
 ENDIF
 ENDIF
-
-IF[{- $config{target} =~ /^Cygwin/ -}]
- SHARED_NAME[libcrypto]=cygcrypto-{- $sover_filename -}
- SHARED_NAME[libssl]=cygssl-{- $sover_filename -}
-ELSIF[{- $config{target} =~ /^mingw/ -}]
- SHARED_NAME[libcrypto]=libcrypto-{- $sover_filename -}{- $config{target} eq "mingw64" ? "-x64" : "" -}
- SHARED_NAME[libssl]=libssl-{- $sover_filename -}{- $config{target} eq "mingw64" ? "-x64" : "" -}
-ELSIF[{- $config{target} =~ /^VC-/ -}]
- SHARED_NAME[libcrypto]=libcrypto-{- $sover_filename -}{- $target{multilib} -}
- SHARED_NAME[libssl]=libssl-{- $sover_filename -}{- $target{multilib} -}
-ENDIF
-
-# VMS has a cultural standard where all libraries are prefixed.
-# For OpenSSL, the choice is 'ossl$' (this prefix was claimed in a
-# conversation with VSI, Tuesday January 26 2016)
-# Also, it seems it's usual to have the pointer size the libraries
-# were built for as part of the name.
-IF[{- $config{target} =~ /^vms/ -}]
- RENAME[libcrypto]=ossl$libcrypto{- $target{pointer_size} -}
- RENAME[libssl]=ossl$libssl{- $target{pointer_size} -}
- SHARED_NAME[libcrypto]=ossl$libcrypto{- $sover_filename -}_shr{- $target{pointer_size} -}
- SHARED_NAME[libssl]=ossl$libssl{- $sover_filename -}_shr{- $target{pointer_size} -}
-ENDIF