openssl: Fix build on riscv

GCC-14 unearths this bug which is already fixed upstream so backport it

(From OE-Core rev: 0d5c61a1f5099639acf58b33288f466ce47847b5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj
2024-05-13 16:05:28 -07:00
committed by Richard Purdie
parent c7e81b8067
commit a1d4f0b105
2 changed files with 44 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
From 725b1530456545e8511adc9cbdd265309dffad53 Mon Sep 17 00:00:00 2001
From: Hongren Zheng <i@zenithal.me>
Date: Fri, 26 Apr 2024 06:03:43 +0000
Subject: [PATCH] Implement riscv_vlen_asm for riscv32
riscvcap.c: undefined reference to 'riscv_vlen_asm'
Upstream-Status: Backport [https://github.com/openssl/openssl/pull/24270]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
crypto/riscv32cpuid.pl | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/crypto/riscv32cpuid.pl b/crypto/riscv32cpuid.pl
index 20694e7..ac1c043 100644
--- a/crypto/riscv32cpuid.pl
+++ b/crypto/riscv32cpuid.pl
@@ -84,5 +84,22 @@ OPENSSL_cleanse:
___
}
+{
+my ($ret) = ('a0');
+$code .= <<___;
+################################################################################
+# size_t riscv_vlen_asm(void)
+# Return VLEN (i.e. the length of a vector register in bits).
+.p2align 3
+.globl riscv_vlen_asm
+.type riscv_vlen_asm,\@function
+riscv_vlen_asm:
+ csrr $ret, vlenb
+ slli $ret, $ret, 3
+ ret
+.size riscv_vlen_asm,.-riscv_vlen_asm
+___
+}
+
print $code;
close STDOUT or die "error closing STDOUT: $!";
--
2.45.0

View File

@@ -12,6 +12,7 @@ SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
file://0001-Configure-do-not-tweak-mips-cflags.patch \
file://0001-Added-handshake-history-reporting-when-test-fails.patch \
file://0001-Implement-riscv_vlen_asm-for-riscv32.patch \
file://bti.patch \
file://CVE-2024-4603.patch \
"