* update nspr to 4.35-2

This commit is contained in:
Alexander Baldeck 2023-12-27 23:21:41 +01:00
parent 130632ba9b
commit 3dfe95fdee
3 changed files with 153 additions and 27 deletions

View File

@ -0,0 +1,78 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Daiki Ueno <dueno@redhat.com>
Date: Thu, 4 Oct 2018 15:55:32 +0200
Subject: [PATCH] linux: prefer GCC-provided atomics to asssembly
implementation
---
pr/include/md/_linux.h | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
index ad57d083301c..57877b86fd84 100644
--- a/pr/include/md/_linux.h
+++ b/pr/include/md/_linux.h
@@ -105,43 +105,63 @@
#endif
#if defined(__i386__)
+#if defined(__GNUC__)
+/* Use GCC built-in functions */
+#define _PR_HAVE_ATOMIC_OPS
+#define _MD_INIT_ATOMIC()
+#define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1)
+#define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1)
+#define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i)
+#define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv)
+#else
#define _PR_HAVE_ATOMIC_OPS
#define _MD_INIT_ATOMIC()
extern PRInt32 _PR_x86_AtomicIncrement(PRInt32 *val);
#define _MD_ATOMIC_INCREMENT _PR_x86_AtomicIncrement
extern PRInt32 _PR_x86_AtomicDecrement(PRInt32 *val);
#define _MD_ATOMIC_DECREMENT _PR_x86_AtomicDecrement
extern PRInt32 _PR_x86_AtomicAdd(PRInt32 *ptr, PRInt32 val);
#define _MD_ATOMIC_ADD _PR_x86_AtomicAdd
extern PRInt32 _PR_x86_AtomicSet(PRInt32 *val, PRInt32 newval);
#define _MD_ATOMIC_SET _PR_x86_AtomicSet
#endif
+#endif
#if defined(__ia64__)
#define _PR_HAVE_ATOMIC_OPS
#define _MD_INIT_ATOMIC()
extern PRInt32 _PR_ia64_AtomicIncrement(PRInt32 *val);
#define _MD_ATOMIC_INCREMENT _PR_ia64_AtomicIncrement
extern PRInt32 _PR_ia64_AtomicDecrement(PRInt32 *val);
#define _MD_ATOMIC_DECREMENT _PR_ia64_AtomicDecrement
extern PRInt32 _PR_ia64_AtomicAdd(PRInt32 *ptr, PRInt32 val);
#define _MD_ATOMIC_ADD _PR_ia64_AtomicAdd
extern PRInt32 _PR_ia64_AtomicSet(PRInt32 *val, PRInt32 newval);
#define _MD_ATOMIC_SET _PR_ia64_AtomicSet
#endif
#if defined(__x86_64__)
+#if defined(__GNUC__)
+/* Use GCC built-in functions */
+#define _PR_HAVE_ATOMIC_OPS
+#define _MD_INIT_ATOMIC()
+#define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1)
+#define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1)
+#define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i)
+#define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv)
+#else
#define _PR_HAVE_ATOMIC_OPS
#define _MD_INIT_ATOMIC()
extern PRInt32 _PR_x86_64_AtomicIncrement(PRInt32 *val);
#define _MD_ATOMIC_INCREMENT _PR_x86_64_AtomicIncrement
extern PRInt32 _PR_x86_64_AtomicDecrement(PRInt32 *val);
#define _MD_ATOMIC_DECREMENT _PR_x86_64_AtomicDecrement
extern PRInt32 _PR_x86_64_AtomicAdd(PRInt32 *ptr, PRInt32 val);
#define _MD_ATOMIC_ADD _PR_x86_64_AtomicAdd
extern PRInt32 _PR_x86_64_AtomicSet(PRInt32 *val, PRInt32 newval);
#define _MD_ATOMIC_SET _PR_x86_64_AtomicSet
#endif
+#endif
#if defined(__loongarch__)
#if defined(__GNUC__)

View File

