Prints many errors like the following: ../src/atomicops_internals_x86_gcc.h:222:13: error: redefinition of 'void v8::internal::Acquire_Store(volatile Atomic64*, v8::internal::Atomic64)' ../src/atomicops_internals_x86_gcc.h:122:13: error: 'void v8::internal::Acquire_Store(volatile Atomic32*, v8::internal::Atomic32)' previously defined here ../src/atomicops_internals_x86_gcc.h: In function 'void v8::internal::Release_Store(volatile Atomic64*, v8::internal::Atomic64)': ../src/atomicops_internals_x86_gcc.h:227:13: error: redefinition of 'void v8::internal::Release_Store(volatile Atomic64*, v8::internal::Atomic64)' Then the build fails. Also fails on the latest stable version of dev-lang/v8 (...meaning you can't currently build chromium on x32) Reproducible: Always Steps to Reproduce: Compile v8 on the x32 experimental stage.
Created attachment 316405 [details] Emerge info
Created attachment 316407 [details] Build log for v8-3.9.24.28
Created attachment 316409 [details] build log for v8-3.10.8.19
Someone who actually uses x32 is going to have to work with upstream on this.
(In reply to comment #4) > Someone who actually uses x32 is going to have to work with upstream on this. I created a test x32 Gentoo install with v8 bleeding_edge as of today (r12652) and it fails with errors identical to posted before: In file included from ../src/conversions-inl.h:35:0, from ../src/conversions.cc:32: ../src/globals.h:243:33: warning: overflow in implicit constant conversion [-Woverflow] ../src/globals.h:244:38: warning: large integer implicitly truncated to unsigned type [-Woverflow] ../src/atomicops_internals_x86_gcc.h: In function 'void v8::internal::Acquire_Store(volatile Atomic64*, v8::internal::Atomic64)': ../src/atomicops_internals_x86_gcc.h:222:13: error: redefinition of 'void v8::internal::Acquire_Store(volatile Atomic64*, v8::internal::Atomic64)' ../src/atomicops_internals_x86_gcc.h:122:13: error: 'void v8::internal::Acquire_Store(volatile Atomic32*, v8::internal::Atomic32)' previously defined here ../src/atomicops_internals_x86_gcc.h: In function 'void v8::internal::Release_Store(volatile Atomic64*, v8::internal::Atomic64)': ../src/atomicops_internals_x86_gcc.h:227:13: error: redefinition of 'void v8::internal::Release_Store(volatile Atomic64*, v8::internal::Atomic64)' ../src/atomicops_internals_x86_gcc.h:149:13: error: 'void v8::internal::Release_Store(volatile Atomic32*, v8::internal::Atomic32)' previously defined here ../src/atomicops_internals_x86_gcc.h: In function 'v8::internal::Atomic64 v8::internal::NoBarrier_Load(const volatile Atomic64*)': ../src/atomicops_internals_x86_gcc.h:248:17: error: redefinition of 'v8::internal::Atomic64 v8::internal::NoBarrier_Load(const volatile Atomic64*)' ../src/atomicops_internals_x86_gcc.h:155:17: error: 'v8::internal::Atomic32 v8::internal::NoBarrier_Load(const volatile Atomic32*)' previously defined here ../src/atomicops_internals_x86_gcc.h: In function 'v8::internal::Atomic64 v8::internal::Acquire_Load(const volatile Atomic64*)': ../src/atomicops_internals_x86_gcc.h:252:17: error: redefinition of 'v8::internal::Atomic64 v8::internal::Acquire_Load(const volatile Atomic64*)' ../src/atomicops_internals_x86_gcc.h:159:17: error: 'v8::internal::Atomic32 v8::internal::Acquire_Load(const volatile Atomic32*)' previously defined here ../src/atomicops_internals_x86_gcc.h: In function 'v8::internal::Atomic64 v8::internal::Release_Load(const volatile Atomic64*)': ../src/atomicops_internals_x86_gcc.h:260:17: error: redefinition of 'v8::internal::Atomic64 v8::internal::Release_Load(const volatile Atomic64*)' ../src/atomicops_internals_x86_gcc.h:166:17: error: 'v8::internal::Atomic32 v8::internal::Release_Load(const volatile Atomic32*)' previously defined here ../src/atomicops_internals_x86_gcc.h: In function 'v8::internal::Atomic64 v8::internal::Acquire_CompareAndSwap(volatile Atomic64*, v8::internal::Atomic64, v8::internal::Atomic64)': ../src/atomicops_internals_x86_gcc.h:265:17: error: redefinition of 'v8::internal::Atomic64 v8::internal::Acquire_CompareAndSwap(volatile Atomic64*, v8::internal::Atomic64, v8::internal::Atomic64)' ../src/atomicops_internals_x86_gcc.h:94:17: error: 'v8::internal::Atomic32 v8::internal::Acquire_CompareAndSwap(volatile Atomic32*, v8::internal::Atomic32, v8::internal::Atomic32)' previously defined here ../src/atomicops_internals_x86_gcc.h: In function 'v8::internal::Atomic64 v8::internal::Release_CompareAndSwap(volatile Atomic64*, v8::internal::Atomic64, v8::internal::Atomic64)': ../src/atomicops_internals_x86_gcc.h:275:17: error: redefinition of 'v8::internal::Atomic64 v8::internal::Release_CompareAndSwap(volatile Atomic64*, v8::internal::Atomic64, v8::internal::Atomic64)' ../src/atomicops_internals_x86_gcc.h:104:17: error: 'v8::internal::Atomic32 v8::internal::Release_CompareAndSwap(volatile Atomic32*, v8::internal::Atomic32, v8::internal::Atomic32)' previously defined here It's interesting that "make ia32.release" succeeds, but I'm not sure if that's what we want.
Upstream said they won't support v8 on x32 (see https://groups.google.com/d/topic/v8-users/c-_URSZqTq8/discussion). v8 and reverse deps have been masked on x32.
you misread it. they said they have no current plans to do the work themselves.
Looks like there's x32 support in v8 now: https://codereview.chromium.org/18014003 So the mask might need to be reevaluated.
V8 has been gone from the Gentoo repo for years.
The package, yes, but it's still part of chromium and such. And because of this bug, they were hardmasked in the x32 profile; given that v8 now supports x32, this should be revisited now. Mind you, chromium still doesn't build correctly due to bug 589978, but that's a different issue altogether. I can try testing nodejs sometime as well.