Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 May 2014 13:53:28 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        Baptiste Daroussin <bapt@freebsd.org>, src-committers@freebsd.org, Ian Lepore <ian@freebsd.org>, svn-src-all@freebsd.org, Glen Barber <gjb@freebsd.org>, Nathan Whitehorn <nwhitehorn@freebsd.org>, svn-src-head@freebsd.org, Tijl Coosemans <tijl@freebsd.org>
Subject:   Re: svn commit: r266553 - head/release/scripts
Message-ID:  <E694D0DC-C9BE-4C95-A4E5-B73F36DB9963@bsdimp.com>
In-Reply-To: <20140528154728.GB3991@kib.kiev.ua>
References:  <20140527001811.3e9d3e8d@kalimero.tijl.coosemans.org> <05D1A11D-5985-42EA-84AD-209A8B51D391@bsdimp.com> <20140527093633.0a922e13@kalimero.tijl.coosemans.org> <85FABD2B-81BB-4E1A-B61E-4216A144A9DB@bsdimp.com> <20140527214038.17d00369@kalimero.tijl.coosemans.org> <13EB325C-3882-46AA-9B17-3BF19997C978@bsdimp.com> <20140528125027.6d0cc4fb@kalimero.tijl.coosemans.org> <5E038619-5921-4B7A-A4EE-D1E83614934B@bsdimp.com> <20140528152820.GA3991@kib.kiev.ua> <D5376A56-2CB2-4CFD-BBC6-0E97902D880E@bsdimp.com> <20140528154728.GB3991@kib.kiev.ua>

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

--Apple-Mail=_1E75C19A-0256-4135-A188-9FA601093413
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252


On May 28, 2014, at 9:47 AM, Konstantin Belousov <kostikbel@gmail.com> =
wrote:

> On Wed, May 28, 2014 at 09:35:27AM -0600, Warner Losh wrote:
>>=20
>> On May 28, 2014, at 9:28 AM, Konstantin Belousov =
<kostikbel@gmail.com> wrote:
>>=20
>>> On Wed, May 28, 2014 at 08:26:58AM -0600, Warner Losh wrote:
>>>>=20
>>>> Then we disagree on this point. However, the disagreement here is
>>>> kinda foundational: to build a set of libraries or sys root, you =
have
>>>> to have a MACHINE_ARCH to make it work. Even in our current system, =
we
>>>> set MACHINE_ARCH to i386 or powerpc when building the 32-bit =
binaries
>>>> (note: we don?t do this for mips). This means that if we do grow =
x32
>>>> support, we?ll need to grow a MACHINE_ARCH for it. That?s my point:
>>>> all ABIs have MACHINE_ARCH associated with them, and those are the
>>>> names users are used to specifying, and are the ones that are the =
most
>>>> natural for script writers to use. With nathan?s patches, we?re to =
the
>>>> point where those are used, though there?s also the option of using
>>>> the non-standard names if you want (e.g. amd64:32 instead of x32).
>>>>=20
>>>=20
>>> I am not sure if this comment would add anything to the discussion,
>>> but other build systems do not require MACHINE_ARCH.  In our terms,
>>> other build systems are happy to build:
>>> i386 binary when MACHINE is amd64 and CFLAGS contains -m32;
>>> x32 binary when MACHINE is amd64 and CFLAGS contains -mx32.
>>>=20
>>> For HEAD and stable/10 we finally reached the point where -m32 =
works,
>>> on amd64; it worked on powerpc64 from inception, AFAIU Nathan. At =
least
>>> this is true for dependencies limited to the base system, and not to =
the
>>> ports (the later is since ports do not know about multiarch).
>>>=20
>>> It is limitation of our build that we require MACHINE_ARCH to build
>>> other natively supported ABI binary on the host. Ideally, the hacks =
that
>>> treat lib32 build as the cross-compilation would go away eventually.
>>=20
>> I doubt it. The MACHINE_ARCH is used to select which files to build.
> Do I understand you right that the comment references e.g. a selection
> of arch-specific subdir in lib/libc or libexec/rtld-elf for inclusion
> into the build ? If yes, I cannot disagree with the statement.

As far as I can tell, that=92s the only reason we=92re doing it..  But =
it is a critically important reason...

> My note was about our build system which currently requires
> full-fledged cross-build to even create i386 binary on amd64 vs. other
> builds which consider this as a (often minor) variations of the host
> target. Sure, some variances must be allowed, e.g. to select proper .S
> file for the ABI, but we do not need cross-build to get i386 on amd64.

lib32 uses -m32 and some other flags to achieve its ends. So it doesn=92t =
create a full i386 compiler, etc. It just uses the amd64 one with =
special flags/args. So I don=92t think it requires a full-fledged =
cross-build environment, or I misunderstand what you mean by that =
phrase.

But none of this changes the fact that we have a unique MACHINE_ARCH =
value per ABI.

Warner

--Apple-Mail=_1E75C19A-0256-4135-A188-9FA601093413
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQIcBAEBCgAGBQJThj64AAoJEGwc0Sh9sBEApb0P/1+mgH0iiabCS0q0cB0BD+2z
6h4loQ5ag61mpykbnPDQU7eHJ37Po4uQ2ZNTV5vuQxTK0bMWftPv5JJyt9Y38Otv
LNwM7zm71paooQwB+GK0+1gMX3bruOaRQjdlefmBS1/cYa9dlxaiW7Sr0ILFoOBk
QA5dBgafpppQb+6La5W5BU1mLFoZR4NeAJ19RJQTo0PE7vbIMT3h7r5vCVpLUFm1
JUdMmEhf696lgrulMz6XkYX0PamMsQgDuMNuJphKrw3iyMgMgvugcJfUi1Z/6tKg
ffUyqBa0eiea909pBGHv4bUAeU2Px/YntDOxGa46S9vvoiyWXWkGXNOFaiQaUC8C
gVnB/XU5VI1rc1DB7c8mUloILOJrydVQbLgn5CBMlE5Fsc1yY9T6hwoKg+cKH/lO
F92caf7HO84SlllB71cL2iNi/k1Hj7ZH0a7IkbqmCOVKx4liAuTb/GMzH2H2Rsiy
VK4Y/NImGhZMp7AH++lafvjdu/IB5bc0wlHxpELI3811YICPbZjiufYzvcg+khOx
xY4zvXCKikR52IbZXNKpVSkMwwccUZobozC5paoa/QZQbpvjLjZeOohkwmTTI0T9
9GD+qwe1bWGUu64K8G3Q2fDFbXo6n4JMrKoTajn87FhYt8AfreFTA+k54NGE5Aat
3+9QZs1NkD3ALrIYF6IN
=6z+u
-----END PGP SIGNATURE-----

--Apple-Mail=_1E75C19A-0256-4135-A188-9FA601093413--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E694D0DC-C9BE-4C95-A4E5-B73F36DB9963>