diff --git a/2002-rpm-anolis-support-sw_64.patch b/2002-rpm-anolis-support-sw_64.patch new file mode 100644 index 0000000000000000000000000000000000000000..0fdee40dfcecb399d75684c00d9e20f88c5bec5d --- /dev/null +++ b/2002-rpm-anolis-support-sw_64.patch @@ -0,0 +1,53 @@ +From 8f1f102e29093740b8d0ebde97dbec84a2e36b73 Mon Sep 17 00:00:00 2001 +From: Weisson +Date: Thu, 18 Jan 2024 16:28:07 +0800 +Subject: [PATCH] update config utils to support sw. + +Signed-off-by: Weisson +--- + config.guess | 8 ++++++++ + config.sub | 2 ++ + 2 files changed, 10 insertions(+) + +diff --git a/config.guess b/config.guess +index f32079a..5fa922c 100755 +--- a/config.guess ++++ b/config.guess +@@ -921,6 +921,14 @@ EOF + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; ++ sw_64:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ sw) UNAME_MACHINE=sw_64 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi ++ echo ${UNAME_MACHINE}-sunway-linux-${LIBC} ++ exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; +diff --git a/config.sub b/config.sub +index 6759825..8273800 100755 +--- a/config.sub ++++ b/config.sub +@@ -238,6 +238,7 @@ case $basic_machine in + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ ++ | sw_64 \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ +@@ -314,6 +315,7 @@ case $basic_machine in + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ ++ | sw_64-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ +-- +2.31.1 + diff --git a/2004-rpm-anolis-support-sw_64.patch b/2004-rpm-anolis-support-sw_64.patch new file mode 100644 index 0000000000000000000000000000000000000000..0fdee40dfcecb399d75684c00d9e20f88c5bec5d --- /dev/null +++ b/2004-rpm-anolis-support-sw_64.patch @@ -0,0 +1,53 @@ +From 8f1f102e29093740b8d0ebde97dbec84a2e36b73 Mon Sep 17 00:00:00 2001 +From: Weisson +Date: Thu, 18 Jan 2024 16:28:07 +0800 +Subject: [PATCH] update config utils to support sw. + +Signed-off-by: Weisson +--- + config.guess | 8 ++++++++ + config.sub | 2 ++ + 2 files changed, 10 insertions(+) + +diff --git a/config.guess b/config.guess +index f32079a..5fa922c 100755 +--- a/config.guess ++++ b/config.guess +@@ -921,6 +921,14 @@ EOF + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; ++ sw_64:Linux:*:*) ++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in ++ sw) UNAME_MACHINE=sw_64 ;; ++ esac ++ objdump --private-headers /bin/sh | grep -q ld.so.1 ++ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi ++ echo ${UNAME_MACHINE}-sunway-linux-${LIBC} ++ exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; +diff --git a/config.sub b/config.sub +index 6759825..8273800 100755 +--- a/config.sub ++++ b/config.sub +@@ -238,6 +238,7 @@ case $basic_machine in + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ ++ | sw_64 \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ +@@ -314,6 +315,7 @@ case $basic_machine in + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ ++ | sw_64-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ +-- +2.31.1 + diff --git a/rpm-4.14.3-keep-compatibility-between-sw-and-other-architecture.patch b/rpm-4.14.3-keep-compatibility-between-sw-and-other-architecture.patch new file mode 100644 index 0000000000000000000000000000000000000000..8902a970c103fadd495c53928df9205b12b045a4 --- /dev/null +++ b/rpm-4.14.3-keep-compatibility-between-sw-and-other-architecture.patch @@ -0,0 +1,31 @@ +From 38131090ed022d9e133ccf601004e7ec1745d87c Mon Sep 17 00:00:00 2001 +From: Weisson +Date: Mon, 8 Apr 2024 14:59:22 +0800 +Subject: [PATCH] keep compatibility between sw and other architecture. + +Signed-off-by: Weisson +--- + system.h | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/system.h b/system.h +index 570cef1..a8f3043 100644 +--- a/system.h ++++ b/system.h +@@ -127,4 +127,13 @@ extern int fdatasync(int fildes); + + #include + ++/* ============= for sw arch compatibility ======== */ ++#ifndef EM_SW_64 ++# ifndef SW_64 ++# define EM_SW_64 0x9916 ++# else ++# define EM_SW_64 0x9906 ++# endif ++#endif ++ + #endif /* H_SYSTEM */ +-- +2.39.3 + diff --git a/rpm-4.14.3-sw.patch b/rpm-4.14.3-sw.patch new file mode 100644 index 0000000000000000000000000000000000000000..e2271348d1d233aca8bbb67989e33c5acc7877dd --- /dev/null +++ b/rpm-4.14.3-sw.patch @@ -0,0 +1,119 @@ +diff -Naur rpm-4.14.3.org/installplatform rpm-4.14.3.sw/installplatform +--- rpm-4.14.3.org/installplatform 2023-05-11 17:16:20.818506688 +0800 ++++ rpm-4.14.3.sw/installplatform 2023-05-12 14:44:13.520745718 +0800 +@@ -114,6 +114,12 @@ + CANONARCH=alpha + CANONCOLOR=0 + ;; ++ sw_64*) ++ ISANAME=sw_64 ++ ISABITS=64 ++ CANONARCH=sw_64 ++ CANONCOLOR=0 ++ ;; + aarch64) + ISANAME=aarch + ISABITS=64 +diff -Naur rpm-4.14.3.org/lib/rpmrc.c rpm-4.14.3.sw/lib/rpmrc.c +--- rpm-4.14.3.org/lib/rpmrc.c 2023-05-11 17:16:20.794506687 +0800 ++++ rpm-4.14.3.sw/lib/rpmrc.c 2023-05-12 17:30:27.072394959 +0800 +@@ -1247,6 +1247,13 @@ + strcpy(un.machine, "loongarch32"); + # endif /* __loongarch64 */ + ++ ++# if defined(__GNUC__) && defined(__alpha__) ++ { ++ strcpy(un.machine, "sw_64sw6b"); ++ } ++# endif ++ + # if defined(__GNUC__) && defined(__alpha__) + { + unsigned long amask, implver; +diff -Naur rpm-4.14.3.org/macros.in rpm-4.14.3.sw/macros.in +--- rpm-4.14.3.org/macros.in 2023-05-11 17:16:20.813506688 +0800 ++++ rpm-4.14.3.sw/macros.in 2023-05-12 14:54:53.461787376 +0800 +@@ -1154,6 +1154,10 @@ + %sparc sparc sparcv8 sparcv9 sparcv9v sparc64 sparc64v + + #------------------------------------------------------------------------------ ++# arch macro for all supported Sw_64 processors ++%sw_64 sw_64 sw_64sw6b ++ ++#------------------------------------------------------------------------------ + # arch macro for all supported Alpha processors + %alpha alpha alphaev56 alphaev6 alphaev67 + +diff -Naur rpm-4.14.3.org/rpmrc.in rpm-4.14.3.sw/rpmrc.in +--- rpm-4.14.3.org/rpmrc.in 2023-05-11 17:16:20.704506681 +0800 ++++ rpm-4.14.3.sw/rpmrc.in 2023-05-11 17:26:48.130547524 +0800 +@@ -25,6 +25,9 @@ + optflags: amd64 -O2 -g + optflags: ia32e -O2 -g + ++optflags: sw_64 -O2 -g -mieee ++optflags: sw_64sw6b -O2 -g -mieee -mtune=sw6b ++ + optflags: alpha -O2 -g -mieee + optflags: alphaev5 -O2 -g -mieee -mtune=ev5 + optflags: alphaev56 -O2 -g -mieee -mtune=ev56 +@@ -110,6 +113,7 @@ + archcolor: noarch 0 + archcolor: i386 1 + archcolor: alpha 2 ++archcolor: sw_64 2 + archcolor: sparc 1 + archcolor: sparc64 2 + archcolor: sparcv9 2 +@@ -173,6 +177,9 @@ + arch_canon: ia32e: ia32e 1 + arch_canon: em64t: em64t 1 + ++arch_canon: sw_64: sw_64 2 ++arch_canon: sw_64sw6b: sw_64sw6b 2 ++ + arch_canon: alpha: alpha 2 + arch_canon: alphaev5: alphaev5 2 + arch_canon: alphaev56: alphaev56 2 +@@ -310,6 +317,9 @@ + buildarchtranslate: i486: i386 + buildarchtranslate: i386: i386 + ++buildarchtranslate: sw_64: sw_64 ++buildarchtranslate: sw_64sw6b: sw_64 ++ + buildarchtranslate: alphaev5: alpha + buildarchtranslate: alphaev56: alpha + buildarchtranslate: alphapca56: alpha +@@ -402,6 +412,9 @@ + arch_compat: alphaev5: alpha + arch_compat: alpha: axp noarch + ++arch_compat: sw_64sw6b: sw_64 ++arch_compat: sw_64: axp noarch ++ + arch_compat: athlon: i686 + arch_compat: geode: i686 + arch_compat: pentium4: pentium3 +@@ -567,6 +580,9 @@ + buildarch_compat: alphaev5: alpha + buildarch_compat: alpha: noarch + ++buildarch_compat: sw_64sw6b: sw_64 ++buildarch_compat: sw_64: noarch ++ + buildarch_compat: m68k: noarch + + buildarch_compat: ppc8260: noarch +diff -Naur rpm-4.14.3.org/tools/elfdeps.c rpm-4.14.3.sw/tools/elfdeps.c +--- rpm-4.14.3.org/tools/elfdeps.c 2023-05-11 17:16:20.820506688 +0800 ++++ rpm-4.14.3.sw/tools/elfdeps.c 2023-05-12 14:45:04.537749039 +0800 +@@ -86,6 +86,7 @@ + if (ehdr->e_ident[EI_CLASS] == ELFCLASS64) { + switch (ehdr->e_machine) { + case EM_ALPHA: ++ case EM_SW_64: + case EM_FAKE_ALPHA: + /* alpha doesn't traditionally have 64bit markers */ + break; diff --git a/rpm.spec b/rpm.spec index a05f7aa1b7a75bb4f9444e67dee30b56ce26a77b..bbd00b2c7fd2b74eb3756d5d11a63fa22c57bc06 100644 --- a/rpm.spec +++ b/rpm.spec @@ -1,4 +1,4 @@ -%define anolis_release .0.5 +%define anolis_release .0.8 %define _legacy_common_support 1 # build against xz? @@ -188,6 +188,9 @@ Patch3002: 0001-fix-a-copy-paste-help-description-of-whatconflicts.patch # defined as source file to seperate with other patches Source1000: 0001-support-sqlite-backend-rpmdb.patch +Patch2002: rpm-4.14.3-sw.patch +Patch2003: 2004-rpm-anolis-support-sw_64.patch +Patch2004: rpm-4.14.3-keep-compatibility-between-sw-and-other-architecture.patch # Partially GPL/LGPL dual-licensed and some bits with BSD # SourceLicense: (GPLv2+ and LGPLv2+ with exceptions) and BSD @@ -756,6 +759,15 @@ rpm -q rpm 2>&1 | grep bdb && rpmdb --rebuilddb %doc doc/librpm/html/* %changelog +* Mon Apr 8 2024 Weisson - 4.14.4-27.0.8 +- keep compatibility between sw and other architecture. + +* Wed Mar 20 2024 Weisson - 4.14.4-27.0.7 +- update config to support sw64 Architecture. + +* Wed Mar 20 2024 hpp - 4.14.4-27.0.6 +- Add sw64 Architecture + * Thu Feb 29 2024 Kaiqiang Wang - 4.14.4-27.0.5 - Backport file handling code from rpm-4.19 to fix CVE-2021-35937, CVE-2021-35938 and CVE-2021-35939