build: add --with-arm-fpu option
authorJérémy Lal <kapouer@melix.org>
Fri, 18 Sep 2015 09:28:19 +0000 (11:28 +0200)
committerJames M Snell <jasnell@gmail.com>
Thu, 8 Oct 2015 03:39:18 +0000 (20:39 -0700)
Fixes: https://github.com/nodejs/node/issues/2942
PR-URL: https://github.com/nodejs/node/pull/3228
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Brian White <mscdex@mscdex.net>
configure

index c38a1a5..ca42356 100755 (executable)
--- a/configure
+++ b/configure
@@ -30,6 +30,7 @@ valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux',
 valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 'x32',
               'x64', 'x86')
 valid_arm_float_abi = ('soft', 'softfp', 'hard')
+valid_arm_fpu = ('vfp', 'vfpv2', 'vfpv3', 'vfpv3-d16', 'neon')
 valid_mips_arch = ('loongson', 'r1', 'r2', 'r6', 'rx')
 valid_mips_fpu = ('fp32', 'fp64', 'fpxx')
 valid_mips_float_abi = ('soft', 'hard')
@@ -219,6 +220,13 @@ parser.add_option('--with-arm-float-abi',
     help='specifies which floating-point ABI to use ({0}).'.format(
         ', '.join(valid_arm_float_abi)))
 
+parser.add_option('--with-arm-fpu',
+    action='store',
+    dest='arm_fpu',
+    choices=valid_arm_fpu,
+    help='ARM FPU mode ({0}) [default: %default]'.format(
+        ', '.join(valid_arm_fpu)))
+
 parser.add_option('--with-mips-arch-variant',
     action='store',
     dest='mips_arch_variant',
@@ -607,20 +615,23 @@ def configure_arm(o):
   else:
     arm_float_abi = 'default'
 
+  arm_fpu = 'vfpv2'
+
   if is_arch_armv7():
-    o['variables']['arm_fpu'] = 'vfpv3'
+    arm_fpu = 'vfpv3'
     o['variables']['arm_version'] = '7'
   else:
-    o['variables']['arm_fpu'] = 'vfpv2'
     o['variables']['arm_version'] = '6' if is_arch_armv6() else 'default'
 
   o['variables']['arm_thumb'] = 0      # -marm
   o['variables']['arm_float_abi'] = arm_float_abi
 
   if options.dest_os == 'android':
-    o['variables']['arm_fpu'] = 'vfpv3'
+    arm_fpu = 'vfpv3'
     o['variables']['arm_version'] = '7'
 
+  o['variables']['arm_fpu'] = options.arm_fpu or arm_fpu
+
 
 def configure_mips(o):
   can_use_fpu_instructions = (options.mips_float_abi != 'soft')