From e38214179d65acbe318338983a65bc64ab851483 Mon Sep 17 00:00:00 2001 From: Lucian Cristian Date: Mon, 1 Apr 2019 16:31:30 +0300 Subject: [PATCH] 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 --- libs/nspr/Makefile | 86 +++++++++++++++ ...le.in_rm_BUILD_STRING_and_BUILD_TIME.patch | 103 ++++++++++++++++++ libs/nspr/patches/002-Add-ARC-support.patch | 88 +++++++++++++++ .../patches/003-native_and_musl_fix.patch | 23 ++++ 4 files changed, 300 insertions(+) create mode 100644 libs/nspr/Makefile create mode 100644 libs/nspr/patches/001-Makefile.in_rm_BUILD_STRING_and_BUILD_TIME.patch create mode 100644 libs/nspr/patches/002-Add-ARC-support.patch create mode 100644 libs/nspr/patches/003-native_and_musl_fix.patch diff --git a/libs/nspr/Makefile b/libs/nspr/Makefile new file mode 100644 index 0000000000..a01ba131f4 --- /dev/null +++ b/libs/nspr/Makefile @@ -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 +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 - +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 +--- + 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 + diff --git a/libs/nspr/patches/002-Add-ARC-support.patch b/libs/nspr/patches/002-Add-ARC-support.patch new file mode 100644 index 0000000000..92785cc20e --- /dev/null +++ b/libs/nspr/patches/002-Add-ARC-support.patch @@ -0,0 +1,88 @@ +From 6cb5b0be8837222a1e01745f2cf57cd0e593186d Mon Sep 17 00:00:00 2001 +From: Antoine Tenart +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 +Signed-off-by: Alexey Brodkin + +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 + diff --git a/libs/nspr/patches/003-native_and_musl_fix.patch b/libs/nspr/patches/003-native_and_musl_fix.patch new file mode 100644 index 0000000000..c5485dbfeb --- /dev/null +++ b/libs/nspr/patches/003-native_and_musl_fix.patch @@ -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 -- 2.30.2