Message from discussion
x32 ABI support
Received: by 10.205.123.145 with SMTP id gk17mr615142bkc.2.1349446332566;
Fri, 05 Oct 2012 07:12:12 -0700 (PDT)
X-BeenThere: v8-users@googlegroups.com
Received: by 10.204.151.24 with SMTP id a24ls4397088bkw.1.gmail; Fri, 05 Oct
2012 07:12:08 -0700 (PDT)
Received: by 10.204.129.9 with SMTP id m9mr617223bks.1.1349446328777;
Fri, 05 Oct 2012 07:12:08 -0700 (PDT)
Received: by 10.204.129.9 with SMTP id m9mr617222bks.1.1349446328736;
Fri, 05 Oct 2012 07:12:08 -0700 (PDT)
Return-Path: <jkumme...@google.com>
Received: from mail-bk0-f45.google.com (mail-bk0-f45.google.com [209.85.214.45])
by gmr-mx.google.com with ESMTPS id t1si716670bkt.1.2012.10.05.07.12.08
(version=TLSv1/SSLv3 cipher=OTHER);
Fri, 05 Oct 2012 07:12:08 -0700 (PDT)
Received-SPF: pass (google.com: domain of jkumme...@google.com designates 209.85.214.45 as permitted sender) client-ip=209.85.214.45;
Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jkumme...@google.com designates 209.85.214.45 as permitted sender) smtp.mail=jkumme...@google.com; dkim=pass header...@google.com
Received: by mail-bk0-f45.google.com with SMTP id jf3so984862bkc.18
for <v8-users@googlegroups.com>; Fri, 05 Oct 2012 07:12:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=google.com; s=20120113;
h=mime-version:sender:in-reply-to:references:from:date
:x-google-sender-auth:message-id:subject:to:content-type
:x-system-of-record;
bh=CkHiBvsTabJSfxptJPkuMXHT+EfnfyKCVjVHtLg6elY=;
b=P+mBrFmg9kI01NWUCN27WJOUGlCAM8WlPdimO9YwI98jnErZ48qq3JyLKCGC32ve17
RrONKTkCyLqG/WZ1VmY6O9plY1XBIlFcEmKG30C6Tznw9SoJGdQvZUaZBsJo+kOrFKt6
MaX0LOly5UwQGn798vM8SbmSo6hmxz8Lq/Y9q6fsu6N9fRtDxjrWbXx66+/uSazWCI4q
lEMYqtc4GF4JnqSTfBocOYJAHjQyaZSg02mierPR0qZejBPAbv1Bo2e+Xfj7nsf35Wx3
CB1JkhwiLAfQmNFrtFhITMV+J3kLcAtB9QofrGIo3a6qtNgyn52tckpjkZ8nmUA2hbnL
fr9g==
d=google.com; s=20120113;
h=mime-version:sender:in-reply-to:references:from:date
:x-google-sender-auth:message-id:subject:to:content-type
:x-system-of-record:x-gm-message-state;
bh=CkHiBvsTabJSfxptJPkuMXHT+EfnfyKCVjVHtLg6elY=;
b=ils4WXBbwrDQ5VezTsZGsGrIUu8AoL8qUXRxHbJesfbFef1DnHZd9yxiR4qxQd693P
dwAgDxmw3LTbqkcPWN660K7UOPGBMImNo5SKCgpaC4cqDvMmZIhFVTwOcReay/35UOpn
4gTOX9eGHRvkbO7HeeAoJDY77/7Ao+pLbVshvm1kJSth/VIeK9GFGvmEZcBKd6QL7XlM
zPR3M5B2wlramygT4sXb12q/z6023qxuIbK4+uY9O9pXBhJvNwygCGAU/7MHt/H+xx2v
dditmQruu3LwTVG1IFM8yrH+yKM0odW+hiWewR8qYR/zRmRKzgUDTXym27mOsou5Yb4/
z2ZQ==
Received: by 10.204.152.146 with SMTP id g18mr2794092bkw.73.1349446328254;
Fri, 05 Oct 2012 07:12:08 -0700 (PDT)
MIME-Version: 1.0
Sender: jkumme...@google.com
Received: by 10.204.179.194 with HTTP; Fri, 5 Oct 2012 07:11:47 -0700 (PDT)
In-Reply-To: <CAATLsPYbv10Ec8UOrtSCsd8=hzgxrHAnOr+r+XLqr93MvxT...@mail.gmail.com>
References: <CAATLsPYg9i1U6ZN8jvye7E5AWKp5U21G1_ubo9+P0=kHXgS...@mail.gmail.com>
<CAKSzg3TRUjtQfZzK29MJ+tSHZbqf6oEpTNfOr01cDC-fuME...@mail.gmail.com> <CAATLsPYbv10Ec8UOrtSCsd8=hzgxrHAnOr+r+XLqr93MvxT...@mail.gmail.com>
From: Jakob Kummerow <jkumme...@chromium.org>
Date: Fri, 5 Oct 2012 16:11:47 +0200
Message-ID: <CAKSzg3T-RP9+Yrt2Psfu=nKw_xUdJaM4JTgTBn42O2ubQgv...@mail.gmail.com>
Subject: Re: [v8-users] x32 ABI support
To: v8-users@googlegroups.com
Content-Type: multipart/alternative; boundary=0015175cb92a0a012c04cb507530
X-System-Of-Record: true
X-Gm-Message-State: ALoCoQn2aaaI/57bw8L6Q1aNLdS9Dhgjz5JjmF7cCCn8l7+yHjwn/QxzHayN/dt3QhGTsx7sPqAhKwp1eLaAytsWtTsO2LwWq3wYMWKtEUc0wX7vuRJdjsrPaM08sLnksoRZkUhpBk0FKq9yi3QNFTydJxBF5TCI0klVR0vYIAIaqybk1oVuQWSVfH73YHtaSMZjy/e8aviVueU+zz0vfhgXy2QubDdM7Q==
--0015175cb92a0a012c04cb507530
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
On Fri, Oct 5, 2012 at 3:29 PM, Pawe=C5=82 Hajdan, Jr.
<phajdan...@chromium.org>wrote:
> On Tue, Oct 2, 2012 at 4:32 PM, Jakob Kummerow <jkumme...@chromium.org>wr=
ote:
>
>> V8 does not support x32 at this time. Sorry.
>
>
> OK - do you plan to add that support? Just asking e.g. so I can take the
> right action as maintainer of v8 package in Gentoo. It's fine for me if y=
ou
> don't have such plans. :)
>
No. (For reasoning, see below.)
>
>> Adding support is not just a matter of fixing a few lines. It would be a=
n
>> entire new platform port (albeit similar to the existing ia32/x64 ports)=
;
>> roughly 40K lines of code.
>>
>
> Got it. For reference - would you accept patches adding such a port? Note
> that I'm rather not going to work on it atm, but someone else might be
> interested.
>
It's not just the initial creation of a new platform port that's a bunch of
work, it's also the ongoing maintenance of it (i.e. making it keep up with
the continuing development of V8). As long as the potential user base for
x32 is as small as it currently is, it doesn't make sense for the team to
spend resources on that.
The obvious alternative is a third-party maintained port in a separate
repository that tracks V8, as our MIPS port is currently doing it (
https://github.com/paul99/v8m-rb). This model can work with or without
upstreaming of the changes, but either way with a clear statement that the
core V8 team does not commit to making sure the port works and is up to
date.
>
>> The reason is that V8 is not just any C++ program which you can simply
>> compile for x32 -- it's actually a compiler of its own and emits native
>> code, so it has to know about registers, machine instructions, calling
>> conventions and all the other stuff that differentiates x32 from ia32 an=
d
>> x64. AFAIK x32 and ia32 are incompatible enough that V8's ia32 port will
>> probably just crash on an x32 system (I'm kind of surprised that it
>> compiles at all).
>>
>
> FYI, I ran ia32 d8 on that x32 system and on simple cases like "a =3D 8" =
or
> "for (a =3D 0; a < 10; a++);" it didn't crash. Anyway, trying to combine
> resulting v8 shared library with x32 ABI binaries would indeed cause
> trouble.
>
Hm... I would have expected the interaction of assembly stubs and C++
compiled code to be broken/crashy right inside V8. Maybe the ia32 and x32
calling conventions are more similar than I thought (haven't spent time
with the technical specification yet). Does the test suite ("make
ia32.release.check TESTJOBS=3D-j4" or whatever many cores you have) pass? D=
o
Chromium and/or node.js work on x32? There is no way the ia32 version of V8
will make use of x32's benefits (more registers, instructions and so on),
but if it happens to work without obvious errors, you could simply make it
available to users running x32 systems, as it would be better than nothing
:-)
>
>> On Tue, Oct 2, 2012 at 3:40 PM, Pawe=C5=82 Hajdan, Jr. <
>> phajdan...@chromium.org> wrote:
>>
>>> Is v8 expected to support x32 ABI? I tried "make native" (using v8
>>> bleeding_edge, r12652) on an x32 ABI Gentoo install, and it failed with
>>> e.g.:
>>>
>>> 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
>>>
>>> On the other hand, "make ia32.release" succeeded, but I'm not sure if
>>> that's what should be done on x32.
>>>
>>> For more info about this issue on Gentoo, see
>>> https://bugs.gentoo.org/show_bug.cgi?id=3D423815
>>>
>>> In case you wonder what x32 ABI is all about, please take a look at
>>> http://en.wikipedia.org/wiki/X32_ABI and
>>> https://sites.google.com/site/x32abi/
>>>
>>> I have a working x32 install and can contribute patches, but any
>>> guidance and feedback is welcome.
>>>
>>> --
>>> v8-users mailing list
>>> v8-users@googlegroups.com
>>> http://groups.google.com/group/v8-users
>>
>>
>> --
>> v8-users mailing list
>> v8-users@googlegroups.com
>> http://groups.google.com/group/v8-users
>
>
> --
> v8-users mailing list
> v8-users@googlegroups.com
> http://groups.google.com/group/v8-users
>
--0015175cb92a0a012c04cb507530
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<br><br><div class=3D"gmail_quote">On Fri, Oct 5, 2012 at 3:29 PM, Pawe=C5=
=82 Hajdan, Jr. <span dir=3D"ltr"><<a href=3D"mailto:phajdan.jr@chromium=
.org" target=3D"_blank">phajdan...@chromium.org</a>></span> wrote:<br><b=
lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px =
#ccc solid;padding-left:1ex">
<div class=3D"im">On Tue, Oct 2, 2012 at 4:32 PM, Jakob Kummerow <span dir=
=3D"ltr"><<a href=3D"mailto:jkumme...@chromium.org" target=3D"_blank">jk=
umme...@chromium.org</a>></span> wrote:<br></div><div class=3D"gmail_quo=
te"><div class=3D"im">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
V8 does not support x32 at this time. Sorry.</blockquote><div><br></div></d=
iv><div>OK - do you plan to add that support? Just asking e.g. so I can tak=
e the right action as maintainer of v8 package in Gentoo. It's fine for=
me if you don't have such plans. :)</div>
</div></blockquote><div><br></div><div>No. (For reasoning, see below.)</div=
><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"gmail_quote"><=
div class=3D"im">
<div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><div>Adding support is not =
just a matter of fixing a few lines. It would be an entire new platform por=
t (albeit similar to the existing ia32/x64 ports); roughly 40K lines of cod=
e.</div>
</blockquote><div><br></div></div><div>Got it. For reference - would you ac=
cept patches adding such a port? Note that I'm rather not going to work=
on it atm, but someone else might be interested.</div></div></blockquote>
<div><br></div><div>It's not just the initial creation of a new platfor=
m port that's a bunch of work, it's also the ongoing maintenance of=
it (i.e. making it keep up with the continuing development of V8). As long=
as the potential user base for x32 is as small as it currently is, it does=
n't make sense for the team to spend resources on that.=C2=A0</div>
<div><br></div><div>The obvious alternative is a third-party maintained por=
t in a separate repository that tracks V8, as our MIPS port is currently do=
ing it (<a href=3D"https://github.com/paul99/v8m-rb">https://github.com/pau=
l99/v8m-rb</a>). This model can work with or without upstreaming of the cha=
nges, but either way with a clear statement that the core V8 team does not =
commit to making sure the port works and is up to date.</div>
<div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"gmail_quote"><d=
iv class=3D"im"><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D=
"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>The reason is that V8 is not just any C++ program which you can simply=
compile for x32 -- it's actually a compiler of its own and emits nativ=
e code, so it has to know about registers, machine instructions, calling co=
nventions and all the other stuff that differentiates x32 from ia32 and x64=
. AFAIK x32 and ia32 are incompatible enough that V8's ia32 port will p=
robably just crash on an x32 system (I'm kind of surprised that it comp=
iles at all).</div>
</blockquote><div><br></div></div><div>FYI, I ran ia32 d8 on that x32 syste=
m and on simple cases like "a =3D 8" or "for (a =3D 0; a <=
; 10; a++);" it didn't crash. Anyway, trying to combine resulting =
v8 shared library with x32 ABI binaries would indeed cause trouble.</div>
</div></blockquote><div><br></div><div>Hm... I would have expected the inte=
raction of assembly stubs and C++ compiled code to be broken/crashy right i=
nside V8. Maybe the ia32 and x32 calling conventions are more similar than =
I thought (haven't spent time with the technical specification yet). Do=
es the test suite ("make ia32.release.check TESTJOBS=3D-j4" or wh=
atever many cores you have) pass? Do Chromium and/or node.js work on x32? T=
here is no way the ia32 version of V8 will make use of x32's benefits (=
more registers, instructions and so on), but if it happens to work without =
obvious errors, you could simply make it available to users running x32 sys=
tems, as it would be better than nothing :-)</div>
<div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"gmail_quote"><d=
iv><div class=3D"h5">
<div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class=3D"gmail_qu=
ote"><div><div>On Tue, Oct 2, 2012 at 3:40 PM, Pawe=C5=82 Hajdan, Jr. <span=
dir=3D"ltr"><<a href=3D"mailto:phajdan...@chromium.org" target=3D"_blan=
k">phajdan...@chromium.org</a>></span> wrote:<br>
</div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><div><div>
Is v8 expected to support x32 ABI? I tried "make native" (using v=
8 bleeding_edge, r12652) on an x32 ABI Gentoo install, and it failed with e=
.g.:<div><br></div><div><div>In file included from ../src/conversions-inl.h=
:35:0,</div>
<div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0from ../=
src/conversions.cc:32:</div><div>../src/globals.h:243:33: warning: overflow=
in implicit constant conversion [-Woverflow]</div><div>../src/globals.h:24=
4:38: warning: large integer implicitly truncated to unsigned type [-Woverf=
low]</div>
<div>../src/atomicops_internals_x86_gcc.h: In function 'void v8::intern=
al::Acquire_Store(volatile Atomic64*, v8::internal::Atomic64)':</div><d=
iv>../src/atomicops_internals_x86_gcc.h:222:13: error: redefinition of '=
;void v8::internal::Acquire_Store(volatile Atomic64*, v8::internal::Atomic6=
4)'</div>
<div>../src/atomicops_internals_x86_gcc.h:122:13: error: 'void v8::inte=
rnal::Acquire_Store(volatile Atomic32*, v8::internal::Atomic32)' previo=
usly defined here</div><div>../src/atomicops_internals_x86_gcc.h: In functi=
on 'void v8::internal::Release_Store(volatile Atomic64*, v8::internal::=
Atomic64)':</div>
<div>../src/atomicops_internals_x86_gcc.h:227:13: error: redefinition of &#=
39;void v8::internal::Release_Store(volatile Atomic64*, v8::internal::Atomi=
c64)'</div><div>../src/atomicops_internals_x86_gcc.h:149:13: error: =
9;void v8::internal::Release_Store(volatile Atomic32*, v8::internal::Atomic=
32)' previously defined here</div>
<div>../src/atomicops_internals_x86_gcc.h: In function 'v8::internal::A=
tomic64 v8::internal::NoBarrier_Load(const volatile Atomic64*)':</div><=
div>../src/atomicops_internals_x86_gcc.h:248:17: error: redefinition of =
9;v8::internal::Atomic64 v8::internal::NoBarrier_Load(const volatile Atomic=
64*)'</div>
<div>../src/atomicops_internals_x86_gcc.h:155:17: error: 'v8::internal:=
:Atomic32 v8::internal::NoBarrier_Load(const volatile Atomic32*)' previ=
ously defined here</div><div>../src/atomicops_internals_x86_gcc.h: In funct=
ion 'v8::internal::Atomic64 v8::internal::Acquire_Load(const volatile A=
tomic64*)':</div>
<div>../src/atomicops_internals_x86_gcc.h:252:17: error: redefinition of &#=
39;v8::internal::Atomic64 v8::internal::Acquire_Load(const volatile Atomic6=
4*)'</div><div>../src/atomicops_internals_x86_gcc.h:159:17: error: '=
;v8::internal::Atomic32 v8::internal::Acquire_Load(const volatile Atomic32*=
)' previously defined here</div>
<div>../src/atomicops_internals_x86_gcc.h: In function 'v8::internal::A=
tomic64 v8::internal::Release_Load(const volatile Atomic64*)':</div><di=
v>../src/atomicops_internals_x86_gcc.h:260:17: error: redefinition of '=
v8::internal::Atomic64 v8::internal::Release_Load(const volatile Atomic64*)=
'</div>
<div>../src/atomicops_internals_x86_gcc.h:166:17: error: 'v8::internal:=
:Atomic32 v8::internal::Release_Load(const volatile Atomic32*)' previou=
sly defined here</div><div>../src/atomicops_internals_x86_gcc.h: In functio=
n 'v8::internal::Atomic64 v8::internal::Acquire_CompareAndSwap(volatile=
Atomic64*, v8::internal::Atomic64, v8::internal::Atomic64)':</div>
<div>../src/atomicops_internals_x86_gcc.h:265:17: error: redefinition of &#=
39;v8::internal::Atomic64 v8::internal::Acquire_CompareAndSwap(volatile Ato=
mic64*, v8::internal::Atomic64, v8::internal::Atomic64)'</div><div>
../src/atomicops_internals_x86_gcc.h:94:17: error: 'v8::internal::Atomi=
c32 v8::internal::Acquire_CompareAndSwap(volatile Atomic32*, v8::internal::=
Atomic32, v8::internal::Atomic32)' previously defined here</div><div>
../src/atomicops_internals_x86_gcc.h: In function 'v8::internal::Atomic=
64 v8::internal::Release_CompareAndSwap(volatile Atomic64*, v8::internal::A=
tomic64, v8::internal::Atomic64)':</div><div>../src/atomicops_internals=
_x86_gcc.h:275:17: error: redefinition of 'v8::internal::Atomic64 v8::i=
nternal::Release_CompareAndSwap(volatile Atomic64*, v8::internal::Atomic64,=
v8::internal::Atomic64)'</div>
<div>../src/atomicops_internals_x86_gcc.h:104:17: error: 'v8::internal:=
:Atomic32 v8::internal::Release_CompareAndSwap(volatile Atomic32*, v8::inte=
rnal::Atomic32, v8::internal::Atomic32)' previously defined here</div>
</div><div><br></div><div>On the other hand, "make ia32.release" =
succeeded, but I'm not sure if that's what should be done on x32.</=
div><div><br></div><div>For more info about this issue on Gentoo, see=C2=A0=
<a href=3D"https://bugs.gentoo.org/show_bug.cgi?id=3D423815" target=3D"_bla=
nk">https://bugs.gentoo.org/show_bug.cgi?id=3D423815</a></div>
<div><br></div><div>In case you wonder what x32 ABI is all about, please ta=
ke a look at=C2=A0<a href=3D"http://en.wikipedia.org/wiki/X32_ABI" target=
=3D"_blank">http://en.wikipedia.org/wiki/X32_ABI</a> and=C2=A0<a href=3D"ht=
tps://sites.google.com/site/x32abi/" target=3D"_blank">https://sites.google=
.com/site/x32abi/</a></div>
<div><br></div><div>I have a working x32 install and can contribute patches=
, but any guidance and feedback is welcome.</div></div></div><span><font co=
lor=3D"#888888"><span><font color=3D"#888888">
<p></p>
-- <br>
v8-users mailing list<br>
<a href=3D"mailto:v8-users@googlegroups.com" target=3D"_blank">v8-users@goo=
glegroups.com</a><br>
<a href=3D"http://groups.google.com/group/v8-users" target=3D"_blank">http:=
//groups.google.com/group/v8-users</a></font></span></font></span></blockqu=
ote></div><span><font color=3D"#888888"><br></font></span></div>
<span><font color=3D"#888888">
<p></p>
-- <br>
v8-users mailing list<br>
<a href=3D"mailto:v8-users@googlegroups.com" target=3D"_blank">v8-users@goo=
glegroups.com</a><br>
<a href=3D"http://groups.google.com/group/v8-users" target=3D"_blank">http:=
//groups.google.com/group/v8-users</a></font></span></blockquote></div></di=
v></div><div class=3D"HOEnZb"><div class=3D"h5"><br>
<p></p>
-- <br>
v8-users mailing list<br>
<a href=3D"mailto:v8-users@googlegroups.com" target=3D"_blank">v8-users@goo=
glegroups.com</a><br>
<a href=3D"http://groups.google.com/group/v8-users" target=3D"_blank">http:=
//groups.google.com/group/v8-users</a></div></div></blockquote></div><br>
--0015175cb92a0a012c04cb507530--