Commit 0582ee5d authored by ager@chromium.org's avatar ager@chromium.org

Land patch from Craig Schlenter to make V8 build and run when compiled

with -O3 on gcc 4.4.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent d6742c7f
...@@ -13,3 +13,4 @@ Paolo Giarrusso <p.giarrusso@gmail.com> ...@@ -13,3 +13,4 @@ Paolo Giarrusso <p.giarrusso@gmail.com>
Daniel Andersson <kodandersson@gmail.com> Daniel Andersson <kodandersson@gmail.com>
Alexander Botero-Lowry <alexbl@FreeBSD.org> Alexander Botero-Lowry <alexbl@FreeBSD.org>
Matt Hanselman <mjhanselman@gmail.com> Matt Hanselman <mjhanselman@gmail.com>
Craig Schlenter <craig.schlenter@gmail.com>
...@@ -43,6 +43,16 @@ ANDROID_TOP = os.environ.get('TOP') ...@@ -43,6 +43,16 @@ ANDROID_TOP = os.environ.get('TOP')
if ANDROID_TOP is None: if ANDROID_TOP is None:
ANDROID_TOP="" ANDROID_TOP=""
# TODO: Sort these issues out properly but as a temporary solution for gcc 4.4
# on linux we need these compiler flags to avoid a mksnapshot segfault, avoid
# crashes in the v8 test suite and avoid dtoa.c strict aliasing issues
if os.environ.get('GCC_VERSION') == "44":
GCC_EXTRA_CCFLAGS = ['-fno-tree-vectorize', '-fno-tree-vrp']
GCC_DTOA_EXTRA_CCFLAGS = ['-fno-strict-aliasing']
else:
GCC_EXTRA_CCFLAGS = []
GCC_DTOA_EXTRA_CCFLAGS = []
ANDROID_FLAGS = ['-march=armv5te', ANDROID_FLAGS = ['-march=armv5te',
'-mtune=xscale', '-mtune=xscale',
'-msoft-float', '-msoft-float',
...@@ -109,7 +119,7 @@ LIBRARY_FLAGS = { ...@@ -109,7 +119,7 @@ LIBRARY_FLAGS = {
} }
}, },
'os:linux': { 'os:linux': {
'CCFLAGS': ['-ansi'], 'CCFLAGS': ['-ansi'] + GCC_EXTRA_CCFLAGS,
'library:shared': { 'library:shared': {
'LIBS': ['pthread'] 'LIBS': ['pthread']
} }
...@@ -278,7 +288,8 @@ MKSNAPSHOT_EXTRA_FLAGS = { ...@@ -278,7 +288,8 @@ MKSNAPSHOT_EXTRA_FLAGS = {
DTOA_EXTRA_FLAGS = { DTOA_EXTRA_FLAGS = {
'gcc': { 'gcc': {
'all': { 'all': {
'WARNINGFLAGS': ['-Werror', '-Wno-uninitialized'] 'WARNINGFLAGS': ['-Werror', '-Wno-uninitialized'],
'CCFLAGS': GCC_DTOA_EXTRA_CCFLAGS
} }
}, },
'msvc': { 'msvc': {
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
'variables': { 'variables': {
'chromium_code': 1, 'chromium_code': 1,
'msvs_use_common_release': 0, 'msvs_use_common_release': 0,
'gcc_version%': 'unknown',
'base_source_files': [ 'base_source_files': [
'../../src/arm/assembler-arm-inl.h', '../../src/arm/assembler-arm-inl.h',
'../../src/arm/assembler-arm.cc', '../../src/arm/assembler-arm.cc',
...@@ -299,6 +300,18 @@ ...@@ -299,6 +300,18 @@
'-fomit-frame-pointer', '-fomit-frame-pointer',
'-O3', '-O3',
], ],
'conditions': [
[ 'gcc_version=="44"', {
'cflags': [
# Avoid gcc 4.4 strict aliasing issues in dtoa.c
'-fno-strict-aliasing',
# Avoid gcc 4.4 mksnapshot segfault.
'-fno-tree-vectorize',
# Avoid crashes with gcc 4.4 in the v8 test suite.
'-fno-tree-vrp',
],
}],
],
'cflags_cc': [ 'cflags_cc': [
'-fno-rtti', '-fno-rtti',
], ],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment