Change to build on FreeBSD
The v8/SConstruct change has been give to the v8 people. http://codereview.chromium.org/113897
This commit is contained in:
Родитель
1d8c4659d1
Коммит
a3627c06f8
|
@ -10,11 +10,6 @@ def configure(conf):
|
|||
|
||||
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>
|
||||
|
@ -66,7 +61,7 @@ def configure(conf):
|
|||
}
|
||||
""")
|
||||
|
||||
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>
|
||||
|
|
|
@ -8,11 +8,6 @@ def configure(conf):
|
|||
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")
|
||||
|
|
|
@ -43,6 +43,16 @@ ANDROID_TOP = os.environ.get('TOP')
|
|||
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',
|
||||
|
@ -109,7 +119,7 @@ LIBRARY_FLAGS = {
|
|||
}
|
||||
},
|
||||
'os:linux': {
|
||||
'CCFLAGS': ['-ansi'],
|
||||
'CCFLAGS': ['-ansi'] + GCC_EXTRA_CCFLAGS,
|
||||
'library:shared': {
|
||||
'LIBS': ['pthread']
|
||||
}
|
||||
|
@ -118,6 +128,8 @@ LIBRARY_FLAGS = {
|
|||
'CCFLAGS': ['-ansi'],
|
||||
},
|
||||
'os:freebsd': {
|
||||
'CPPPATH' : ['/usr/local/include'],
|
||||
'LIBPATH' : ['/usr/local/lib'],
|
||||
'CCFLAGS': ['-ansi'],
|
||||
},
|
||||
'os:win32': {
|
||||
|
@ -260,7 +272,7 @@ MKSNAPSHOT_EXTRA_FLAGS = {
|
|||
'LIBS': ['pthread'],
|
||||
},
|
||||
'os:freebsd': {
|
||||
'LIBS': ['pthread'],
|
||||
'LIBS': ['execinfo', 'pthread']
|
||||
},
|
||||
'os:win32': {
|
||||
'LIBS': ['winmm', 'ws2_32'],
|
||||
|
@ -278,7 +290,8 @@ MKSNAPSHOT_EXTRA_FLAGS = {
|
|||
DTOA_EXTRA_FLAGS = {
|
||||
'gcc': {
|
||||
'all': {
|
||||
'WARNINGFLAGS': ['-Werror', '-Wno-uninitialized']
|
||||
'WARNINGFLAGS': ['-Werror', '-Wno-uninitialized'],
|
||||
'CCFLAGS': GCC_DTOA_EXTRA_CCFLAGS
|
||||
}
|
||||
},
|
||||
'msvc': {
|
||||
|
@ -371,6 +384,7 @@ SAMPLE_FLAGS = {
|
|||
'LIBS': ['pthread'],
|
||||
},
|
||||
'os:freebsd': {
|
||||
'LIBPATH' : ['/usr/local/lib'],
|
||||
'LIBS': ['execinfo', 'pthread']
|
||||
},
|
||||
'os:win32': {
|
||||
|
@ -671,8 +685,6 @@ def VerifyOptions(env):
|
|||
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)." %
|
||||
|
|
11
wscript
11
wscript
|
@ -1,4 +1,4 @@
|
|||
#! /usr/bin/env python
|
||||
# /usr/bin/env python
|
||||
import Options
|
||||
import sys
|
||||
import os
|
||||
|
@ -31,6 +31,11 @@ def configure(conf):
|
|||
|
||||
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')
|
||||
|
||||
|
@ -43,8 +48,6 @@ def configure(conf):
|
|||
|
||||
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
|
||||
|
@ -158,7 +161,7 @@ def build(bld):
|
|||
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
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче