> :http://build-failures.rhaalovely.net/aarch64/2023-01-16/security/sslscan.log
> 
> ld: error: chacha-armv8.S:(function ChaCha20_ctr32: .text+0x4): relocation 
> R_AARCH64_ADR_PREL_LO21 out of range: -1633764 is not in [-1048576, 1048575]

Patch below fixes this. I missed an adr that should be computed with
adrp + add :lo12: (like the remaining ones in the same file). Also move
the .rodata down to match the file in 3.0 more closely.

Regress still passes.

I'll of course also bump sslscan.

Index: 1.1/Makefile
===================================================================
RCS file: /cvs/ports/security/openssl/1.1/Makefile,v
retrieving revision 1.48
diff -u -p -r1.48 Makefile
--- 1.1/Makefile        17 Jan 2023 16:14:42 -0000      1.48
+++ 1.1/Makefile        18 Jan 2023 19:54:43 -0000
@@ -8,7 +8,7 @@ PORTROACH=      limit:^1\.1\.[0-9][a-z] skipb
 V=             1.1.1s
 PKGSPEC=       openssl->=1.1.0v0,<1.2v0
 EPOCH=         0
-REVISION=      3
+REVISION=      4
 
 SHLIBVER=      11.6
 SHARED_LIBS=   crypto ${SHLIBVER} \
Index: 1.1/patches/patch-crypto_chacha_asm_chacha-armv8_pl
===================================================================
RCS file: 
/cvs/ports/security/openssl/1.1/patches/patch-crypto_chacha_asm_chacha-armv8_pl,v
retrieving revision 1.1
diff -u -p -r1.1 patch-crypto_chacha_asm_chacha-armv8_pl
--- 1.1/patches/patch-crypto_chacha_asm_chacha-armv8_pl 14 Jan 2023 17:09:56 
-0000      1.1
+++ 1.1/patches/patch-crypto_chacha_asm_chacha-armv8_pl 18 Jan 2023 20:31:04 
-0000
@@ -1,16 +1,15 @@
 Index: crypto/chacha/asm/chacha-armv8.pl
 --- crypto/chacha/asm/chacha-armv8.pl.orig
 +++ crypto/chacha/asm/chacha-armv8.pl
-@@ -122,7 +122,7 @@ my ($a3,$b3,$c3,$d3)=map(($_&~3)+(($_+1)&3),($a2,$b2,$
- $code.=<<___;
- #include "arm_arch.h"
- 
--.text
-+.rodata
- 
+@@ -127,6 +127,7 @@ $code.=<<___;
  .extern       OPENSSL_armcap_P
  .hidden       OPENSSL_armcap_P
-@@ -140,6 +140,8 @@ $code.=<<___;
+ 
++.rodata
+ .align        5
+ .Lsigma:
+ .quad 0x3320646e61707865,0x6b20657479622d32           // endian-neutral
+@@ -140,12 +141,15 @@ $code.=<<___;
  #endif
  .asciz        "ChaCha20 for ARMv8, CRYPTOGAMS by <appro\@openssl.org>"
  
@@ -19,7 +18,15 @@ Index: crypto/chacha/asm/chacha-armv8.pl
  .globl        ChaCha20_ctr32
  .type ChaCha20_ctr32,%function
  .align        5
-@@ -162,7 +164,8 @@ ChaCha20_ctr32:
+ ChaCha20_ctr32:
+       cbz     $len,.Labort
+-      adr     @x[0],.LOPENSSL_armcap_P
++      adrp    @x[0],.LOPENSSL_armcap_P
++      add     @x[0],@x[0],:lo12:.LOPENSSL_armcap_P
+       cmp     $len,#192
+       b.lo    .Lshort
+ #ifdef        __ILP32__
+@@ -162,7 +166,8 @@ ChaCha20_ctr32:
        stp     x29,x30,[sp,#-96]!
        add     x29,sp,#0
  
@@ -29,7 +36,7 @@ Index: crypto/chacha/asm/chacha-armv8.pl
        stp     x19,x20,[sp,#16]
        stp     x21,x22,[sp,#32]
        stp     x23,x24,[sp,#48]
-@@ -385,7 +388,8 @@ ChaCha20_neon:
+@@ -385,7 +390,8 @@ ChaCha20_neon:
        stp     x29,x30,[sp,#-96]!
        add     x29,sp,#0
  
@@ -39,7 +46,7 @@ Index: crypto/chacha/asm/chacha-armv8.pl
        stp     x19,x20,[sp,#16]
        stp     x21,x22,[sp,#32]
        stp     x23,x24,[sp,#48]
-@@ -707,7 +711,8 @@ ChaCha20_512_neon:
+@@ -707,7 +713,8 @@ ChaCha20_512_neon:
        stp     x29,x30,[sp,#-96]!
        add     x29,sp,#0
  

Reply via email to