Package: nodejs Version: 4.1.0~dfsg-3 Some fix of mips64el support: 1. configure: add mips64el to valid_arch list 2. fix host_arch_cc, for mips64el, otherwise, it will be treat as mipsel 3. mips64el, should use fp64 not fpxx or fp32
Fix of mipsel: currently, mipsel uses fpxx and no-odd-fregs, so __detect_fp64_mode will get FTBFS. So don't use the asm code instead of just use configure macros. -- YunQiang Su
diff --git a/debian/patches/1007_detect_mipsel.patch b/debian/patches/1007_detect_mipsel.patch index e82b4cf..3850165 100644 --- a/debian/patches/1007_detect_mipsel.patch +++ b/debian/patches/1007_detect_mipsel.patch @@ -2,8 +2,10 @@ Description: upstream configure must detect mipsel Author: Jérémy Lal <kapo...@melix.org> Forwarded: https://github.com/nodejs/node/pull/2971 Last-Update: 2015-09-20 ---- nodejs.orig/configure -+++ nodejs/configure +Index: nodejs-4.1.0~dfsg/configure +=================================================================== +--- nodejs-4.1.0~dfsg.orig/configure ++++ nodejs-4.1.0~dfsg/configure @@ -575,6 +575,7 @@ def host_arch_cc(): '__aarch64__' : 'arm64', '__arm__' : 'arm', @@ -12,3 +14,35 @@ Last-Update: 2015-09-20 '__mips__' : 'mips', '__PPC64__' : 'ppc64', '__PPC__' : 'ppc', +Index: nodejs-4.1.0~dfsg/deps/v8/src/base/cpu.cc +=================================================================== +--- nodejs-4.1.0~dfsg.orig/deps/v8/src/base/cpu.cc ++++ nodejs-4.1.0~dfsg/deps/v8/src/base/cpu.cc +@@ -137,22 +137,11 @@ static uint32_t ReadELFHWCaps() { + + #if V8_HOST_ARCH_MIPS + int __detect_fp64_mode(void) { +- double result = 0; +- // Bit representation of (double)1 is 0x3FF0000000000000. +- __asm__ volatile( +- ".set push\n\t" +- ".set noreorder\n\t" +- ".set oddspreg\n\t" +- "lui $t0, 0x3FF0\n\t" +- "ldc1 $f0, %0\n\t" +- "mtc1 $t0, $f1\n\t" +- "sdc1 $f0, %0\n\t" +- ".set pop\n\t" +- : "+m"(result) +- : +- : "t0", "$f0", "$f1", "memory"); +- +- return !(result == 1); ++#ifdef FPU_MODE_FP64 ++ return 1; ++#else ++ return 0; ++#endif + } + + diff --git a/debian/patches/2016_mips64el.patch b/debian/patches/2016_mips64el.patch new file mode 100644 index 0000000..f0131b1 --- /dev/null +++ b/debian/patches/2016_mips64el.patch @@ -0,0 +1,41 @@ +Index: nodejs-4.1.0~dfsg/configure +=================================================================== +--- nodejs-4.1.0~dfsg.orig/configure ++++ nodejs-4.1.0~dfsg/configure +@@ -27,7 +27,7 @@ parser = optparse.OptionParser() + + valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux', + 'android', 'aix') +-valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 'x32', ++valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64el','ppc', 'ppc64', 'x32', + 'x64', 'x86') + valid_arm_float_abi = ('soft', 'softfp', 'hard') + valid_arm_fpu = ('vfp', 'vfpv2', 'vfpv3', 'neon') +@@ -581,14 +581,16 @@ def host_arch_cc(): + '__PPC__' : 'ppc', + '__x86_64__' : 'x64', + } +- ++ ++ if k.get('_MIPS_SIM') == '_ABI64' and k.get('__MIPSEL__') == '1': ++ return 'mips64el' ++ + rtn = 'ia32' # default + + for i in matchup: + if i in k and k[i] != '0': + rtn = matchup[i] + break +- + return rtn + + +@@ -664,7 +666,7 @@ def configure_node(o): + + if target_arch == 'arm': + configure_arm(o) +- elif target_arch in ('mips', 'mipsel'): ++ elif target_arch in ('mips', 'mipsel', 'mips64el'): + configure_mips(o) + + if flavor in ('solaris', 'mac', 'linux', 'freebsd'): diff --git a/debian/patches/series b/debian/patches/series index 53291d5..b5488c0 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -9,3 +9,4 @@ shared_can_build_without_gyp.patch 1006_arm_fpu.patch 2015_gypnoparallel.patch 1007_detect_mipsel.patch +2016_mips64el.patch diff --git a/debian/rules b/debian/rules index 4083d64..f01c19d 100755 --- a/debian/rules +++ b/debian/rules @@ -71,7 +71,7 @@ endif # mips32r1 or greater, detected at runtime # fpu 32 or 64 detected at runtime ifeq (mips64el, $(DEB_HOST_ARCH)) -DEB_CONFIGURE_EXTRA_FLAGS += --with-mips-arch-variant=rx --with-mips-fpu-mode=fpxx +DEB_CONFIGURE_EXTRA_FLAGS += --with-mips-arch-variant=rx --with-mips-fpu-mode=fp64 endif ifeq (armel, $(DEB_HOST_ARCH))
_______________________________________________ Pkg-javascript-devel mailing list Pkg-javascript-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-javascript-devel