Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Jun 2011 09:29:32 +1000 (EST)
From:      Bruce Evans <brde@optusnet.com.au>
To:        Attilio Rao <attilio@FreeBSD.org>
Cc:        src-committers@FreeBSD.org, Alan Cox <alc@FreeBSD.org>, svn-src-all@FreeBSD.org, "Bjoern A. Zeeb" <bz@FreeBSD.org>, Bruce Evans <brde@optusnet.com.au>, svn-src-head@FreeBSD.org
Subject:   Re: svn commit: r223307 - head/sys/vm
Message-ID:  <20110622090856.A2727@besplex.bde.org>
In-Reply-To: <BANLkTi=7WnYPQRwE4Hi472DuJz91d1sK=g@mail.gmail.com>
References:  <201106191913.p5JJDOqJ006272@svn.freebsd.org> <BBC34F79-FFA7-4A05-83B3-DE17E0AB14D0@FreeBSD.org> <20110622063258.D2275@besplex.bde.org> <BANLkTi=7WnYPQRwE4Hi472DuJz91d1sK=g@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--0-1048822986-1308698972=:2727
Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; format=flowed
Content-Transfer-Encoding: QUOTED-PRINTABLE

On Tue, 21 Jun 2011, Attilio Rao wrote:

> 2011/6/21 Bruce Evans <brde@optusnet.com.au>:
>>> vm_page.o: In function `vm_page_clear_dirty':
>>> /sys/vm/vm_page.c:(.text+0x18d0): undefined reference to `atomic_clear_=
8'
>>> /sys/vm/vm_page.c:(.text+0x18d0): relocation truncated to fit: R_MIPS_2=
6
>>> against `atomic_clear_8'
>>> vm_page.o: In function `vm_page_set_validclean':
>>> /sys/vm/vm_page.c:(.text+0x38f0): undefined reference to `atomic_clear_=
8'
>>> /sys/vm/vm_page.c:(.text+0x38f0): relocation truncated to fit: R_MIPS_2=
6
>>> against `atomic_clear_8'
>>
>> Atomic types shorter than int cannot be used in MI code, since they migh=
t
>> not exist. =C2=A0Apparently they don't exist on mips. =C2=A0jake@ fixed =
all their
>> old uses for sparc4 in ~Y2K.
>
> I'm sure they do, they exist in support.S though and may not have the
> _8 form (they may just have the _char version). I may look at the code
> again to be sure.

Perhaps more like the reverse.  They are correctly spelled with _char
form in the C code.  This is needed to match the declarations of the
variables literally.  They are translated to the _8 form by
<machine/atomic.h> but the _8 form doesn't exist.  I think the acq and
rel forms exist in <machine/atomic.h>.  mips/support.S only has a limited
set of atomics, including clear_16 but not including clear_8.

Anyway, they shouldn't be used in either form.  They certainly don't
exist on sparc64, but sparc64 compiles because it is on the other half
of the ifdef.  sparc64 atomic support is actually 4 times smaller than
mips atomic support, not just 2.5 times, since it doesn't have extras
in support.S.

Bruce
--0-1048822986-1308698972=:2727--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110622090856.A2727>