This fixes the perlasm on my x-only amd64 machines to the point that
tests pass (apart form the shlibload test). This is quite a bit more
than what was committed to base libcrypto and it is very possible that I
missed some constants in .text.

So tests and careful sets of eyes would be very welcome.

Index: Makefile
===================================================================
RCS file: /cvs/ports/security/openssl/1.1/Makefile,v
retrieving revision 1.47
diff -u -p -r1.47 Makefile
--- Makefile    14 Jan 2023 17:09:56 -0000      1.47
+++ Makefile    15 Jan 2023 12:20:12 -0000
@@ -3,7 +3,7 @@ PORTROACH=      limit:^1\.1\.[0-9][a-z] skipb
 V=             1.1.1s
 PKGSPEC=       openssl->=1.1.0v0,<1.2v0
 EPOCH=         0
-REVISION=      2
+REVISION=      3
 
 SHLIBVER=      11.6
 SHARED_LIBS=   crypto ${SHLIBVER} \
@@ -35,7 +35,7 @@ MAN_PREFIX=           @man lib/eopenssl11/man
 INSTALL_TARGET+=       install_man_docs
 .endif
 
-.if ${MACHINE_ARCH} != aarch64
+.if ${MACHINE_ARCH} != aarch64 && ${MACHINE_ARCH} != amd64
 USE_NOEXECONLY=                Yes
 .endif
 
