diff options
Diffstat (limited to 'meta/recipes-support/nspr/nspr')
5 files changed, 251 insertions, 0 deletions
diff --git a/meta/recipes-support/nspr/nspr/fix-build-on-aarch64.patch b/meta/recipes-support/nspr/nspr/fix-build-on-aarch64.patch new file mode 100644 index 0000000000..ccad0a1a14 --- /dev/null +++ b/meta/recipes-support/nspr/nspr/fix-build-on-aarch64.patch @@ -0,0 +1,101 @@ +Add Aarch64 support + +Signed-off-by: Riku Voipio <riku.voipio@linaro.org> + +Upstream-Status: Submitted https://bugzilla.mozilla.org/show_bug.cgi?id=827271 +--- + configure.in | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) +--- a/pr/include/md/_linux.cfg ++++ b/pr/include/md/_linux.cfg +@@ -861,6 +861,59 @@ + #define PR_BYTES_PER_WORD_LOG2 2 + #define PR_BYTES_PER_DWORD_LOG2 3 + ++#elif defined(__aarch64__) ++ ++#ifdef __AARCH64EB__ ++#undef IS_LITTLE_ENDIAN ++#define IS_BIG_ENDIAN 1 ++#elif defined(__AARCH64EL__) ++#define IS_LITTLE_ENDIAN 1 ++#undef IS_BIG_ENDIAN ++#else ++#error "Unknown Aarch64 endianness." ++#endif ++#define IS_64 ++ ++#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 8 ++#define PR_BYTES_PER_FLOAT 4 ++#define PR_BYTES_PER_DOUBLE 8 ++#define PR_BYTES_PER_WORD 8 ++#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 64 ++#define PR_BITS_PER_FLOAT 32 ++#define PR_BITS_PER_DOUBLE 64 ++#define PR_BITS_PER_WORD 64 ++ ++#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 6 ++#define PR_BITS_PER_FLOAT_LOG2 5 ++#define PR_BITS_PER_DOUBLE_LOG2 6 ++#define PR_BITS_PER_WORD_LOG2 6 ++ ++#define PR_ALIGN_OF_SHORT 2 ++#define PR_ALIGN_OF_INT 4 ++#define PR_ALIGN_OF_LONG 8 ++#define PR_ALIGN_OF_INT64 8 ++#define PR_ALIGN_OF_FLOAT 4 ++#define PR_ALIGN_OF_DOUBLE 8 ++#define PR_ALIGN_OF_POINTER 8 ++#define PR_ALIGN_OF_WORD 8 ++ ++#define PR_BYTES_PER_WORD_LOG2 3 ++#define PR_BYTES_PER_DWORD_LOG2 3 ++ + #else + + #error "Unknown CPU architecture" +--- a/pr/include/md/_linux.h ++++ b/pr/include/md/_linux.h +@@ -53,6 +53,8 @@ + #define _PR_SI_ARCHITECTURE "avr32" + #elif defined(__m32r__) + #define _PR_SI_ARCHITECTURE "m32r" ++#elif defined(__aarch64__) ++#define _PR_SI_ARCHITECTURE "aarch64" + #else + #error "Unknown CPU architecture" + #endif +@@ -186,7 +188,7 @@ + }) + #endif + +-#if defined(__arm__) ++#if defined(__arm__) || defined(__aarch64__) + #if defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) + /* Use GCC built-in functions */ + #define _PR_HAVE_ATOMIC_OPS +@@ -242,6 +244,10 @@ + #endif + #endif /* __arm__ */ + ++#if defined(__aarch64__) ++#define _MD_MINIMUM_STACK_SIZE 0x20000 ++#endif ++ + #define USE_SETJMP + #if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID) + #define _PR_POLL_AVAILABLE diff --git a/meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch b/meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch new file mode 100644 index 0000000000..a6fa1ea607 --- /dev/null +++ b/meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch @@ -0,0 +1,51 @@ +Fix build failure on x86_64 + +When the target_cpu is x86_64, we should assume that the pkg uses 64bit, +only if USE_N32 is set, we can assume that the pkg uses 32bit. It used a +opposite logic before. + +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> + +Upstream-Status: Pending +--- + configure.in | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/configure.in b/configure.in +index 39c96a3..99a03ac 100644 +--- a/configure.in ++++ b/configure.in +@@ -1778,24 +1778,24 @@ tools are selected during the Xcode/Developer Tools installation.]) + PR_MD_ASFILES=os_Linux_ia64.s + ;; + x86_64) +- if test -n "$USE_64"; then +- PR_MD_ASFILES=os_Linux_x86_64.s +- else ++ if test -n "$USE_N32"; then + AC_DEFINE(i386) + PR_MD_ASFILES=os_Linux_x86.s + CC="$CC -m32" + CXX="$CXX -m32" ++ else ++ PR_MD_ASFILES=os_Linux_x86_64.s + fi + ;; + ppc|powerpc) + PR_MD_ASFILES=os_Linux_ppc.s + ;; + powerpc64) +- if test -n "$USE_64"; then ++ if test -n "$USE_N32"; then ++ PR_MD_ASFILES=os_Linux_ppc.s ++ else + CC="$CC -m64" + CXX="$CXX -m64" +- else +- PR_MD_ASFILES=os_Linux_ppc.s + fi + ;; + m68k) +-- +1.7.1 + diff --git a/meta/recipes-support/nspr/nspr/nspr.pc.in b/meta/recipes-support/nspr/nspr/nspr.pc.in new file mode 100644 index 0000000000..c37d0bcbd7 --- /dev/null +++ b/meta/recipes-support/nspr/nspr/nspr.pc.in @@ -0,0 +1,11 @@ +os_libs=-lpthread -ldl +prefix=OEPREFIX +exec_prefix=OEEXECPREFIX +libdir=OELIBDIR +includedir=OEINCDIR + +Name: NSPR +Description: The Netscape Portable Runtime +Version: 4.9.5 +Libs: -L${libdir} -lplds4 -lplc4 -lnspr4 -lpthread -ldl +Cflags: diff --git a/meta/recipes-support/nspr/nspr/remove-rpath-from-tests.patch b/meta/recipes-support/nspr/nspr/remove-rpath-from-tests.patch new file mode 100644 index 0000000000..a7e7853de1 --- /dev/null +++ b/meta/recipes-support/nspr/nspr/remove-rpath-from-tests.patch @@ -0,0 +1,26 @@ +Author: Andrei Gherzan <andrei@gherzan.ro> +Date: Thu Feb 9 00:03:38 2012 +0200 + +Avoid QA warnings by removing hardcoded rpath from binaries. + +[...] +WARNING: QA Issue: package nspr contains bad RPATH {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/nspr-4.8.9/mozilla/nsprpub/pr/tests/../../dist/lib +in file {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/packages-split/nspr/usr/lib/nspr/tests/multiwait +[...] + +Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> +Upstream-Status: Pending + +Index: nspr-4.8.9/mozilla/nsprpub/pr/tests/Makefile.in +=================================================================== +--- nsprpub.orig/pr/tests/Makefile.in 2012-02-11 00:01:10.476220505 +0200 ++++ nsprpub/pr/tests/Makefile.in 2012-02-10 23:57:40.000000000 +0200 +@@ -379,7 +379,7 @@ + endif + + ifeq (,$(filter-out Linux GNU GNU_%,$(OS_ARCH))) +- LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR) ++ LDOPTS += -Xlinker + ifeq ($(USE_PTHREADS),1) + EXTRA_LIBS = -lpthread + endif diff --git a/meta/recipes-support/nspr/nspr/trickly-fix-build-on-x86_64.patch b/meta/recipes-support/nspr/nspr/trickly-fix-build-on-x86_64.patch new file mode 100644 index 0000000000..8ca51e4d1f --- /dev/null +++ b/meta/recipes-support/nspr/nspr/trickly-fix-build-on-x86_64.patch @@ -0,0 +1,62 @@ +trickily fix build failure on x86_64 + +It seems that we can not run the 'autoreconf -f -i' for the nspr, I met +several strange problems while trying to do that, and the previous +author seemed had noticed this, so he wrote: + +do_configure() { + oe_runconf +} + +to avoid running the "autoreconf". But we must modify configure.in to +fix the build failure on x86_64, so both modify configure and +configure.in, once the "autoreconf" can work correctly, we can remove +this patch. + +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> + +Upstream-Status: Inappropriate [configuration] +--- + configure | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/configure b/configure +--- a/configure ++++ b/configure +@@ -4366,9 +4366,7 @@ EOF + PR_MD_ASFILES=os_Linux_ia64.s + ;; + x86_64) +- if test -n "$USE_64"; then +- PR_MD_ASFILES=os_Linux_x86_64.s +- else ++ if test -n "$USE_N32"; then + cat >> confdefs.h <<\EOF + #define i386 1 + EOF +@@ -4376,17 +4374,19 @@ EOF + PR_MD_ASFILES=os_Linux_x86.s + CC="$CC -m32" + CXX="$CXX -m32" ++ else ++ PR_MD_ASFILES=os_Linux_x86_64.s + fi + ;; + ppc|powerpc) + PR_MD_ASFILES=os_Linux_ppc.s + ;; + powerpc64) +- if test -n "$USE_64"; then ++ if test -n "$USE_N32"; then ++ PR_MD_ASFILES=os_Linux_ppc.s ++ else + CC="$CC -m64" + CXX="$CXX -m64" +- else +- PR_MD_ASFILES=os_Linux_ppc.s + fi + ;; + m68k) +-- +1.7.1 + |