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>