Subject: | JavaScript::V8 and XCode 5 |
Date: | Mon, 21 Oct 2013 12:03:17 -0400 |
To: | bug-JavaScript-V8 [...] rt.cpan.org |
From: | Kurt Starsinic <kstarsinic [...] gmail.com> |
Hi,
JavaScript::V8 won't build with the restrictive g++ bundled with XCode 5:
Apple LLVM version 5.0 (clang-500.2.76) (based on LLVM 3.3svn)
I was able to work around this by installing the "apple-gcc42" homebrew
package and symlinking it appropriately. Failed compiler output below.
- Kurt
g++ -c -I. -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -O3 -DVERSION=\"0.07\"
-DXS_VERSION=\"0.07\"
"-I/usr/local/Cellar/rock-runtime-perl516/5.16.3/lib/perl5/CORE"
V8Context.cpp
V8Context.cpp:131:61: warning: inequality comparison result unused
[-Wunused-comparison]
for (sv_map::const_iterator it = objects.find(hash); it !=
objects.end(), it->first == hash; it++)
~~~^~~~~~~~~~~~~~~~
V8Context.cpp:131:61: note: use '|=' to turn this inequality comparison
into an or-assignment
for (sv_map::const_iterator it = objects.find(hash); it !=
objects.end(), it->first == hash; it++)
^~
|=
V8Context.cpp:238:23: error: taking the address of a temporary object of
type 'Local<v8::Value>' [-Waddress-of-temporary]
&External::Wrap(this)
^~~~~~~~~~~~~~~~~~~~~
V8Context.cpp:558:15: warning: using the result of an assignment as a
condition without parentheses [-Wparentheses]
while (he = hv_iternext(stash)) {
~~~^~~~~~~~~~~~~~~~~~~~
V8Context.cpp:558:15: note: place parentheses around the assignment to
silence this warning
while (he = hv_iternext(stash)) {
^
( )
V8Context.cpp:558:15: note: use '==' to turn this assignment into an
equality comparison
while (he = hv_iternext(stash)) {
^
==
V8Context.cpp:669:16: warning: using the result of an assignment as a
condition without parentheses [-Wparentheses]
while (val = hv_iternextsv(hv, &key, &len)) {
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
V8Context.cpp:669:16: note: place parentheses around the assignment to
silence this warning
while (val = hv_iternextsv(hv, &key, &len)) {
^
( )
V8Context.cpp:669:16: note: use '==' to turn this assignment into an
equality comparison
while (val = hv_iternextsv(hv, &key, &len)) {
^
==
V8Context.cpp:796:5: error: variable length array of non-POD element type
'Handle<v8::Value>'
SETUP_V8_CALL(0)
^
V8Context.cpp:753:29: note: expanded from macro 'SETUP_V8_CALL'
Handle<Value> argv[items - ARGS_OFFSET]; \
^
V8Context.cpp:802:5: error: variable length array of non-POD element type
'Handle<v8::Value>'
SETUP_V8_CALL(1)
^
V8Context.cpp:753:29: note: expanded from macro 'SETUP_V8_CALL'
Handle<Value> argv[items - ARGS_OFFSET]; \
^
3 warnings and 3 errors generated.
make: *** [V8Context.o] Error 1