From 657fcc9a5ce3ccf24071e8c40dd0e6bd8e5eb22a Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 16 May 2023 09:16:16 +0000 Subject: [PATCH] import golang-1.19.6-1.module+el8.8.0+18289+edd6c8b6 --- .gitignore | 4 +- .golang.metadata | 4 +- SOURCES/fix-test-1024-leaf-certs.patch | 13 --- SOURCES/ppc64le-internal-linker-fix.patch | 122 ---------------------- SPECS/golang.spec | 20 ++-- 5 files changed, 18 insertions(+), 145 deletions(-) delete mode 100644 SOURCES/fix-test-1024-leaf-certs.patch delete mode 100644 SOURCES/ppc64le-internal-linker-fix.patch diff --git a/.gitignore b/.gitignore index a4a244e..573f4d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/go1.19.4-1-openssl-fips.tar.gz -SOURCES/go1.19.4.tar.gz +SOURCES/go1.19.6-1-openssl-fips.tar.gz +SOURCES/go1.19.6.tar.gz diff --git a/.golang.metadata b/.golang.metadata index 2d6b49a..b4c51aa 100644 --- a/.golang.metadata +++ b/.golang.metadata @@ -1,2 +1,2 @@ -9463e718b1a8daa61009caa6c113197cbefbe9eb SOURCES/go1.19.4-1-openssl-fips.tar.gz -6debf76aa6fb97daff4d49502153a47093883c28 SOURCES/go1.19.4.tar.gz +e990e956bbd3c1e52914ea39f075a1c666bde4e4 SOURCES/go1.19.6-1-openssl-fips.tar.gz +d85391faa6c2d74090008b9744e4664267700fd3 SOURCES/go1.19.6.tar.gz diff --git a/SOURCES/fix-test-1024-leaf-certs.patch b/SOURCES/fix-test-1024-leaf-certs.patch deleted file mode 100644 index ee6b25a..0000000 --- a/SOURCES/fix-test-1024-leaf-certs.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/crypto/tls/boring_test.go b/src/crypto/tls/boring_test.go -index 10d1cf0..51feb3b 100644 ---- a/src/crypto/tls/boring_test.go -+++ b/src/crypto/tls/boring_test.go -@@ -326,7 +326,7 @@ func TestBoringCertAlgs(t *testing.T) { - I_M2 := boringCert(t, "I_M2", I_R1.key, M2_R1, boringCertCA|boringCertFIPSOK) - - L1_I := boringCert(t, "L1_I", boringECDSAKey(t, elliptic.P384()), I_R1, boringCertLeaf|boringCertFIPSOK) -- L2_I := boringCert(t, "L2_I", boringRSAKey(t, 1024), I_R1, boringCertLeaf|boringCertNotBoring) -+ L2_I := boringCert(t, "L2_I", boringRSAKey(t, 1024), I_R1, boringCertLeaf) - - // client verifying server cert - testServerCert := func(t *testing.T, desc string, pool *x509.CertPool, key interface{}, list [][]byte, ok bool) { diff --git a/SOURCES/ppc64le-internal-linker-fix.patch b/SOURCES/ppc64le-internal-linker-fix.patch deleted file mode 100644 index f54a83b..0000000 --- a/SOURCES/ppc64le-internal-linker-fix.patch +++ /dev/null @@ -1,122 +0,0 @@ -diff --git a/src/cmd/go/testdata/script/trampoline_reuse_test.txt b/src/cmd/go/testdata/script/trampoline_reuse_test.txt -new file mode 100644 -index 0000000000000..bca897c16d054 ---- /dev/null -+++ b/src/cmd/go/testdata/script/trampoline_reuse_test.txt -@@ -0,0 +1,100 @@ -+# Verify PPC64 does not reuse a trampoline which is too far away. -+# This tests an edge case where the direct call relocation addend should -+# be ignored when computing the distance from the direct call to the -+# already placed trampoline -+[short] skip -+[!ppc64] [!ppc64le] skip -+[aix] skip -+ -+# Note, this program does not run. Presumably, 'DWORD $0' is simpler to -+# assembly 2^26 or so times. -+# -+# We build something which should be laid out as such: -+# -+# bar.Bar -+# main.Func1 -+# bar.Bar+400-tramp0 -+# main.BigAsm -+# main.Func2 -+# bar.Bar+400-tramp1 -+# -+# bar.Bar needs to be placed far enough away to generate relocations -+# from main package calls. and main.Func1 and main.Func2 are placed -+# a bit more than the direct call limit apart, but not more than 0x400 -+# bytes beyond it (to verify the reloc calc). -+ -+go build -+ -+-- go.mod -- -+ -+module foo -+ -+go 1.19 -+ -+-- main.go -- -+ -+package main -+ -+import "foo/bar" -+ -+func Func1() -+ -+func main() { -+ Func1() -+ bar.Bar2() -+} -+ -+-- foo.s -- -+ -+TEXT main·Func1(SB),0,$0-0 -+ CALL bar·Bar+0x400(SB) -+ CALL main·BigAsm(SB) -+// A trampoline will be placed here to bar.Bar -+ -+// This creates a gap sufficiently large to prevent trampoline reuse -+#define NOP64 DWORD $0; DWORD $0; DWORD $0; DWORD $0; DWORD $0; DWORD $0; DWORD $0; DWORD $0; -+#define NOP256 NOP64 NOP64 NOP64 NOP64 -+#define NOP2S10 NOP256 NOP256 NOP256 NOP256 -+#define NOP2S12 NOP2S10 NOP2S10 NOP2S10 NOP2S10 -+#define NOP2S14 NOP2S12 NOP2S12 NOP2S12 NOP2S12 -+#define NOP2S16 NOP2S14 NOP2S14 NOP2S14 NOP2S14 -+#define NOP2S18 NOP2S16 NOP2S16 NOP2S16 NOP2S16 -+#define NOP2S20 NOP2S18 NOP2S18 NOP2S18 NOP2S18 -+#define NOP2S22 NOP2S20 NOP2S20 NOP2S20 NOP2S20 -+#define NOP2S24 NOP2S22 NOP2S22 NOP2S22 NOP2S22 -+#define BIGNOP NOP2S24 NOP2S24 -+TEXT main·BigAsm(SB),0,$0-0 -+ // Fill to the direct call limit so Func2 must generate a new trampoline. -+ // As the implicit trampoline above is just barely unreachable. -+ BIGNOP -+ MOVD $main·Func2(SB), R3 -+ -+TEXT main·Func2(SB),0,$0-0 -+ CALL bar·Bar+0x400(SB) -+// Another trampoline should be placed here. -+ -+-- bar/bar.s -- -+ -+#define NOP64 DWORD $0; DWORD $0; DWORD $0; DWORD $0; DWORD $0; DWORD $0; DWORD $0; DWORD $0; -+#define NOP256 NOP64 NOP64 NOP64 NOP64 -+#define NOP2S10 NOP256 NOP256 NOP256 NOP256 -+#define NOP2S12 NOP2S10 NOP2S10 NOP2S10 NOP2S10 -+#define NOP2S14 NOP2S12 NOP2S12 NOP2S12 NOP2S12 -+#define NOP2S16 NOP2S14 NOP2S14 NOP2S14 NOP2S14 -+#define NOP2S18 NOP2S16 NOP2S16 NOP2S16 NOP2S16 -+#define NOP2S20 NOP2S18 NOP2S18 NOP2S18 NOP2S18 -+#define NOP2S22 NOP2S20 NOP2S20 NOP2S20 NOP2S20 -+#define NOP2S24 NOP2S22 NOP2S22 NOP2S22 NOP2S22 -+#define BIGNOP NOP2S24 NOP2S24 NOP2S10 -+// A very big not very interesting function. -+TEXT bar·Bar(SB),0,$0-0 -+ BIGNOP -+ -+-- bar/bar.go -- -+ -+package bar -+ -+func Bar() -+ -+func Bar2() { -+} -diff --git a/src/cmd/link/internal/ppc64/asm.go b/src/cmd/link/internal/ppc64/asm.go -index 5d5fbe2a97735..6313879da083c 100644 ---- a/src/cmd/link/internal/ppc64/asm.go -+++ b/src/cmd/link/internal/ppc64/asm.go -@@ -900,8 +900,9 @@ func trampoline(ctxt *ld.Link, ldr *loader.Loader, ri int, rs, s loader.Sym) { - if ldr.SymValue(tramp) == 0 { - break - } -- -- t = ldr.SymValue(tramp) + r.Add() - (ldr.SymValue(s) + int64(r.Off())) -+ // Note, the trampoline is always called directly. The addend of the original relocation is accounted for in the -+ // trampoline itself. -+ t = ldr.SymValue(tramp) - (ldr.SymValue(s) + int64(r.Off())) - - // With internal linking, the trampoline can be used if it is not too far. - // With external linking, the trampoline must be in this section for it to be reused. diff --git a/SPECS/golang.spec b/SPECS/golang.spec index eb60a6d..373e8d9 100644 --- a/SPECS/golang.spec +++ b/SPECS/golang.spec @@ -96,12 +96,13 @@ %endif %global go_api 1.19 -%global version 1.19.4 +%global version 1.19.6 %global pkg_release 1 Name: golang Version: %{version} -Release: 2%{?dist} +Release: 1%{?dist} + Summary: The Go Programming Language # source tree includes several copies of Mark.Twain-Tom.Sawyer.txt under Public Domain License: BSD and Public Domain @@ -148,8 +149,6 @@ Patch1939923: skip_test_rhbz1939923.patch Patch2: disable_static_tests_part1.patch Patch3: disable_static_tests_part2.patch -Patch4: ppc64le-internal-linker-fix.patch -Patch5: fix-test-1024-leaf-certs.patch Patch6: fix-memory-leak-evp-sign-verify.patch Patch227: cmd-link-use-correct-path-for-dynamic-loader-on-ppc6.patch @@ -249,10 +248,15 @@ popd patch -p1 < ../go-go%{version}-%{pkg_release}-openssl-fips/patches/000-initial-setup.patch patch -p1 < ../go-go%{version}-%{pkg_release}-openssl-fips/patches/001-initial-openssl-for-fips.patch +# Configure crypto tests +pushd ../go-go%{version}-%{pkg_release}-openssl-fips +ln -s ../go-go%{version} go +./scripts/configure-crypto-tests.sh +popd + + %patch2 -p1 %patch3 -p1 -%patch4 -p1 -%patch5 -p1 %patch6 -p1 %patch221 -p1 @@ -532,6 +536,10 @@ cd .. %endif %changelog +* Wed Mar 01 2023 David Benoit - 1.19.6-1 +- Rebase to Go 1.19.6 +- Resolves: rhbz#2174430 + * Tue Jan 3 2023 David Benoit - 1.19.4-2 - Fix memory leaks in EVP_{sign,verify}_raw - Resolves: rhbz#2132767