Skip site navigation (1)Skip section navigation (2)
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>