Index: SConstruct |
diff --git a/SConstruct b/SConstruct |
index e7a16ad1a6950d7eec6ad07646702f3175e956c1..c731276aee0dd07d1afb7710e1d8de9c554d2090 100644 |
--- a/SConstruct |
+++ b/SConstruct |
@@ -213,6 +213,9 @@ LIBRARY_FLAGS = { |
}, |
'gdbjit:on': { |
'CPPDEFINES': ['ENABLE_GDB_JIT_INTERFACE'] |
+ }, |
+ 'compress_startup_data:bz2': { |
+ 'CPPDEFINES': ['COMPRESS_STARTUP_DATA_BZ2'] |
} |
}, |
'msvc': { |
@@ -355,6 +358,11 @@ MKSNAPSHOT_EXTRA_FLAGS = { |
'os:win32': { |
'LIBS': ['winmm', 'ws2_32'], |
}, |
+ 'compress_startup_data:bz2': { |
+ 'os:linux': { |
+ 'LIBS': ['bz2'] |
+ } |
+ }, |
}, |
'msvc': { |
'all': { |
@@ -512,6 +520,12 @@ SAMPLE_FLAGS = { |
'CCFLAGS': ['-g', '-O0'], |
'CPPDEFINES': ['DEBUG'] |
}, |
+ 'compress_startup_data:bz2': { |
+ 'CPPDEFINES': ['COMPRESS_STARTUP_DATA_BZ2'], |
+ 'os:linux': { |
+ 'LIBS': ['bz2'] |
+ } |
+ }, |
}, |
'msvc': { |
'all': { |
@@ -975,7 +989,12 @@ SIMPLE_OPTIONS = { |
'values': ['mips32r2', 'mips32r1'], |
'default': 'mips32r2', |
'help': 'mips variant' |
- } |
+ }, |
+ 'compress_startup_data': { |
+ 'values': ['off', 'bz2'], |
+ 'default': 'off', |
+ 'help': 'compress startup data (snapshot) [Linux only]' |
+ }, |
} |
ALL_OPTIONS = dict(PLATFORM_OPTIONS, **SIMPLE_OPTIONS) |
@@ -1098,6 +1117,8 @@ def VerifyOptions(env): |
print env['arch'] |
print env['simulator'] |
Abort("Option unalignedaccesses only supported for the ARM architecture.") |
+ if env['os'] != 'linux' and env['compress_startup_data'] != 'off': |
+ Abort("Startup data compression is only available on Linux") |
for (name, option) in ALL_OPTIONS.iteritems(): |
if (not name in env): |
message = ("A value for option %s must be specified (%s)." % |