Browse Source

nspr: add nspr libs

Netscape Portable Runtime (NSPR) provides a platform-neutral API for
system level and libc-like functions. The API is used in the Mozilla
clients, many of Red Hat's and Oracle's server applications, and
other software offerings.

this is needed for nss libraries

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
lilik-openwrt-22.03
Lucian Cristian 6 years ago
parent
commit
e38214179d
4 changed files with 300 additions and 0 deletions
  1. +86
    -0
      libs/nspr/Makefile
  2. +103
    -0
      libs/nspr/patches/001-Makefile.in_rm_BUILD_STRING_and_BUILD_TIME.patch
  3. +88
    -0
      libs/nspr/patches/002-Add-ARC-support.patch
  4. +23
    -0
      libs/nspr/patches/003-native_and_musl_fix.patch

+ 86
- 0
libs/nspr/Makefile View File

@ -0,0 +1,86 @@
#
# Copyright (C) 2019 Lucian Cristian
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=nspr
PKG_VERSION:=4.21
PKG_RELEASE:=1
PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
PKG_LICENCE:=MPL-2.0
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:= \
https://download.cdn.mozilla.net/pub/$(PKG_NAME)/releases/v$(PKG_VERSION)/src/ \
https://archive.mozilla.org/pub/$(PKG_NAME)/releases/v$(PKG_VERSION)/src/
PKG_HASH:=15ea32c7b100217b6e3193bc03e77f485d9bf7504051443ba9ce86d1c17c6b5a
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk
CONFIGURE_PATH = ./nspr
MAKE_PATH = ./nspr
PKG_AUTOMAKE_PATHS = $(PKG_BUILD_DIR)/nspr
LBITS = $(shell $(TARGET_CC) -dM -E - </dev/null | grep -q "__LP64__" && echo 64 || echo 32)
ifeq ($(LBITS),64)
conf=--enable-64bit
endif
export MUSL=$(if $(CONFIG_LIBC_USE_GLIBC),0,1)
TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed
CONFIGURE_ARGS += \
--build=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \
--target=$(REAL_GNU_TARGET_NAME) \
--disable-debug \
--with-pthreads \
$(if $(CONFIG_IPV6),--enable-ipv6,--disable-ipv6) \
$(conf)
define Build/Compile
CROSS_COMPILE=1 CFLAGS="-DXP_UNIX $(HOST_CFLAGS)" LDFLAGS="" CC="$(HOSTCC)" \
$(MAKE) -C $(PKG_BUILD_DIR)/nspr/config
$(call Build/Compile/Default)
endef
define Package/nspr
SECTION:=libs
CATEGORY:=Libraries
TITLE:=Netscape Portable Runtime (NSPR)
URL:=https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR
DEPENDS:=+libpthread
endef
define Package/nspr/description
Netscape Portable Runtime (NSPR) provides a platform-neutral API for system
level and libc-like functions. The API is used in the Mozilla clients, many
of Red Hat's and Oracle's server applications, and other software offerings.
endef
define Build/InstallDev
$(INSTALL_DIR) \
$(1)/usr/include \
$(1)/usr/lib/ \
$(1)/usr/lib/pkgconfig/ \
$(1)/usr/share/aclocal/
$(CP) $(PKG_INSTALL_DIR)/usr/include/nspr $(1)/usr/include/
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/* $(1)/usr/share/aclocal/
endef
define Package/nspr/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so $(1)/usr/lib/
endef
$(eval $(call BuildPackage,nspr))

+ 103
- 0
libs/nspr/patches/001-Makefile.in_rm_BUILD_STRING_and_BUILD_TIME.patch View File

@ -0,0 +1,103 @@
From 8a592e4ead4ed6befe6044da3dd2dc7523c33905 Mon Sep 17 00:00:00 2001
From: Mingli Yu <Mingli.Yu@windriver.com>
Date: Fri, 16 Nov 2018 13:52:49 +0800
Subject: [PATCH] Makefile.in: remove _BUILD_STRING and _BUILD_TIME
Remove _BUILD_STRING and _BUILD_TIME to avoid
adding timestamp to _pl_bld.h which can result
in adding timestamp in library file such as
libnspr4.so.
$ readelf --wide --decompress --hex-dump=.rodata libnspr4.so
[snip]
0x00004000 32303138 2d31312d 31352030 353a3439 2018-11-15 05:49
[snip]
Upstream-Status: Pending
Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
---
lib/ds/Makefile.in | 8 +-------
lib/libc/src/Makefile.in | 8 +-------
lib/prstreams/Makefile.in | 8 +-------
pr/src/Makefile.in | 8 +-------
4 files changed, 4 insertions(+), 28 deletions(-)
diff --git a/lib/ds/Makefile.in b/lib/ds/Makefile.in
index e737791..b578476 100644
--- a/nspr/lib/ds/Makefile.in
+++ b/nspr/lib/ds/Makefile.in
@@ -114,13 +114,7 @@ GARBAGE += $(TINC)
$(TINC):
@$(MAKE_OBJDIR)
- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
- @if test ! -z "$(SH_NOW)"; then \
- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
- else \
- true; \
- fi
- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
$(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
diff --git a/lib/libc/src/Makefile.in b/lib/libc/src/Makefile.in
index e8a6d9f..978ed28 100644
--- a/nspr/lib/libc/src/Makefile.in
+++ b/nspr/lib/libc/src/Makefile.in
@@ -116,13 +116,7 @@ GARBAGE += $(TINC)
$(TINC):
@$(MAKE_OBJDIR)
- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
- @if test ! -z "$(SH_NOW)"; then \
- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
- else \
- true; \
- fi
- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
$(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
diff --git a/lib/prstreams/Makefile.in b/lib/prstreams/Makefile.in
index aeb2944..f318097 100644
--- a/nspr/lib/prstreams/Makefile.in
+++ b/nspr/lib/prstreams/Makefile.in
@@ -116,13 +116,7 @@ endif
$(TINC):
@$(MAKE_OBJDIR)
- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
- @if test ! -z "$(SH_NOW)"; then \
- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
- else \
- true; \
- fi
- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
$(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
diff --git a/pr/src/Makefile.in b/pr/src/Makefile.in
index 19c5a69..b4ac31c 100644
--- a/nspr/pr/src/Makefile.in
+++ b/nspr/pr/src/Makefile.in
@@ -326,13 +326,7 @@ GARBAGE += $(TINC)
$(TINC):
@$(MAKE_OBJDIR)
- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
- @if test ! -z "$(SH_NOW)"; then \
- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
- else \
- true; \
- fi
- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
+ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
$(OBJDIR)/prvrsion.$(OBJ_SUFFIX): prvrsion.c $(TINC)
--
2.7.4

+ 88
- 0
libs/nspr/patches/002-Add-ARC-support.patch View File

@ -0,0 +1,88 @@
From 6cb5b0be8837222a1e01745f2cf57cd0e593186d Mon Sep 17 00:00:00 2001
From: Antoine Tenart <antoine.tenart@free-electrons.com>
Date: Mon, 23 Oct 2017 10:28:20 +0200
Subject: [PATCH] Add ARC support
[Alexey: Rebased on top of other patches like RiscV, NIOS2 etc].
Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Upstream-Status: Submitted [ https://bugzilla.mozilla.org/show_bug.cgi?id=1492378 ]
---
pr/include/md/_linux.cfg | 45 ++++++++++++++++++++++++++++++++++++++++
pr/include/md/_linux.h | 2 ++
2 files changed, 47 insertions(+)
diff --git a/pr/include/md/_linux.cfg b/pr/include/md/_linux.cfg
index fec8525378dc..5f4fa0eac783 100644
--- a/nspr/pr/include/md/_linux.cfg
+++ b/nspr/pr/include/md/_linux.cfg
@@ -1157,6 +1157,51 @@
#define PR_BYTES_PER_WORD_LOG2 3
#define PR_BYTES_PER_DWORD_LOG2 3
+#elif defined(__arc__)
+
+#define IS_LITTLE_ENDIAN 1
+#undef IS_BIG_ENDIAN
+
+#define PR_BYTES_PER_BYTE 1
+#define PR_BYTES_PER_SHORT 2
+#define PR_BYTES_PER_INT 4
+#define PR_BYTES_PER_INT64 8
+#define PR_BYTES_PER_LONG 4
+#define PR_BYTES_PER_FLOAT 4
+#define PR_BYTES_PER_DOUBLE 8
+#define PR_BYTES_PER_WORD 4
+#define PR_BYTES_PER_DWORD 8
+
+#define PR_BITS_PER_BYTE 8
+#define PR_BITS_PER_SHORT 16
+#define PR_BITS_PER_INT 32
+#define PR_BITS_PER_INT64 64
+#define PR_BITS_PER_LONG 32
+#define PR_BITS_PER_FLOAT 32
+#define PR_BITS_PER_DOUBLE 64
+#define PR_BITS_PER_WORD 32
+
+#define PR_BITS_PER_BYTE_LOG2 3
+#define PR_BITS_PER_SHORT_LOG2 4
+#define PR_BITS_PER_INT_LOG2 5
+#define PR_BITS_PER_INT64_LOG2 6
+#define PR_BITS_PER_LONG_LOG2 5
+#define PR_BITS_PER_FLOAT_LOG2 5
+#define PR_BITS_PER_DOUBLE_LOG2 6
+#define PR_BITS_PER_WORD_LOG2 5
+
+#define PR_ALIGN_OF_SHORT 2
+#define PR_ALIGN_OF_INT 4
+#define PR_ALIGN_OF_LONG 4
+#define PR_ALIGN_OF_INT64 4
+#define PR_ALIGN_OF_FLOAT 4
+#define PR_ALIGN_OF_DOUBLE 4
+#define PR_ALIGN_OF_POINTER 4
+#define PR_ALIGN_OF_WORD 4
+
+#define PR_BYTES_PER_WORD_LOG2 2
+#define PR_BYTES_PER_DWORD_LOG2 3
+
#else
#error "Unknown CPU architecture"
diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
index 8e04fad479a1..628b1217e9c8 100644
--- a/nspr/pr/include/md/_linux.h
+++ b/nspr/pr/include/md/_linux.h
@@ -63,6 +63,8 @@
#define _PR_SI_ARCHITECTURE "riscv32"
#elif defined(__riscv) && (__riscv_xlen == 64)
#define _PR_SI_ARCHITECTURE "riscv64"
+#elif defined(__arc__)
+#define _PR_SI_ARCHITECTURE "arc"
#else
#error "Unknown CPU architecture"
#endif
--
2.17.1

+ 23
- 0
libs/nspr/patches/003-native_and_musl_fix.patch View File

@ -0,0 +1,23 @@
--- a/nspr/config/config.mk 2017-10-31 13:13:22.692343122 +0200
+++ b/nspr/config/config.mk 2017-10-31 13:13:58.758016378 +0200
@@ -126,6 +126,9 @@
ifeq ($(USE_IPV6),1)
DEFINES += -D_PR_INET6
+ifeq ($(MUSL),1)
+CFLAGS += -D_PR_POLL_AVAILABLE -D_PR_HAVE_OFF64_T -D_PR_INET6 -D_PR_HAVE_INET_NTOP -D_PR_HAVE_GETHOSTBYNAME2 -D_PR_HAVE_GETADDRINFO -D_PR_INET6_PROBE
+endif
endif
ifeq ($(MOZ_UNICODE),1)
--- a/nspr/config/Makefile.in 2019-03-31 13:44:56.919871810 +0300
+++ b/nspr/config/Makefile.in 2019-03-31 13:45:21.560545948 +0300
@@ -30,7 +30,7 @@
# This version hasn't been ported for us; the one in mozilla/config has
ifneq ($(OS_ARCH),OS2)
-CSRCS += nsinstall.c
+#CSRCS += nsinstall.c
PLSRCS = nfspwd.pl
endif

Loading…
Cancel
Save