Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 423815

Summary: dev-lang/v8-3.10.8.19 ABI=x32 - ../src/atomicops_internals_x86_gcc.h:175:17: error: redefinition of 'v8::internal::Atomic64 v8::internal::NoBarrier_CompareAndSwap(volatile Atomic64*, v8::internal::Atomic64, v8::internal::Atomic64)'
Product: Gentoo Linux Reporter: Joe <jgsteven>
Component: [OLD] DevelopmentAssignee: Chromium Project <chromium>
Status: RESOLVED UPSTREAM    
Severity: normal CC: bertrand, dlan, pastas4, timeraider
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
URL: https://groups.google.com/d/topic/v8-users/c-_URSZqTq8/discussion
Whiteboard: ht-wanted
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 393673    
Attachments: Emerge info
Build log for v8-3.9.24.28
build log for v8-3.10.8.19

Description Joe 2012-06-27 11:33:27 UTC
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.
Comment 1 Joe 2012-06-27 11:33:51 UTC
Created attachment 316405 [details]
Emerge info
Comment 2 Joe 2012-06-27 11:34:45 UTC
Created attachment 316407 [details]
Build log for v8-3.9.24.28
Comment 3 Joe 2012-06-27 11:35:12 UTC
Created attachment 316409 [details]
build log for v8-3.10.8.19
Comment 4 Mike Gilbert gentoo-dev 2012-07-20 22:44:28 UTC
Someone who actually uses x32 is going to have to work with upstream on this.
Comment 5 Paweł Hajdan, Jr. (RETIRED) gentoo-dev 2012-10-02 13:42:17 UTC
(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.
Comment 6 Paweł Hajdan, Jr. (RETIRED) gentoo-dev 2012-10-07 17:59:26 UTC
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.
Comment 7 SpanKY gentoo-dev 2012-10-08 19:49:45 UTC
you misread it.  they said they have no current plans to do the work themselves.
Comment 8 Dainius Masiliūnas 2016-07-29 11:20:59 UTC
Looks like there's x32 support in v8 now: https://codereview.chromium.org/18014003

So the mask might need to be reevaluated.
Comment 9 Mike Gilbert gentoo-dev 2016-07-29 12:28:28 UTC
V8 has been gone from the Gentoo repo for years.
Comment 10 Dainius Masiliūnas 2016-07-29 18:57:03 UTC
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.