I just checked out v8 and tried to build it under ubuntu jaunty..

I needed the following two simple changes to avoid compile errors:
In file included from src/macro-assembler.h:44,
                 from src/assembler-ia32.cc:40:
src/assembler-ia32-inl.h: In member function 'void
v8::internal::Operand::set_dispr(int32_t,
v8::internal::RelocInfo::Mode)':
src/assembler-ia32-inl.h:282: error: dereferencing type-punned pointer
will break strict-aliasing rules

src/compilation-cache.cc:153:74: error: invoking macro CALL_AND_RETRY
argument 3: empty macro arguments are undefined in ISO C90 and ISO
C++98
src/compilation-cache.cc:163:66: error: invoking macro CALL_AND_RETRY
argument 2: empty macro arguments are undefined in ISO C90 and ISO
C++98


Index: src/heap-inl.h
===================================================================
--- src/heap-inl.h      (revision 1421)
+++ src/heap-inl.h      (working copy)
@@ -262,7 +262,7 @@


 #define CALL_HEAP_FUNCTION_VOID(FUNCTION_CALL) \
-  CALL_AND_RETRY(FUNCTION_CALL, , )
+  CALL_AND_RETRY(FUNCTION_CALL, ; , ; )


 #ifdef DEBUG
Index: src/assembler-ia32-inl.h
===================================================================
--- src/assembler-ia32-inl.h    (revision 1421)
+++ src/assembler-ia32-inl.h    (working copy)
@@ -279,7 +279,8 @@

 void Operand::set_dispr(int32_t disp, RelocInfo::Mode rmode) {
   ASSERT(len_ == 1 || len_ == 2);
-  *reinterpret_cast<int32_t*>(&buf_[len_]) = disp;
+  int32_t* p = reinterpret_cast<int32_t*>(&buf_[len_]);
+  *p = disp;
   len_ += sizeof(int32_t);
   rmode_ = rmode;
 }

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to