Author: [email protected]
Date: Fri Mar 20 09:37:18 2009
New Revision: 1566
Modified:
branches/bleeding_edge/SConstruct
branches/bleeding_edge/src/SConscript
branches/bleeding_edge/src/execution.cc
branches/bleeding_edge/src/platform-linux.cc
branches/bleeding_edge/src/runtime.cc
Log:
More compatibility changes.
Review URL: http://codereview.chromium.org/47004
Modified: branches/bleeding_edge/SConstruct
==============================================================================
--- branches/bleeding_edge/SConstruct (original)
+++ branches/bleeding_edge/SConstruct Fri Mar 20 09:37:18 2009
@@ -35,6 +35,37 @@
sys.path.append(join(root_dir, 'tools'))
import js2c, utils
+TOP = os.environ.get('TOP')
+if TOP is None:
+ TOP=""
+
+ANDROID_FLAGS = ['-march=armv5te',
+ '-mtune=xscale',
+ '-msoft-float',
+ '-fpic',
+ '-mthumb-interwork',
+ '-funwind-tables',
+ '-fstack-protector',
+ '-fno-short-enums',
+ '-fmessage-length=0',
+ '-finline-functions',
+ '-fno-inline-functions-called-once',
+ '-fgcse-after-reload',
+ '-frerun-cse-after-loop',
+ '-frename-registers',
+ '-fomit-frame-pointer',
+ '-fno-strict-aliasing',
+ '-finline-limit=64',
+ '-MD']
+
+ANDROID_INCLUDES = [TOP + '/bionic/libc/arch-arm/include',
+ TOP + '/bionic/libc/include',
+ TOP + '/bionic/libstdc++/include',
+ TOP + '/bionic/libc/kernel/common',
+ TOP + '/bionic/libc/kernel/arch-arm',
+ TOP + '/bionic/libm/include',
+ TOP + '/bionic/libm/include/arch/arm',
+ TOP + '/bionic/libthread_db/include']
LIBRARY_FLAGS = {
'all': {
@@ -65,6 +96,12 @@
'CCFLAGS': ['-DWIN32'],
'CXXFLAGS': ['-DWIN32'],
},
+ 'os:android': {
+ 'CPPDEFINES':
['ANDROID', '__ARM_ARCH_5__', '__ARM_ARCH_5T__', '__ARM_ARCH_5E__',
'__ARM_ARCH_5TE__', 'SK_RELEASE', 'NDEBUG'],
+ 'CCFLAGS': ANDROID_FLAGS,
+ 'WARNINGFLAGS':
['-Wall', '-Wno-unused', '-Werror=return-type', '-Wstrict-aliasing=2'],
+ 'CPPPATH': ANDROID_INCLUDES,
+ },
'wordsize:64': {
'CCFLAGS': ['-m32'],
'LINKFLAGS': ['-m32']
@@ -114,14 +151,23 @@
'gcc': {
'all': {
'CXXFLAGS': [], #['-fvisibility=hidden'],
- 'WARNINGFLAGS': ['-pedantic', '-Wall', '-Werror', '-W',
+ 'WARNINGFLAGS': ['-Wall', '-Werror', '-W',
'-Wno-unused-parameter']
},
'arch:arm': {
'CPPDEFINES': ['ARM']
},
+ 'arch:android': {
+ 'CPPDEFINES': ['ARM']
+ },
'os:win32': {
- 'WARNINGFLAGS': ['-Wno-long-long']
+ 'WARNINGFLAGS': ['-pedantic', '-Wno-long-long']
+ },
+ 'os:linux': {
+ 'WARNINGFLAGS': ['-pedantic']
+ },
+ 'os:macos': {
+ 'WARNINGFLAGS': ['-pedantic']
},
'disassembler:on': {
'CPPDEFINES': ['ENABLE_DISASSEMBLER']
@@ -174,7 +220,7 @@
DTOA_EXTRA_FLAGS = {
'gcc': {
'all': {
- 'WARNINGFLAGS': ['-Werror']
+ 'WARNINGFLAGS': ['-Werror', '-Wno-uninitialized']
}
},
'msvc': {
@@ -230,7 +276,8 @@
},
'gcc': {
'all': {
- 'LIBPATH': ['.']
+ 'LIBPATH': ['.'],
+ 'CCFLAGS': ['-fno-rtti', '-fno-exceptions']
},
'os:linux': {
'LIBS': ['pthread', 'rt'],
@@ -244,9 +291,13 @@
'os:win32': {
'LIBS': ['winmm', 'ws2_32']
},
- 'wordsize:64': {
- 'CCFLAGS': ['-m32'],
- 'LINKFLAGS': ['-m32']
+ 'os:android': {
+ 'CPPDEFINES':
['ANDROID', '__ARM_ARCH_5__', '__ARM_ARCH_5T__', '__ARM_ARCH_5E__',
'__ARM_ARCH_5TE__', 'SK_RELEASE', 'NDEBUG'],
+ 'CCFLAGS': ANDROID_FLAGS,
+ 'CPPPATH': ANDROID_INCLUDES,
+ 'LIBPATH': [TOP + '/out/target/product/generic/obj/lib'],
+ 'LINKFLAGS': ['-nostdlib', '-Bdynamic', '-Wl,-T,' + TOP
+ '/build/core/armelf.x', '-Wl,-dynamic-linker,/system/bin/linker',
'-Wl,--gc-sections', '-Wl,-z,nocopyreloc', '-Wl,-rpath-link='
+ TOP + '/out/target/product/generic/obj/lib', TOP
+ '/out/target/product/generic/obj/lib/crtbegin_dynamic.o', TOP
+
'/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/lib/gcc/arm-eabi/4.2.1/interwork/libgcc.a',
TOP + '/out/target/product/generic/obj/lib/crtend_android.o'],
+ 'LIBS': ['c', 'stdc++', 'm'],
},
'mode:release': {
'CCFLAGS': ['-O2']
@@ -355,7 +406,7 @@
'help': 'the toolchain to use'
},
'os': {
- 'values': ['freebsd', 'linux', 'macos', 'win32'],
+ 'values': ['freebsd', 'linux', 'macos', 'win32', 'android'],
'default': OS_GUESS,
'help': 'the os to build for'
},
@@ -510,6 +561,8 @@
options[key] = prefix + value
def ConfigureObject(self, env, input, **kw):
+ if (kw.has_key('CPPPATH') and env.has_key('CPPPATH')):
+ kw['CPPPATH'] += env['CPPPATH']
if self.options['library'] == 'static':
return env.StaticObject(input, **kw)
else:
Modified: branches/bleeding_edge/src/SConscript
==============================================================================
--- branches/bleeding_edge/src/SConscript (original)
+++ branches/bleeding_edge/src/SConscript Fri Mar 20 09:37:18 2009
@@ -68,6 +68,7 @@
'simulator:arm': ['simulator-arm.cc'],
'os:freebsd': ['platform-freebsd.cc'],
'os:linux': ['platform-linux.cc'],
+ 'os:android': ['platform-linux.cc'],
'os:macos': ['platform-macos.cc'],
'os:nullos': ['platform-nullos.cc'],
'os:win32': ['platform-win32.cc'],
Modified: branches/bleeding_edge/src/execution.cc
==============================================================================
--- branches/bleeding_edge/src/execution.cc (original)
+++ branches/bleeding_edge/src/execution.cc Fri Mar 20 09:37:18 2009
@@ -482,7 +482,8 @@
bool* exc) {
if (data->property_list()->IsUndefined() &&
!data->constructor()->IsUndefined()) {
- Object* result;
+ // Initialization to make gcc happy.
+ Object* result = 0;
{
HandleScope scope;
Handle<FunctionTemplateInfo> cons_template =
Modified: branches/bleeding_edge/src/platform-linux.cc
==============================================================================
--- branches/bleeding_edge/src/platform-linux.cc (original)
+++ branches/bleeding_edge/src/platform-linux.cc Fri Mar 20 09:37:18 2009
@@ -44,7 +44,9 @@
#include <sys/stat.h> // open
#include <fcntl.h> // open
#include <unistd.h> // sysconf
+#ifdef __GLIBC__
#include <execinfo.h> // backtrace, backtrace_symbols
+#endif // def __GLIBC__
#include <strings.h> // index
#include <errno.h>
#include <stdarg.h>
@@ -361,6 +363,8 @@
int OS::StackWalk(OS::StackFrame* frames, int frames_size) {
+ // backtrace is a glibc extension.
+#ifdef __GLIBC__
void** addresses = NewArray<void*>(frames_size);
int frames_count = backtrace(addresses, frames_size);
@@ -387,6 +391,9 @@
free(symbols);
return frames_count;
+#else // ndef __GLIBC__
+ return 0;
+#endif // ndef __GLIBC__
}
@@ -814,6 +821,8 @@
static Sampler* active_sampler_ = NULL;
static void ProfilerSignalHandler(int signal, siginfo_t* info, void*
context) {
+ // Ucontext is a glibc extension - no profiling on Android at the moment.
+#ifdef __GLIBC__
USE(info);
if (signal != SIGPROF) return;
if (active_sampler_ == NULL) return;
@@ -840,6 +849,7 @@
sample.state = Logger::state();
active_sampler_->Tick(&sample);
+#endif
}
Modified: branches/bleeding_edge/src/runtime.cc
==============================================================================
--- branches/bleeding_edge/src/runtime.cc (original)
+++ branches/bleeding_edge/src/runtime.cc Fri Mar 20 09:37:18 2009
@@ -1554,7 +1554,7 @@
// Number of parts added by compiled replacement plus preceeding string
// and possibly suffix after last match.
const int parts_added_per_loop = compiled_replacement.parts() + 2;
- bool matched;
+ bool matched = true;
do {
ASSERT(last_match_info_handle->HasFastElements());
// Increase the capacity of the builder before entering local
handle-scope,
--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---