The v8/SConstruct change has been give to the v8 people.
http://codereview.chromium.org/113897
conf.check_cc(lib="pthread", header_name="pthread.h", function_name="pthread_create", mandatory=True)
- platform_string = "__" + Options.platform
- if Options.platform == "linux2":
- platform_string = "__linux"
- conf.define(platform_string, 1)
-
conf.check_cc(msg="Checking for futimes(2)", define_name="HAVE_FUTIMES", fragment="""
#include <sys/types.h>
#include <sys/time.h>
}
""")
- conf.check_cc(msg="Checking for sendfile(2)" , defines=[platform_string + "=1"] , define_name="HAVE_SENDFILE" , fragment="""
+ conf.check_cc(msg="Checking for sendfile(2)" , define_name="HAVE_SENDFILE" , fragment="""
# include <sys/types.h>
#if __linux
# include <sys/sendfile.h>
print "--- libev ---"
#conf.check_tool('compiler_cc')
- platform_string = "__" + Options.platform
- if Options.platform == "linux2":
- platform_string = "__linux"
- conf.define(platform_string, 1)
-
conf.check_cc(header_name="sys/inotify.h")
conf.check_cc(header_name="sys/epoll.h")
conf.check_cc(header_name="sys/event.h")
if ANDROID_TOP is None:
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',
'-mtune=xscale',
'-msoft-float',
}
},
'os:linux': {
- 'CCFLAGS': ['-ansi'],
+ 'CCFLAGS': ['-ansi'] + GCC_EXTRA_CCFLAGS,
'library:shared': {
'LIBS': ['pthread']
}
'CCFLAGS': ['-ansi'],
},
'os:freebsd': {
+ 'CPPPATH' : ['/usr/local/include'],
+ 'LIBPATH' : ['/usr/local/lib'],
'CCFLAGS': ['-ansi'],
},
'os:win32': {
'LIBS': ['pthread'],
},
'os:freebsd': {
- 'LIBS': ['pthread'],
+ 'LIBS': ['execinfo', 'pthread']
},
'os:win32': {
'LIBS': ['winmm', 'ws2_32'],
DTOA_EXTRA_FLAGS = {
'gcc': {
'all': {
- 'WARNINGFLAGS': ['-Werror', '-Wno-uninitialized']
+ 'WARNINGFLAGS': ['-Werror', '-Wno-uninitialized'],
+ 'CCFLAGS': GCC_DTOA_EXTRA_CCFLAGS
}
},
'msvc': {
'LIBS': ['pthread'],
},
'os:freebsd': {
+ 'LIBPATH' : ['/usr/local/lib'],
'LIBS': ['execinfo', 'pthread']
},
'os:win32': {
Abort("Shared Object soname not applicable for Windows.")
if env['soname'] == 'on' and env['library'] == 'static':
Abort("Shared Object soname not applicable for static library.")
- if env['arch'] == 'x64' and env['os'] != 'linux':
- Abort("X64 compilation only allowed on Linux OS.")
for (name, option) in SIMPLE_OPTIONS.iteritems():
if (not option.get('default')) and (name not in ARGUMENTS):
message = ("A value for option %s must be specified (%s)." %
-#! /usr/bin/env python
+# /usr/bin/env python
import Options
import sys
import os
conf.env["USE_DEBUG"] = Options.options.debug
+
+ if sys.platform.startswith("freebsd"):
+ if not conf.check(lib="execinfo", libpath=['/usr/lib', '/usr/local/lib'], uselib_store="EXECINFO"):
+ fatal("install the libexecinfo port. devel/libexecinfo")
+
conf.sub_config('deps/libeio')
conf.sub_config('deps/libev')
conf.env.append_value("CCFLAGS", "-DEIO_STACKSIZE=%d" % (4096*8))
- #conf.check(lib='rt', uselib_store='RT')
-
conf.check(lib='profiler', uselib_store='PROFILER')
# Split off debug variant before adding variant specific defines
deps/http_parser
"""
node.uselib_local = "oi ev eio http_parser"
- node.uselib = "V8 RT PROFILER"
+ node.uselib = "V8 EXECINFO PROFILER"
node.install_path = '${PREFIX}/bin'
node.chmod = 0755