Index: patches/patch-crypto_aes_asm_aesni-sha1-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_aes_asm_aesni-sha1-x86_64_pl
diff -N patches/patch-crypto_aes_asm_aesni-sha1-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_aes_asm_aesni-sha1-x86_64_pl   15 Jan 2023 12:20:12 
-0000
@@ -0,0 +1,19 @@
+Index: crypto/aes/asm/aesni-sha1-x86_64.pl
+--- crypto/aes/asm/aesni-sha1-x86_64.pl.orig
++++ crypto/aes/asm/aesni-sha1-x86_64.pl
+@@ -1736,6 +1736,7 @@ ___
+                                               }}}
+ }
+ $code.=<<___;
++.rodata
+ .align        64
+ K_XX_XX:
+ .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999     # K_00_19
+@@ -1747,6 +1748,7 @@ K_XX_XX:
+ 
+ .asciz        "AESNI-CBC+SHA1 stitch for x86_64, CRYPTOGAMS by 
<appro\@openssl.org>"
+ .align        64
++.previous
+ ___
+                                               if ($shaext) {{{
+ 
($in0,$out,$len,$key,$ivp,$ctx,$inp)=("%rdi","%rsi","%rdx","%rcx","%r8","%r9","%r10");
Index: patches/patch-crypto_aes_asm_aesni-sha256-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_aes_asm_aesni-sha256-x86_64_pl
diff -N patches/patch-crypto_aes_asm_aesni-sha256-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_aes_asm_aesni-sha256-x86_64_pl 15 Jan 2023 12:20:12 
-0000
@@ -0,0 +1,19 @@
+Index: crypto/aes/asm/aesni-sha256-x86_64.pl
+--- crypto/aes/asm/aesni-sha256-x86_64.pl.orig
++++ crypto/aes/asm/aesni-sha256-x86_64.pl
+@@ -166,6 +166,7 @@ $code.=<<___;
+ .cfi_endproc
+ .size $func,.-$func
+ 
++.rodata
+ .align        64
+ .type $TABLE,\@object
+ $TABLE:
+@@ -208,6 +209,7 @@ $TABLE:
+       .long   0,0,0,0,   0,0,0,0
+       .asciz  "AESNI-CBC+SHA256 stitch for x86_64, CRYPTOGAMS by 
<appro\@openssl.org>"
+ .align        64
++.previous
+ ___
+ 
+ ######################################################################
Index: patches/patch-crypto_aes_asm_aesni-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_aes_asm_aesni-x86_64_pl
diff -N patches/patch-crypto_aes_asm_aesni-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_aes_asm_aesni-x86_64_pl        15 Jan 2023 12:20:12 
-0000
@@ -0,0 +1,19 @@
+Index: crypto/aes/asm/aesni-x86_64.pl
+--- crypto/aes/asm/aesni-x86_64.pl.orig
++++ crypto/aes/asm/aesni-x86_64.pl
+@@ -4730,6 +4730,7 @@ ___
+ }
+ 
+ $code.=<<___;
++.rodata
+ .align        64
+ .Lbswap_mask:
+       .byte   15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
+@@ -4752,6 +4753,7 @@ $code.=<<___;
+ 
+ .asciz  "AES for Intel AES-NI, CRYPTOGAMS by <appro\@openssl.org>"
+ .align        64
++.previous
+ ___
+ 
+ # EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
Index: patches/patch-crypto_aes_asm_vpaes-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_aes_asm_vpaes-x86_64_pl
diff -N patches/patch-crypto_aes_asm_vpaes-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_aes_asm_vpaes-x86_64_pl        15 Jan 2023 12:20:12 
-0000
@@ -0,0 +1,19 @@
+Index: crypto/aes/asm/vpaes-x86_64.pl
+--- crypto/aes/asm/vpaes-x86_64.pl.orig
++++ crypto/aes/asm/vpaes-x86_64.pl
+@@ -998,6 +998,7 @@ _vpaes_preheat:
+ ##                     Constants                      ##
+ ##                                                    ##
+ ########################################################
++.rodata
+ .type _vpaes_consts,\@object
+ .align        64
+ _vpaes_consts:
+@@ -1097,6 +1098,7 @@ _vpaes_consts:
+ .asciz        "Vector Permutation AES for x86_64/SSSE3, Mike Hamburg 
(Stanford University)"
+ .align        64
+ .size _vpaes_consts,.-_vpaes_consts
++.previous
+ ___
+ 
+ if ($win64) {
Index: patches/patch-crypto_bn_asm_rsaz-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_bn_asm_rsaz-x86_64_pl
diff -N patches/patch-crypto_bn_asm_rsaz-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_bn_asm_rsaz-x86_64_pl  15 Jan 2023 12:55:08 -0000
@@ -0,0 +1,16 @@
+Index: crypto/bn/asm/rsaz-x86_64.pl
+--- crypto/bn/asm/rsaz-x86_64.pl.orig
++++ crypto/bn/asm/rsaz-x86_64.pl
+@@ -2246,10 +2246,12 @@ $code.=<<___;
+ .cfi_endproc
+ .size rsaz_512_gather4,.-rsaz_512_gather4
+ 
++.rodata
+ .align        64
+ .Linc:
+       .long   0,0, 1,1
+       .long   2,2, 2,2
++.previous
+ ___
+ }
+ 
Index: patches/patch-crypto_bn_asm_x86_64-mont5_pl
===================================================================
RCS file: patches/patch-crypto_bn_asm_x86_64-mont5_pl
diff -N patches/patch-crypto_bn_asm_x86_64-mont5_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_bn_asm_x86_64-mont5_pl 15 Jan 2023 12:32:39 -0000
@@ -0,0 +1,17 @@
+Index: crypto/bn/asm/x86_64-mont5.pl
+--- crypto/bn/asm/x86_64-mont5.pl.orig
++++ crypto/bn/asm/x86_64-mont5.pl
+@@ -3575,11 +3575,13 @@ $code.=<<___;
+ ___
+ }
+ $code.=<<___;
++.rodata
+ .align        64
+ .Linc:
+       .long   0,0, 1,1
+       .long   2,2, 2,2
+ .asciz        "Montgomery Multiplication with scatter/gather for x86_64, 
CRYPTOGAMS by <appro\@openssl.org>"
++.previous
+ ___
+ 
+ # EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
Index: patches/patch-crypto_camellia_asm_cmll-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_camellia_asm_cmll-x86_64_pl
diff -N patches/patch-crypto_camellia_asm_cmll-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_camellia_asm_cmll-x86_64_pl    15 Jan 2023 13:16:15 
-0000
@@ -0,0 +1,19 @@
+Index: crypto/camellia/asm/cmll-x86_64.pl
+--- crypto/camellia/asm/cmll-x86_64.pl.orig
++++ crypto/camellia/asm/cmll-x86_64.pl
+@@ -655,6 +655,7 @@ sub S0222 { my $i=shift; $i=@SBOX[$i]; $i=($i<<1|$i>>7
+ sub S3033 { my $i=shift; $i=@SBOX[$i]; $i=($i>>1|$i<<7)&0xff; 
$i=$i<<24|$i<<8|$i; sprintf("0x%08x",$i); }
+ 
+ $code.=<<___;
++.rodata
+ .align        64
+ .LCamellia_SIGMA:
+ .long 0x3bcc908b, 0xa09e667f, 0x4caa73b2, 0xb67ae858
+@@ -680,6 +681,7 @@ $_ivp="40(%rsp)";
+ $_rsp="48(%rsp)";
+ 
+ $code.=<<___;
++.text
+ .globl        Camellia_cbc_encrypt
+ .type Camellia_cbc_encrypt,\@function,6
+ .align        16
Index: patches/patch-crypto_chacha_asm_chacha-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_chacha_asm_chacha-x86_64_pl
diff -N patches/patch-crypto_chacha_asm_chacha-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_chacha_asm_chacha-x86_64_pl    15 Jan 2023 12:25:45 
-0000
@@ -0,0 +1,19 @@
+Index: crypto/chacha/asm/chacha-x86_64.pl
+--- crypto/chacha/asm/chacha-x86_64.pl.orig
++++ crypto/chacha/asm/chacha-x86_64.pl
+@@ -100,6 +100,7 @@ $code.=<<___;
+ 
+ .extern OPENSSL_ia32cap_P
+ 
++.rodata
+ .align        64
+ .Lzero:
+ .long 0,0,0,0
+@@ -131,6 +132,7 @@ $code.=<<___;
+ .Lsigma:
+ .asciz        "expand 32-byte k"
+ .asciz        "ChaCha20 for x86_64, CRYPTOGAMS by <appro\@openssl.org>"
++.previous
+ ___
+ 
+ sub AUTOLOAD()          # thunk [simplified] 32-bit style perlasm
Index: patches/patch-crypto_ec_asm_ecp_nistz256-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_ec_asm_ecp_nistz256-x86_64_pl
diff -N patches/patch-crypto_ec_asm_ecp_nistz256-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_ec_asm_ecp_nistz256-x86_64_pl  15 Jan 2023 12:20:12 
-0000
@@ -0,0 +1,28 @@
+Index: crypto/ec/asm/ecp_nistz256-x86_64.pl
+--- crypto/ec/asm/ecp_nistz256-x86_64.pl.orig
++++ crypto/ec/asm/ecp_nistz256-x86_64.pl
+@@ -83,6 +83,7 @@ $code.=<<___;
+ .extern       OPENSSL_ia32cap_P
+ 
+ # The polynomial
++.rodata
+ .align 64
+ .Lpoly:
+ .quad 0xffffffffffffffff, 0x00000000ffffffff, 0x0000000000000000, 
0xffffffff00000001
+@@ -105,6 +106,7 @@ $code.=<<___;
+ .quad 0xf3b9cac2fc632551, 0xbce6faada7179e84, 0xffffffffffffffff, 
0xffffffff00000000
+ .LordK:
+ .quad 0xccd1c8aaee00bc4f
++.previous
+ ___
+ 
+ {
+@@ -4721,7 +4723,7 @@ close TABLE;
+ die "insane number of elements" if ($#arr != 64*16*37-1);
+ 
+ print <<___;
+-.text
++.rodata
+ .globl        ecp_nistz256_precomputed
+ .type ecp_nistz256_precomputed,\@object
+ .align        4096
Index: patches/patch-crypto_modes_asm_aesni-gcm-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_modes_asm_aesni-gcm-x86_64_pl
diff -N patches/patch-crypto_modes_asm_aesni-gcm-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_modes_asm_aesni-gcm-x86_64_pl  15 Jan 2023 13:01:58 
-0000
@@ -0,0 +1,19 @@
+Index: crypto/modes/asm/aesni-gcm-x86_64.pl
+--- crypto/modes/asm/aesni-gcm-x86_64.pl.orig
++++ crypto/modes/asm/aesni-gcm-x86_64.pl
+@@ -941,6 +941,7 @@ $code.=<<___;
+ ___
+ 
+ $code.=<<___;
++.rodata
+ .align        64
+ .Lbswap_mask:
+       .byte   15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
+@@ -954,6 +955,7 @@ $code.=<<___;
+       .byte   1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ .asciz        "AES-NI GCM module for x86_64, CRYPTOGAMS by 
<appro\@openssl.org>"
+ .align        64
++.previous
+ ___
+ if ($win64) {
+ $rec="%rcx";
Index: patches/patch-crypto_modes_asm_ghash-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_modes_asm_ghash-x86_64_pl
diff -N patches/patch-crypto_modes_asm_ghash-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_modes_asm_ghash-x86_64_pl      15 Jan 2023 12:20:12 
-0000
@@ -0,0 +1,19 @@
+Index: crypto/modes/asm/ghash-x86_64.pl
+--- crypto/modes/asm/ghash-x86_64.pl.orig
++++ crypto/modes/asm/ghash-x86_64.pl
+@@ -1601,6 +1601,7 @@ ___
+ }
+ 
+ $code.=<<___;
++.rodata
+ .align        64
+ .Lbswap_mask:
+       .byte   15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
+@@ -1654,6 +1655,7 @@ $code.=<<___;
+ 
+ .asciz        "GHASH for x86_64, CRYPTOGAMS by <appro\@openssl.org>"
+ .align        64
++.previous
+ ___
+ 
+ # EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
Index: patches/patch-crypto_poly1305_asm_poly1305-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_poly1305_asm_poly1305-x86_64_pl
diff -N patches/patch-crypto_poly1305_asm_poly1305-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_poly1305_asm_poly1305-x86_64_pl        15 Jan 2023 
12:49:10 -0000
@@ -0,0 +1,19 @@
+Index: crypto/poly1305/asm/poly1305-x86_64.pl
+--- crypto/poly1305/asm/poly1305-x86_64.pl.orig
++++ crypto/poly1305/asm/poly1305-x86_64.pl
+@@ -3774,6 +3774,7 @@ poly1305_emit_base2_44:
+ ___
+ }     }       }
+ $code.=<<___;
++.rodata
+ .align        64
+ .Lconst:
+ .Lmask24:
+@@ -3810,6 +3811,7 @@ ___
+ $code.=<<___;
+ .asciz        "Poly1305 for x86_64, CRYPTOGAMS by <appro\@openssl.org>"
+ .align        16
++.previous
+ ___
+ 
+ {     # chacha20-poly1305 helpers
Index: patches/patch-crypto_sha_asm_keccak1600-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_sha_asm_keccak1600-x86_64_pl
diff -N patches/patch-crypto_sha_asm_keccak1600-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_sha_asm_keccak1600-x86_64_pl   15 Jan 2023 12:28:41 
-0000
@@ -0,0 +1,11 @@
+Index: crypto/sha/asm/keccak1600-x86_64.pl
+--- crypto/sha/asm/keccak1600-x86_64.pl.orig
++++ crypto/sha/asm/keccak1600-x86_64.pl
+@@ -563,6 +563,7 @@ SHA3_squeeze:
+ ___
+ }
+ $code.=<<___;
++.rodata
+ .align        256
+       .quad   0,0,0,0,0,0,0,0
+ .type iotas,\@object
Index: patches/patch-crypto_sha_asm_sha1-mb-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_sha_asm_sha1-mb-x86_64_pl
diff -N patches/patch-crypto_sha_asm_sha1-mb-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_sha_asm_sha1-mb-x86_64_pl      15 Jan 2023 13:25:44 
-0000
@@ -0,0 +1,20 @@
+Index: crypto/sha/asm/sha1-mb-x86_64.pl
+--- crypto/sha/asm/sha1-mb-x86_64.pl.orig
++++ crypto/sha/asm/sha1-mb-x86_64.pl
+@@ -1354,7 +1354,7 @@ $code.=<<___;
+ ___
+                                               }       }}}
+ $code.=<<___;
+-
++.rodata
+ .align        256
+       .long   0x5a827999,0x5a827999,0x5a827999,0x5a827999     # K_00_19
+       .long   0x5a827999,0x5a827999,0x5a827999,0x5a827999     # K_00_19
+@@ -1369,6 +1369,7 @@ K_XX_XX:
+       .long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f     # pbswap
+       .byte   0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
+       .asciz  "SHA1 multi-block transform for x86_64, CRYPTOGAMS by 
<appro\@openssl.org>"
++.previous
+ ___
+ 
+ if ($win64) {
Index: patches/patch-crypto_sha_asm_sha1-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_sha_asm_sha1-x86_64_pl
diff -N patches/patch-crypto_sha_asm_sha1-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_sha_asm_sha1-x86_64_pl 15 Jan 2023 12:20:12 -0000
@@ -0,0 +1,19 @@
+Index: crypto/sha/asm/sha1-x86_64.pl
+--- crypto/sha/asm/sha1-x86_64.pl.orig
++++ crypto/sha/asm/sha1-x86_64.pl
+@@ -1830,6 +1830,7 @@ ___
+ }
+ }
+ $code.=<<___;
++.rodata
+ .align        64
+ K_XX_XX:
+ .long 0x5a827999,0x5a827999,0x5a827999,0x5a827999     # K_00_19
+@@ -1843,6 +1844,7 @@ K_XX_XX:
+ .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f     # pbswap mask
+ .long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f     # pbswap mask
+ .byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
++.previous
+ ___
+ }}}
+ $code.=<<___;
Index: patches/patch-crypto_sha_asm_sha512-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_sha_asm_sha512-x86_64_pl
diff -N patches/patch-crypto_sha_asm_sha512-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_sha_asm_sha512-x86_64_pl       15 Jan 2023 12:20:12 
-0000
@@ -0,0 +1,31 @@
+Index: crypto/sha/asm/sha512-x86_64.pl
+--- crypto/sha/asm/sha512-x86_64.pl.orig
++++ crypto/sha/asm/sha512-x86_64.pl
+@@ -416,6 +416,7 @@ ___
+ 
+ if ($SZ==4) {
+ $code.=<<___;
++.rodata
+ .align        64
+ .type $TABLE,\@object
+ $TABLE:
+@@ -459,9 +460,11 @@ $TABLE:
+       .long   0xffffffff,0xffffffff,0x03020100,0x0b0a0908
+       .long   0xffffffff,0xffffffff,0x03020100,0x0b0a0908
+       .asciz  "SHA256 block transform for x86_64, CRYPTOGAMS by 
<appro\@openssl.org>"
++.previous
+ ___
+ } else {
+ $code.=<<___;
++.rodata
+ .align        64
+ .type $TABLE,\@object
+ $TABLE:
+@@ -549,6 +552,7 @@ $TABLE:
+       .quad   0x0001020304050607,0x08090a0b0c0d0e0f
+       .quad   0x0001020304050607,0x08090a0b0c0d0e0f
+       .asciz  "SHA512 block transform for x86_64, CRYPTOGAMS by 
<appro\@openssl.org>"
++.previous
+ ___
+ }
+ 
Index: patches/patch-crypto_whrlpool_asm_wp-x86_64_pl
===================================================================
RCS file: patches/patch-crypto_whrlpool_asm_wp-x86_64_pl
diff -N patches/patch-crypto_whrlpool_asm_wp-x86_64_pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-crypto_whrlpool_asm_wp-x86_64_pl      15 Jan 2023 13:07:40 
-0000
@@ -0,0 +1,11 @@
+Index: crypto/whrlpool/asm/wp-x86_64.pl
+--- crypto/whrlpool/asm/wp-x86_64.pl.orig
++++ crypto/whrlpool/asm/wp-x86_64.pl
+@@ -234,6 +234,7 @@ $code.=<<___;
+ .cfi_endproc
+ .size $func,.-$func
+ 
++.rodata
+ .align        64
+ .type $table,\@object
+ $table:

Reply via email to