Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Oct 2004 21:03:20 +0300
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        "David O'Brien" <obrien@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/lib/libc/i386/net htonl.S ntohl.S
Message-ID:  <20041018180319.GD89681@ip.net.ua>
In-Reply-To: <20041018174511.GA6079@dragon.nuxi.com>
References:  <200410181719.i9IHJa9l097436@repoman.freebsd.org> <20041018173516.GB89681@ip.net.ua> <20041018174511.GA6079@dragon.nuxi.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--SO98HVl1bnMOfKZd
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Oct 18, 2004 at 10:45:11AM -0700, David O'Brien wrote:
> On Mon, Oct 18, 2004 at 08:35:16PM +0300, Ruslan Ermilov wrote:
> > On Mon, Oct 18, 2004 at 05:19:36PM +0000, David E. O'Brien wrote:
> > > obrien      2004-10-18 17:19:36 UTC
> > >   FreeBSD src repository
> > >   Modified files:
> > >     lib/libc/i386/net    htonl.S ntohl.S=20
> > >   Log:
> > >   Sync with sys/i386/include/endian.h: use the single instruction 'bs=
wap'.
> > >   Revision  Changes    Path
> > >   1.10      +4 -0      src/lib/libc/i386/net/htonl.S
> > >   1.10      +4 -0      src/lib/libc/i386/net/ntohl.S
> > :  ENTRY(__htonl)
> > :         movl    4(%esp),%eax
> > : +#ifdef I386_CPU
> > :         xchgb   %al,%ah
> > :         roll    $16,%eax
> > :         xchgb   %al,%ah
> > : +#else
> > : +       bswap   %eax
> > : +#endif
> > :         ret
> >=20
> > Ahem, but this makes this code unsuitable for i386.
>=20
> Yes.  You missed the discussion in freebsd-current on this?  For
> 6-CURRENT and RELENG_5 running on a real I386 is not supported.
>=20
Hmm.  I remember the plan was to decomission the i386 support
only in 6.0-CURRENT, as per sys/i386/conf/NOTES:

# Be sure to disable 'cpu I386_CPU' for SMP kernels.
# I386_CPU is mutually exclusive with the other CPU types.
# I386_CPU is deprecated and will be removed in 6.0-RELEASE.

And

  http://www.freebsd.org/releases/5.2.1R/hardware-i386.html#PROC

says i386 (except 386SX) is still supported.  I recall phk@
looking for the 386DX testers, but I don't remember what was
the result.

If you are burning 6.0-CURRENT bridges already, and this change
is the step in the I386_CPU deprecation direction, why not just
unifdef(1) this libc code, so that the "xchg" is always used?

> > I386_CPU
> > is only defined if kernel config file has "cpu I386_CPU", and
> > this has little relation to libc if at all.
>=20
> I know.  Give me some other symbol then we can publish that one should
> add to /etc/make.conf CFLAGS to try to build a userland for an I386.
> "I386_CPU" looks as good a spelling as any and I didn't see any need to
> spell it differently than in the kernel.
>=20
You can check for the CPUTYPE=3D"i386" for ${MACHINE_ARCH} =3D=3D "i386"
in libc/Makefile, and set I386_CPU in CFLAGS in this case.


Cheers,
--=20
Ruslan Ermilov
ru@FreeBSD.org
FreeBSD committer

--SO98HVl1bnMOfKZd
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQFBdAVnqRfpzJluFF4RArQ8AJwKAdH082TeByAbFDX3edmlTP7QrQCfWmoP
5VJb8+RzBFXbTPdToqTLsyI=
=UcvN
-----END PGP SIGNATURE-----

--SO98HVl1bnMOfKZd--



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