Thanks for the explanation, defining V8_HOST_ARCH_32_BIT in globals.h along with V8_HOST_ARCH_PPC solved that problem.
On Jan 9, 12:20 pm, "[email protected]" <[email protected]> wrote: > On Jan 9, 8:15 pm, misham <[email protected]> wrote: > > > kPointerSize -> sizeof(void*) = 4 > > kIntSize -> sizeof(int) = 4 > > If kPointerSize == kIntSize == 4 then you should define > V8_HOST_ARCH_32_BIT. The pseudosmi accessors code which triggers these > static assertions is for 64bit arch. > > > Thanks, that makes sense. I'll work on implementing StaticAssertion. > > You should _not_ implement StaticAssertion. It is already implemented > and StaticAssertion<false> definition is omitted on purpose --- to > trigger compilation errors. > > Let me show you an example... If you see something like > > src/objects-inl.h:2873: error: invalid application of 'sizeof' to > incomplete type 'StaticAssertion<false>' > > you should open the file in question, look at the line and then locate > relevant STATIC_ASSERT(expr) macro. In this case it is clearly the one > on line 2868 > > STATIC_ASSERT(holder::offset % kPointerSize == kIntSize); > > Then you should look at the expression passed to STATIC_ASSERT and try > to figure out why it evaluates to false. In this case it evaluates to > false because kPointerSize == kIntSize. And PSEUDO_SMI_ACCESSORS_HI/ > PSEUDO_SMI_ACCESSORS_LO are written in assumption that kPointerSize == > 2*kIntSize (+ little endianess assumption which is not documented or > checked by any assertion in this code). > > Hope this helps. > > -- > Vyacheslav Egorov -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
