The PLATFORM preprocessor symbol is defined in node.gyp, and on Windows
it's set to "win". This conflicts with a built-in preprocessor symbol
with a different value ("win32"), which makes the linker(!) complain.
Resolve this by renaming these symbols to NODE_ARCH and NODE_PLATFORM.
PR-URL: https://github.com/iojs/io.js/pull/261
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
- 'NODE_WANT_INTERNALS=1',
- 'ARCH="<(target_arch)"',
- 'PLATFORM="<(OS)"',
+ 'NODE_ARCH="<(target_arch)"',
+ 'NODE_PLATFORM="<(OS)"',
'NODE_TAG="<(node_tag)"',
'NODE_V8_OPTIONS="<(node_v8_options)"',
'NODE_TAG="<(node_tag)"',
'NODE_V8_OPTIONS="<(node_v8_options)"',
+ 'NODE_WANT_INTERNALS=1',
- READONLY_PROPERTY(process, "arch", OneByteString(env->isolate(), ARCH));
+ READONLY_PROPERTY(process, "arch", OneByteString(env->isolate(), NODE_ARCH));
- READONLY_PROPERTY(process,
- "platform",
- OneByteString(env->isolate(), PLATFORM));
+#ifdef _WIN32
+ // As determined by gyp, NODE_PLATFORM equals 'win' on windows. However
+ // for historic reasons process.platform should be 'win32'.
+ Local<String> platform = OneByteString(env->isolate(), "win32");
+#else
+ Local<String> platform = OneByteString(env->isolate(), NODE_PLATFORM);
+#endif
+ READONLY_PROPERTY(process, "platform", platform);
// process.argv
Local<Array> arguments = Array::New(env->isolate(), argc);
// process.argv
Local<Array> arguments = Array::New(env->isolate(), argc);