From 77adb75e16142cd4da2af8814090a4f2c2bd5aea Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Wed, 30 Jan 2019 18:58:01 +0100 Subject: [PATCH] Build: Remove BEGINRAW / ENDRAW / OVERRIDE It was an ugly hack to avoid certain problems that are no more. Also added GENERATE lines for perlasm scripts that didn't have that explicitly. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/8125) --- Configurations/README | 42 ------------------------------------ Configurations/README.design | 11 ---------- Configurations/common.tmpl | 4 ---- Configure | 29 ++----------------------- crypto/aes/build.info | 11 +--------- crypto/chacha/build.info | 9 ++------ crypto/ec/build.info | 5 ----- crypto/modes/build.info | 7 +----- crypto/poly1305/build.info | 7 ++---- crypto/rc4/build.info | 8 ++----- crypto/sha/build.info | 22 ++++++++++--------- 11 files changed, 22 insertions(+), 133 deletions(-) diff --git a/Configurations/README b/Configurations/README index c1f80fe49e..65841b38b6 100644 --- a/Configurations/README +++ b/Configurations/README @@ -486,48 +486,6 @@ be used in that case: NOTE: GENERATE lines are limited to one command only per GENERATE. -As a last resort, it's possible to have raw build file lines, between -BEGINRAW and ENDRAW lines as follows: - - BEGINRAW[Makefile(unix)] - haha.h: {- $builddir -}/Makefile - echo "/* haha */" > haha.h - ENDRAW[Makefile(unix)] - -The word within square brackets is the build_file configuration item -or the build_file configuration item followed by the second word in the -build_scheme configuration item for the configured target within -parenthesis as shown above. For example, with the following relevant -configuration items: - - build_file => "build.ninja" - build_scheme => [ "unified", "unix" ] - -... these lines will be considered: - - BEGINRAW[build.ninja] - build haha.h: echo "/* haha */" > haha.h - ENDRAW[build.ninja] - - BEGINRAW[build.ninja(unix)] - build hoho.h: echo "/* hoho */" > hoho.h - ENDRAW[build.ninja(unix)] - -Should it be needed because the recipes within a RAW section might -clash with those generated by Configure, it's possible to tell it -not to generate them with the use of OVERRIDES, for example: - - SOURCE[libfoo]=foo.c bar.c - - OVERRIDES=bar.o - BEGINRAW[Makefile(unix)] - bar.o: bar.c - $(CC) $(CFLAGS) -DSPECIAL -c -o $@ $< - ENDRAW[Makefile(unix)] - -See the documentation further up for more information on configuration -items. - Finally, you can have some simple conditional use of the build.info information, looking like this: diff --git a/Configurations/README.design b/Configurations/README.design index c0b05bd5b2..43b6a6620e 100644 --- a/Configurations/README.design +++ b/Configurations/README.design @@ -112,9 +112,6 @@ Two things are worth an extra note: 'DEPEND[cversion.o]' mentions an object file. DEPEND indexes is the only location where it's valid to mention them -Lines in 'BEGINRAW'..'ENDRAW' sections must always mention files as -seen from the top directory, no exception. - # ssl/build.info LIBS=../libssl SOURCE[../libssl]=tls.c @@ -234,11 +231,6 @@ indexes: programs => a list of programs. These are directly inferred from the PROGRAMS variable in build.info files. - rawlines => a list of build-file lines. These are a direct copy of - the BEGINRAW..ENDRAW lines in build.info files. Note: - only the BEGINRAW..ENDRAW section for the current - platform are copied, the rest are ignored. - scripts => a list of scripts. There are directly inferred from the SCRIPTS variable in build.info files. @@ -352,9 +344,6 @@ section above would be digested into a %unified_info table: [ "apps/openssl", ], - "rawlines" => - [ - ], "sources" => { "apps/openssl" => diff --git a/Configurations/common.tmpl b/Configurations/common.tmpl index 53384c7307..a15971ef98 100644 --- a/Configurations/common.tmpl +++ b/Configurations/common.tmpl @@ -217,8 +217,4 @@ foreach (@{$unified_info{scripts}}) { doscript($_); } foreach (sort keys %{$unified_info{dirinfo}}) { dodir($_); } - - # Finally, should there be any applicable BEGINRAW/ENDRAW sections, - # they are added here. - $OUT .= $_."\n" foreach @{$unified_info{rawlines}}; -} diff --git a/Configure b/Configure index 53460fe8ac..8052643155 100755 --- a/Configure +++ b/Configure @@ -1714,9 +1714,7 @@ if ($builder eq "unified") { my @engines = (); my @scripts = (); my @extra = (); - my @overrides = (); my @intermediates = (); - my @rawlines = (); my %attributes = (); my %sources = (); @@ -1872,9 +1870,6 @@ if ($builder eq "unified") { qr/^\s*EXTRA\s*=\s*(.*)\s*$/ => sub { push @extra, tokenize($1) if !@skip || $skip[$#skip] > 0 }, - qr/^\s*OVERRIDES\s*=\s*(.*)\s*$/ - => sub { push @overrides, tokenize($1) - if !@skip || $skip[$#skip] > 0 }, qr/^\s*ORDINALS\[((?:\\.|[^\\\]])+)\]\s*=\s*(.*)\s*$/, => sub { push @{$ordinals{$1}}, tokenize($2) @@ -1901,23 +1896,6 @@ if ($builder eq "unified") { => 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*$/ - => sub { - my $lineiterator = shift; - my $target_kind = $1; - while (defined $lineiterator->()) { - s|\R$||; - if (/^\s*ENDRAW\[((?:\\.|[^\\\]])+)\]\s*$/) { - die "ENDRAW doesn't match BEGINRAW" - if $1 ne $target_kind; - last; - } - next if @skip && $skip[$#skip] <= 0; - push @rawlines, $_ - if ($target_kind eq $target{build_file} - || $target_kind eq $target{build_file}."(".$builder_platform.")"); - } - }, qr/^\s*(?:#.*)?$/ => sub { }, "OTHERWISE" => sub { die "Something wrong with this line:\n$_\nat $sourced/$f" }, "BEFORE" => sub { @@ -1953,8 +1931,7 @@ EOF libraries => [ @libraries ], engines => [ @engines ], scripts => [ @scripts ], - extra => [ @extra ], - overrides => [ @overrides ] ); + extra => [ @extra ] ); foreach my $k (keys %infos) { foreach (@{$infos{$k}}) { my $item = cleanfile($buildd, $_, $blddir); @@ -1963,8 +1940,6 @@ EOF } } - push @{$unified_info{rawlines}}, @rawlines; - # Check that we haven't defined any library as both shared and # explicitly static. That is forbidden. my @doubles = (); @@ -2259,7 +2234,7 @@ EOF ### Make unified_info a bit more efficient # One level structures - foreach (("programs", "libraries", "engines", "scripts", "extra", "overrides")) { + foreach (("programs", "libraries", "modules", "scripts", "extra")) { $unified_info{$_} = [ sort keys %{$unified_info{$_}} ]; } # Two level structures diff --git a/crypto/aes/build.info b/crypto/aes/build.info index 0f04863640..1aa7a18dfb 100644 --- a/crypto/aes/build.info +++ b/crypto/aes/build.info @@ -52,13 +52,4 @@ INCLUDE[bsaes-armv7.o]=.. GENERATE[aes-s390x.S]=asm/aes-s390x.pl $(PERLASM_SCHEME) INCLUDE[aes-s390x.o]=.. -BEGINRAW[Makefile] -##### AES assembler implementations - -# GNU make "catch all" -{- $builddir -}/aes-%.S: {- $sourcedir -}/asm/aes-%.pl - CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@ -{- $builddir -}/bsaes-%.S: {- $sourcedir -}/asm/bsaes-%.pl - CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@ - -ENDRAW[Makefile] +GENERATE[aes-c64xplus.S]=asm/aes-c64xplus.pl $(PERLASM_SCHEME) diff --git a/crypto/chacha/build.info b/crypto/chacha/build.info index e1d6116466..bbd9ca8b33 100644 --- a/crypto/chacha/build.info +++ b/crypto/chacha/build.info @@ -10,10 +10,5 @@ INCLUDE[chacha-armv4.o]=.. GENERATE[chacha-armv8.S]=asm/chacha-armv8.pl $(PERLASM_SCHEME) INCLUDE[chacha-armv8.o]=.. INCLUDE[chacha-s390x.o]=.. - -BEGINRAW[Makefile(unix)] -##### CHACHA assembler implementations - -{- $builddir -}/chacha-%.S: {- $sourcedir -}/asm/chacha-%.pl - CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@ -ENDRAW[Makefile(unix)] +GENERATE[chacha-c64xplus.S]=asm/chacha-c64xplus.pl $(PERLASM_SCHEME) +GENERATE[chacha-s390x.S]=asm/chacha-s390x.pl $(PERLASM_SCHEME) diff --git a/crypto/ec/build.info b/crypto/ec/build.info index a1e673e347..dd1c891e19 100644 --- a/crypto/ec/build.info +++ b/crypto/ec/build.info @@ -29,11 +29,6 @@ GENERATE[ecp_nistz256-ppc64.s]=asm/ecp_nistz256-ppc64.pl $(PERLASM_SCHEME) GENERATE[x25519-x86_64.s]=asm/x25519-x86_64.pl $(PERLASM_SCHEME) GENERATE[x25519-ppc64.s]=asm/x25519-ppc64.pl $(PERLASM_SCHEME) -BEGINRAW[Makefile] -{- $builddir -}/ecp_nistz256-%.S: {- $sourcedir -}/asm/ecp_nistz256-%.pl - CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@ -ENDRAW[Makefile] - INCLUDE[curve448/arch_32/f_impl.o]=curve448/arch_32 curve448 INCLUDE[curve448/f_generic.o]=curve448/arch_32 curve448 INCLUDE[curve448/scalar.o]=curve448/arch_32 curve448 diff --git a/crypto/modes/build.info b/crypto/modes/build.info index 1820ab26ba..f015a4c302 100644 --- a/crypto/modes/build.info +++ b/crypto/modes/build.info @@ -22,9 +22,4 @@ GENERATE[ghashv8-armx.S]=asm/ghashv8-armx.pl $(PERLASM_SCHEME) INCLUDE[ghashv8-armx.o]=.. GENERATE[ghash-s390x.S]=asm/ghash-s390x.pl $(PERLASM_SCHEME) INCLUDE[ghash-s390x.o]=.. - -BEGINRAW[Makefile] -# GNU make "catch all" -{- $builddir -}/ghash-%.S: {- $sourcedir -}/asm/ghash-%.pl - CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@ -ENDRAW[Makefile] +GENERATE[ghash-c64xplus.S]=asm/ghash-c64xplus.pl $(PERLASM_SCHEME) diff --git a/crypto/poly1305/build.info b/crypto/poly1305/build.info index 363d62e6eb..de44bb8803 100644 --- a/crypto/poly1305/build.info +++ b/crypto/poly1305/build.info @@ -17,8 +17,5 @@ GENERATE[poly1305-armv8.S]=asm/poly1305-armv8.pl $(PERLASM_SCHEME) INCLUDE[poly1305-armv8.o]=.. GENERATE[poly1305-mips.S]=asm/poly1305-mips.pl $(PERLASM_SCHEME) INCLUDE[poly1305-mips.o]=.. - -BEGINRAW[Makefile(unix)] -{- $builddir -}/poly1305-%.S: {- $sourcedir -}/asm/poly1305-%.pl - CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@ -ENDRAW[Makefile(unix)] +GENERATE[poly1305-c64xplus.S]=asm/poly1305-c64xplus.pl $(PERLASM_SCHEME) +GENERATE[poly1305-s390x.S]=asm/poly1305-s390x.pl $(PERLASM_SCHEME) diff --git a/crypto/rc4/build.info b/crypto/rc4/build.info index 46ee66b61c..9941e6ea15 100644 --- a/crypto/rc4/build.info +++ b/crypto/rc4/build.info @@ -10,9 +10,5 @@ GENERATE[rc4-x86_64.s]=asm/rc4-x86_64.pl $(PERLASM_SCHEME) GENERATE[rc4-md5-x86_64.s]=asm/rc4-md5-x86_64.pl $(PERLASM_SCHEME) GENERATE[rc4-parisc.s]=asm/rc4-parisc.pl $(PERLASM_SCHEME) - -BEGINRAW[Makefile] -# GNU make "catch all" -{- $builddir -}/rc4-%.s: {- $sourcedir -}/asm/rc4-%.pl - CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@ -ENDRAW[Makefile] +GENERATE[rc4-c64xplus.S]=asm/rc4-c64xplus.pl $(PERLASM_SCHEME) +GENERATE[rc4-s390x.S]=asm/rc4-s390x.pl $(PERLASM_SCHEME) diff --git a/crypto/sha/build.info b/crypto/sha/build.info index 5dd5a9941d..58d15bbb6d 100644 --- a/crypto/sha/build.info +++ b/crypto/sha/build.info @@ -26,6 +26,7 @@ GENERATE[sha256-mb-x86_64.s]=asm/sha256-mb-x86_64.pl $(PERLASM_SCHEME) GENERATE[sha512-x86_64.s]=asm/sha512-x86_64.pl $(PERLASM_SCHEME) GENERATE[keccak1600-x86_64.s]=asm/keccak1600-x86_64.pl $(PERLASM_SCHEME) +GENERATE[sha1-sparcv9a.S]=asm/sha1-sparcv9a.pl $(PERLASM_SCHEME) GENERATE[sha1-sparcv9.S]=asm/sha1-sparcv9.pl $(PERLASM_SCHEME) INCLUDE[sha1-sparcv9.o]=.. GENERATE[sha256-sparcv9.S]=asm/sha512-sparcv9.pl $(PERLASM_SCHEME) @@ -76,14 +77,15 @@ GENERATE[sha512-s390x.S]=asm/sha512-s390x.pl $(PERLASM_SCHEME) INCLUDE[sha512-s390x.o]=.. GENERATE[keccak1600-s390x.S]=asm/keccak1600-s390x.pl $(PERLASM_SCHEME) -BEGINRAW[Makefile(unix)] -##### SHA assembler implementations +GENERATE[sha1-c64xplus.S]=asm/sha1-c64xplus.pl $(PERLASM_SCHEME) +GENERATE[sha256-c64xplus.S]=asm/sha256-c64xplus.pl $(PERLASM_SCHEME) +GENERATE[sha512-c64xplus.S]=asm/sha512-c64xplus.pl $(PERLASM_SCHEME) +GENERATE[keccak1600-c64x.S]=asm/keccak1600-c64x.pl $(PERLASM_SCHEME) -# GNU make "catch all" -{- $builddir -}/sha1-%.S: {- $sourcedir -}/asm/sha1-%.pl - CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@ -{- $builddir -}/sha256-%.S: {- $sourcedir -}/asm/sha512-%.pl - CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@ -{- $builddir -}/sha512-%.S: {- $sourcedir -}/asm/sha512-%.pl - CC="$(CC)" $(PERL) $< $(PERLASM_SCHEME) $@ -ENDRAW[Makefile(unix)] +# These are not yet used +GENERATE[keccak1600-avx2.S]=asm/keccak1600-avx2.pl $(PERLASM_SCHEME) +GENERATE[keccak1600-avx512.S]=asm/keccak1600-avx512.pl $(PERLASM_SCHEME) +GENERATE[keccak1600-avx512vl.S]=asm/keccak1600-avx512vl.pl $(PERLASM_SCHEME) +GENERATE[keccak1600-mmx.S]=asm/keccak1600-mmx.pl $(PERLASM_SCHEME) +GENERATE[keccak1600p8-ppc.S]=asm/keccak1600p8-ppc.pl $(PERLASM_SCHEME) +GENERATE[sha1-thumb.S]=asm/sha1-thumb.pl $(PERLASM_SCHEME) -- 2.25.1