Date: Fri, 16 Aug 2013 18:02:01 +0300 From: Konstantin Belousov <kostikbel@gmail.com> To: Dimitry Andric <dim@FreeBSD.org> Cc: freebsd-current@FreeBSD.org, Dmitry Morozovsky <marck@rinet.ru>, Jung-uk Kim <jkim@FreeBSD.org>, Peter Wemm <peter@wemm.org> Subject: Re: building i386 world on amd64 host: failed @svn Message-ID: <20130816150201.GF4972@kib.kiev.ua> In-Reply-To: <70C1942B-8BA3-47D8-BFE4-3DC3B5CAD56C@FreeBSD.org> References: <alpine.BSF.2.00.1307281713160.55051@woozle.rinet.ru> <17A40261-A0DA-4070-990F-0D0777A5BE44@FreeBSD.org> <20130815183640.GR4972@kib.kiev.ua> <D559C583-B0A9-4731-B454-3521635AEC79@FreeBSD.org> <20130815193049.GU4972@kib.kiev.ua> <520D2E40.2090704@FreeBSD.org> <70C1942B-8BA3-47D8-BFE4-3DC3B5CAD56C@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--dscJE5GGjyIXq/37 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Aug 16, 2013 at 02:33:29PM +0200, Dimitry Andric wrote: > On Aug 15, 2013, at 21:38, Jung-uk Kim <jkim@FreeBSD.org> wrote: > > On 2013-08-15 15:30:49 -0400, Konstantin Belousov wrote: > >> On Thu, Aug 15, 2013 at 09:12:52PM +0200, Dimitry Andric wrote: > >>> On Aug 15, 2013, at 20:36, Konstantin Belousov > >>> <kostikbel@gmail.com> wrote: > >>>> Does the linux box defaults to pentium or higher for -march ?=20 > >>>> 64 bit atomics cannot be implemented in usermode on i386 on=20 > >>>> processors which do not have cmpxchg8b instruction. > >>>=20 > >>> Ah yes, you are totally right, with -v it gives: > >>>=20 > >>> COLLECT_GCC_OPTIONS=3D'-O2' '-S' '-v' '-mtune=3Dgeneric' > >>> '-march=3Di586' > >>>=20 > >>> So we should really disable atomics for i486 and lower? Though I > >>> have understood that there also some pentiums without > >>> cmpxchg8b... > >>=20 > >> I do not think that there was any Pentium-branded CPU which did > >> not implemented cmpxchg8b. Some late 486 did provided cpuid, but I > >> am almost certain that they did not have cmpxchg8b (cannot check > >> anyway). > >=20 > > It is actually little complicated. > >=20 > > http://www.geoffchappell.com/studies/windows/km/cpu/cx8.htm >=20 >=20 > In contrast, gcc's rules (in contrib/gcc/config/i386/i386.c) are pretty > straightforward: >=20 > /* Compare and exchange was added for 80486. */ > const int x86_cmpxchg =3D ~m_386; > /* Compare and exchange 8 bytes was added for pentium. */ > const int x86_cmpxchg8b =3D ~(m_386 | m_486); >=20 > So maybe the following is a safe enough solution for now: >=20 > Index: usr.bin/svn/svn_private_config.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- usr.bin/svn/svn_private_config.h (revision 254300) > +++ usr.bin/svn/svn_private_config.h (working copy) > @@ -153,7 +153,9 @@ > #define SVN_FS_WANT_DB_PATCH 14 >=20 > /* Define if compiler provides atomic builtins */ > +#if !defined(__i386__) || !defined(__i486__) > #define SVN_HAS_ATOMIC_BUILTINS 1 > +#endif I do not understand this. Isn't __i386__ defined always when compiling for 32bit x86 ? =20 The !defined(__i486__) part assumes that any other cpu variation supported by compiler has cmpxchg8b. --dscJE5GGjyIXq/37 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iQIcBAEBAgAGBQJSDj7pAAoJEJDCuSvBvK1BrI0P/0Uz2IwpZr9PxNOOpN1dLSeD TknmrCubSz5X/sxkhZuUa8On1sJMM801hxLaJzJGISTA004xjH3lEWG8TI4Vdhcn nDMiwRRtOsg/e1zdqjjj+2BZbAn4LbVWNbAfN8FHXo/UPpQdoc4RQmt/jL+yFREN /c4uD6dO/kN+1jdaFfN/LbZbecHA9/3+HGpNTfOfxbNeLg5irpFSN1wFN8heXylY DJYVmPU/CKj6/lXr21/vV5oMY46Yb77OM0QMKR2ROTCHl8ONqYJ/pzwlcbPmHGzH e91WfC8GiYAwNzpXUCv6LJ2N0k+783r9/Ofhp0s7UG1RMxNVsPLUUyyPsV0tOh9o dG80PIXiwPPsr/pD3teWGDE17nxHHtSPwiUM8iLrB7hmOjHmkk0j9Y8gBEKjXN8+ aAqUxcR2Tk2cXDOiGG5y3//7oDFyDnv+RGjo3KazeP8S0y6ib66ZNkdwdRf53VTw vYxc0P+yiK//o5M7Svd92zkQkXAqGiTJ8Ha/PJhFIBH6sSW5ZbQizCfwCx6+pFEx tMZzAZapUnyDyM82vkUKql8CJkdZDEWNvIXVTuT30W3NESnYWRbHptNjcuWlsJLp DnB6vOWOvosUn4r1Hz7H2IYGSCAI/DolhBQLAaDDUC2U+KVVyIWeaNSOJZLL3FeZ esVWTbY2f1dwnb6JxGe4 =sQzt -----END PGP SIGNATURE----- --dscJE5GGjyIXq/37--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130816150201.GF4972>