Index: SConstruct |
diff --git a/SConstruct b/SConstruct |
index 82b83ceafa0c0dfd87dff352b5cda7ea63151dbc..e7a16ad1a6950d7eec6ad07646702f3175e956c1 100644 |
--- a/SConstruct |
+++ b/SConstruct |
@@ -154,6 +154,18 @@ LIBRARY_FLAGS = { |
}, |
'unalignedaccesses:off' : { |
'CPPDEFINES' : ['CAN_USE_UNALIGNED_ACCESSES=0'] |
+ }, |
+ 'armeabi:softfloat' : { |
+ 'CPPDEFINES' : ['USE_EABI_HARDFLOAT=0'], |
+ 'simulator:none': { |
+ 'CCFLAGS': ['-mfloat-abi=softfp'], |
+ } |
+ }, |
+ 'armeabi:hardfloat' : { |
+ 'CPPDEFINES' : ['USE_EABI_HARDFLOAT=1', 'CAN_USE_VFP_INSTRUCTIONS'], |
+ 'simulator:none': { |
+ 'CCFLAGS': ['-mfloat-abi=hard'], |
+ } |
} |
}, |
'simulator:arm': { |
@@ -286,6 +298,11 @@ V8_EXTRA_FLAGS = { |
'os:macos': { |
'WARNINGFLAGS': ['-pedantic'] |
}, |
+ 'arch:arm': { |
+ # This is to silence warnings about ABI changes that some versions of the |
+ # CodeSourcery G++ tool chain produce for each occurrence of varargs. |
+ 'WARNINGFLAGS': ['-Wno-abi'] |
+ }, |
'disassembler:on': { |
'CPPDEFINES': ['ENABLE_DISASSEMBLER'] |
} |
@@ -369,7 +386,10 @@ CCTEST_EXTRA_FLAGS = { |
}, |
'gcc': { |
'all': { |
- 'LIBPATH': [abspath('.')] |
+ 'LIBPATH': [abspath('.')], |
+ 'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'], |
+ 'CXXFLAGS': ['$CCFLAGS', '-fno-rtti', '-fno-exceptions'], |
+ 'LINKFLAGS': ['$CCFLAGS'], |
}, |
'os:linux': { |
'LIBS': ['pthread'], |
@@ -419,8 +439,10 @@ SAMPLE_FLAGS = { |
}, |
'gcc': { |
'all': { |
- 'LIBPATH': ['.'], |
- 'CCFLAGS': ['-fno-rtti', '-fno-exceptions'] |
+ 'LIBPATH': ['.'], |
+ 'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'], |
+ 'CXXFLAGS': ['$CCFLAGS', '-fno-rtti', '-fno-exceptions'], |
+ 'LINKFLAGS': ['$CCFLAGS'], |
}, |
'os:linux': { |
'LIBS': ['pthread'], |
@@ -445,7 +467,19 @@ SAMPLE_FLAGS = { |
'LIBS': ['winmm', 'ws2_32'] |
}, |
'arch:arm': { |
- 'LINKFLAGS': ARM_LINK_FLAGS |
+ 'LINKFLAGS': ARM_LINK_FLAGS, |
+ 'armeabi:softfloat' : { |
+ 'CPPDEFINES' : ['USE_EABI_HARDFLOAT=0'], |
+ 'simulator:none': { |
+ 'CCFLAGS': ['-mfloat-abi=softfp'], |
+ } |
+ }, |
+ 'armeabi:hardfloat' : { |
+ 'CPPDEFINES' : ['USE_EABI_HARDFLOAT=1', 'CAN_USE_VFP_INSTRUCTIONS'], |
+ 'simulator:none': { |
+ 'CCFLAGS': ['-mfloat-abi=hard'], |
+ } |
+ } |
}, |
'arch:ia32': { |
'CCFLAGS': ['-m32'], |
@@ -547,14 +581,26 @@ PREPARSER_FLAGS = { |
}, |
'gcc': { |
'all': { |
- 'LIBPATH': ['.'], |
- 'CCFLAGS': ['-fno-rtti', '-fno-exceptions'] |
+ 'LIBPATH': ['.'], |
+ 'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'], |
+ 'CXXFLAGS': ['$CCFLAGS', '-fno-rtti', '-fno-exceptions'], |
+ 'LINKFLAGS': ['$CCFLAGS'], |
}, |
'os:win32': { |
'LIBS': ['winmm', 'ws2_32'] |
}, |
'arch:arm': { |
- 'LINKFLAGS': ARM_LINK_FLAGS |
+ 'LINKFLAGS': ARM_LINK_FLAGS, |
+ 'armeabi:softfloat' : { |
+ 'simulator:none': { |
+ 'CCFLAGS': ['-mfloat-abi=softfp'], |
+ } |
+ }, |
+ 'armeabi:hardfloat' : { |
+ 'simulator:none': { |
+ 'CCFLAGS': ['-mfloat-abi=hard'], |
+ } |
+ } |
}, |
'arch:ia32': { |
'CCFLAGS': ['-m32'], |
@@ -674,6 +720,11 @@ PREPARSER_FLAGS = { |
D8_FLAGS = { |
'gcc': { |
+ 'all': { |
+ 'CCFLAGS': ['$DIALECTFLAGS', '$WARNINGFLAGS'], |
+ 'CXXFLAGS': ['$CCFLAGS', '-fno-rtti', '-fno-exceptions'], |
+ 'LINKFLAGS': ['$CCFLAGS'], |
+ }, |
'console:readline': { |
'LIBS': ['readline'] |
}, |
@@ -910,6 +961,11 @@ SIMPLE_OPTIONS = { |
'default': 'off', |
'help': 'select profile guided optimization variant', |
}, |
+ 'armeabi': { |
+ 'values': ['hardfloat', 'softfloat'], |
+ 'default': 'softfloat', |
+ 'help': 'generate calling conventiont according to selected ARM EABI variant' |
+ }, |
'mipsabi': { |
'values': ['hardfloat', 'softfloat', 'none'], |
'default': 'hardfloat', |