diff --git a/0001-rpm-uos-add-sw64-support.patch b/0001-rpm-uos-add-sw64-support.patch new file mode 100644 index 0000000000000000000000000000000000000000..69877fc91adf8785984e5296e971d10e4aea3f56 --- /dev/null +++ b/0001-rpm-uos-add-sw64-support.patch @@ -0,0 +1,168 @@ +From 8f4ace3ce5619fec7a1b291d305412cf1b79613c Mon Sep 17 00:00:00 2001 +From: zhuhongbo +Date: Fri, 21 Mar 2025 15:15:28 +0800 +Subject: [PATCH] rpm uos add sw64 support + +--- + build-aux/config.guess | 8 ++++++++ + build-aux/config.sub | 1 + + installplatform | 6 ++++++ + lib/rpmrc.c | 6 ++++++ + macros.in | 1 + + rpmrc.in | 15 +++++++++++++++ + tools/elfdeps.c | 1 + + 7 files changed, 38 insertions(+) + +diff --git a/build-aux/config.guess b/build-aux/config.guess +index e7a6fe3..bbc49f3 100755 +--- a/build-aux/config.guess ++++ b/build-aux/config.guess +@@ -982,6 +982,14 @@ EOF + UNAME_MACHINE=aarch64_be + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; ++ 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 2>/dev/null` in + EV5) UNAME_MACHINE=alphaev5 ;; +diff --git a/build-aux/config.sub b/build-aux/config.sub +index a6d99a0..faf6806 100755 +--- a/build-aux/config.sub ++++ b/build-aux/config.sub +@@ -1180,6 +1180,7 @@ case $cpu-$vendor in + case $cpu in + 1750a | 580 \ + | a29k \ ++ | sw_64 \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ +diff --git a/installplatform b/installplatform +index a5ad7c5..8b9ec0e 100755 +--- a/installplatform ++++ b/installplatform +@@ -108,6 +108,12 @@ for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do + CANONARCH=arm + CANONCOLOR=0 + ;; ++ sw_64*) ++ ISANAME=sw_64 ++ ISABITS=64 ++ CANONARCH=sw_64 ++ CANONCOLOR=0 ++ ;; + alpha*) + ISANAME=alpha + ISABITS=64 +diff --git a/lib/rpmrc.c b/lib/rpmrc.c +index 1583228..7ab61fc 100644 +--- a/lib/rpmrc.c ++++ b/lib/rpmrc.c +@@ -1274,6 +1274,12 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) + } + # endif + ++# if defined(__GNUC__) && defined(__sw_64__) ++ { ++ strcpy(un.machine, "sw_64sw6b"); ++ } ++# endif ++ + # if defined(__linux__) && defined(__i386__) + { + char mclass = (char) (RPMClass() | '0'); +diff --git a/macros.in b/macros.in +index 6b7760a..b253b1b 100644 +--- a/macros.in ++++ b/macros.in +@@ -1105,6 +1105,7 @@ package or when debugging this package.\ + #------------------------------------------------------------------------------ + # arch macro for all supported Alpha processors + %alpha alpha alphaev56 alphaev6 alphaev67 ++%sw_64 sw_64 sw_64sw6b + + #------------------------------------------------------------------------------ + # arch macro for all supported PowerPC 64 processors +diff --git a/rpmrc.in b/rpmrc.in +index 2975a3a..a401503 100644 +--- a/rpmrc.in ++++ b/rpmrc.in +@@ -25,6 +25,9 @@ optflags: x86_64 -O2 -g + 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 +@@ -112,6 +115,7 @@ optflags: loongarch64 -O2 -g + archcolor: noarch 0 + archcolor: i386 1 + archcolor: alpha 2 ++archcolor: sw_64 2 + archcolor: sparc 1 + archcolor: sparc64 2 + archcolor: sparcv9 2 +@@ -176,6 +180,9 @@ arch_canon: amd64: amd64 1 + 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 +@@ -314,6 +321,9 @@ buildarchtranslate: i586: i386 + 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 +@@ -399,6 +409,8 @@ buildarchtranslate: loongarch64: loongarch64 + + ############################################################# + # Architecture compatibility ++arch_compat: sw_64sw6b: sw_64 ++arch_compat: sw_64: axp noarch + + arch_compat: alphaev67: alphaev6 + arch_compat: alphaev6: alphapca56 +@@ -566,6 +578,9 @@ buildarch_compat: sparcv9: sparcv8 + buildarch_compat: sparcv8: sparc + buildarch_compat: sparc: noarch + ++buildarch_compat: sw_64sw6b: sw_64 ++buildarch_compat: sw_64: noarch ++ + buildarch_compat: alphaev67: alphaev6 + buildarch_compat: alphaev6: alphapca56 + buildarch_compat: alphapca56: alphaev56 +diff --git a/tools/elfdeps.c b/tools/elfdeps.c +index 9cb7b68..3cd50fe 100644 +--- a/tools/elfdeps.c ++++ b/tools/elfdeps.c +@@ -84,6 +84,7 @@ static const char *mkmarker(GElf_Ehdr *ehdr) + 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; +-- +2.39.3 + diff --git a/rpm.spec b/rpm.spec index 4225856a52bff4748a5cf7e055748817d81a1e20..13fa97d499e1524839caa8aafa6f0ac0a0a03044 100644 --- a/rpm.spec +++ b/rpm.spec @@ -1,4 +1,4 @@ -%define anolis_release 3 +%define anolis_release 4 %define rpmhome /usr/lib/rpm %bcond_with check %bcond_without xz @@ -34,6 +34,7 @@ Patch0: rpm-4.17.x-rpm_dbpath.patch Patch1: rpm-4.18.x-ldflags.patch # Allow install docs when building without pandoc Patch2: rpm-4.18.x-revert-pandoc-cond.patch +Patch3: 0001-rpm-uos-add-sw64-support.patch License: GPLv2+ BuildRequires: automake libtool system-rpm-config systemd-rpm-macros make gawk @@ -306,6 +307,9 @@ and testing on Linux operating systems. %prep %autosetup -n rpm-%{srcver} -p1 +%ifnarch sw_64 +%patch -P3 -R -p1 +%endif %build %set_build_flags @@ -592,6 +596,9 @@ fi %doc docs/librpm/html/* %changelog +* Fri Mar 21 2025 zhuhongbo - 4.18.2-4 +- rpm uos add sw64 support + * Mon Mar 25 2024 Liwei ge - 4.18.2-3 - Rebuild with ima-evm 1.5