@ -0,0 +1,39 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
Date: Sun, 10 Dec 2023 16:11:13 +0100
Subject: [PATCH] configure.in: Remove assembly files from build
---
configure.in | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/configure.in b/configure.in
index 7d4446689a82..9d14d1b4ab91 100644
--- a/configure.in
+++ b/configure.in
@@ -1683,21 +1683,21 @@ tools are selected during the Xcode/Developer Tools installation.])
;;
i*86)
AC_DEFINE(i386)
- PR_MD_ASFILES=os_Linux_x86.s
+ PR_MD_ASFILES=
;;
ia64)
PR_MD_ASFILES=os_Linux_ia64.s
;;
x86_64)
if test -n "$USE_64"; then
- PR_MD_ASFILES=os_Linux_x86_64.s
+ PR_MD_ASFILES=
elif test -n "$USE_X32"; then
- PR_MD_ASFILES=os_Linux_x86_64.s
+ PR_MD_ASFILES=
CC="$CC -mx32"
CXX="$CXX -mx32"
else
AC_DEFINE(i386)
- PR_MD_ASFILES=os_Linux_x86.s
+ PR_MD_ASFILES=
CC="$CC -m32"
CXX="$CXX -m32"
fi

View File

@ -5,20 +5,28 @@
pkgname=nspr
pkgver=4.35
pkgrel=1.2
pkgrel=2
pkgdesc="Netscape Portable Runtime"
url="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR"
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
license=(MPL GPL)
depends=(glibc sh)
makedepends=(zip mercurial)
license=(MPL-2.0)
depends=(
glibc
sh
)
makedepends=(
mercurial
zip
)
_revision=b563bfc16c887c48b038b7b441fcc4e40a126d3b
source=("hg+https://hg.mozilla.org/projects/nspr#revision=$_revision"
nspr-4.35-b1815947.patch
nspr-4.35-parenthesis.patch)
sha256sums=('SKIP'
'32c1180a2fbe2e7dad6d09f381a60d5408ba7e01a652c57a6cf235952a135442'
'11956ba078030661c6201965a202be0ddc6065e9793d075394579d67d4630a92')
source=(
"hg+https://hg.mozilla.org/projects/nspr#revision=$_revision"
0001-linux-prefer-GCC-provided-atomics-to-asssembly-imple.patch
0002-configure.in-Remove-assembly-files-from-build.patch
)
b2sums=('SKIP'
'fe81bbb23478958438e385ec5563842cdaf7400021def0d2f2184c0c38389e75f28ed7a4f3b52cada4d76c6318c104dda661f1d4efaa224bc832a989729ef852'
'1fd6e9b1f3111a29a052b6034f796e4e9577a3dbb2d0e96798ce1f47b74f515c882c9f595198fa1646648611525b48857b33ed62e713991e2f28850690e99060')
pkgver() {
cd nspr
@ -27,26 +35,27 @@ pkgver() {
prepare() {
cd nspr
patch -Np1 -i ${srcdir}/nspr-4.35-b1815947.patch
patch -Np1 -i ${srcdir}/nspr-4.35-parenthesis.patch
# https://bugzilla.mozilla.org/show_bug.cgi?id=1496426
# https://gitlab.archlinux.org/archlinux/packaging/packages/nspr/-/merge_requests/1
patch -Np1 -i ../0001-linux-prefer-GCC-provided-atomics-to-asssembly-imple.patch
patch -Np1 -i ../0002-configure.in-Remove-assembly-files-from-build.patch
autoreconf -fvi
}
build() {
local configure_options=(
--prefix=/usr
--libdir=/usr/lib
--includedir=/usr/include/nspr
--enable-optimize
--disable-debug
--enable-64bit
)
cd nspr
case "${CARCH}" in
powerpc) ;;
*) _options=(--enable-64bit) ;;
esac
unset CFLAGS CXXFLAGS
./configure \
--prefix=/usr \
--libdir=/usr/lib \
--includedir=/usr/include/nspr \
--enable-optimize="-O2" \
--disable-debug ${_options[@]}
./configure "${configure_options[@]}"
make ${SOURCE_DATE_EPOCH:+
SH_NOW="${SOURCE_DATE_EPOCH}000000"
SH_DATE="$(date --utc --date="@$SOURCE_DATE_EPOCH" '+%Y-%m-%d %T')"
@ -62,4 +71,4 @@ package() {
rm "$pkgdir"/usr/bin/{compile-et.pl,prerr.properties}
}
# vim:set sw=2 et:
# vim:set sw=2 sts=-1 et: