Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Nov 2018 19:41:54 -0800
From:      Mark Millard <marklmi@yahoo.com>
To:        Bryan Drewery <bdrewery@FreeBSD.org>
Cc:        ports-list freebsd <freebsd-ports@freebsd.org>, freebsd-x11@freebsd.org, Jan Beich <jbeich@FreeBSD.org>, Warner Losh <imp@bsdimp.com>, "Simon J. Gerraty" <sjg@FreeBSD.org>
Subject:   Re: ports head -r487783: on armv7 x11/pixman fails to build: /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local symbol in readonly segment; recompile object files with -fPIC
Message-ID:  <8C7A2ACE-2786-4D31-B516-22F1EB3372F6@yahoo.com>
In-Reply-To: <BFDED411-69A7-4163-A69C-82CA20E70573@yahoo.com>
References:  <56BE95DD-61E5-43CB-923D-10E968003FE3@yahoo.com> <5FF705ED-B019-4CB1-B516-796C2E7A6FF9@yahoo.com> <F589E76E-072F-4A89-AA4A-F5209FBDFBC0@yahoo.com> <E85CED1A-7AAA-4415-9154-A7C90E7B3D09@yahoo.com> <51a82f62-13df-a485-4d5a-7dbfa3d1107f@FreeBSD.org> <C2658D3B-E706-4556-BFE4-2496C7CD2B7E@yahoo.com> <12EFB5C5-4BC6-4083-B51D-26D1D3150C35@yahoo.com> <9cf37f5d-3aea-390c-e553-42ab3efe1c98@FreeBSD.org> <BFDED411-69A7-4163-A69C-82CA20E70573@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
[My wording presumed some context not presented.]

On 2018-Nov-14, at 18:21, Mark Millard <marklmi at yahoo.com> wrote:

> On 2018-Nov-14, at 17:45, Bryan Drewery <bdrewery at FreeBSD.org> wrote:
> 
>> I think the real problem here is that Poudriere is setting MACHINE_ARCH
>> in make.conf and sys.mk loads make.conf *after* checking MACHINE_CPUARCH
>> (derived from MACHINE_ARCH) to determine CFLAGS; The .if is expanding
>> MACHINE_CPUARCH before make.conf is included.
>> 
>> We probably need a make-env.conf thing like src-env.conf to allow
>> modifying sys.mk earlier.
> 
> Cool.
> 
> 
> We still get the result that arm[67], and possibly some mips,
> have had a lot of -O2 use based on what has historically been
> done by the qemu-user-static based official-build servers.
 
The reference to qemu-user-static was meant to be for
with /nxb-bin/. . . (or some form of native tools). It
is the native tools that initially have MACHINE_ARCH
being amd64 by default for the example contexts.

Absent that, qemu-arm-static would likely report armv6 for
all arm's until the explicit assignment. (The "armv6" is a
single compile-time constant in the qemu-arm-static
source at this time.) So this likely would behave as on
a native build: -O .

> And that leads to questioning the need for -O instead of -O2
> for armv[67] and possibly some mips contexts.
> 
> Or, going the other way: Should -O be forced and have an
> exp run for, say armv7 ? An example of what would be found is
> what I ran into for x11/pixman when its build used -O (native)
> instead of -O2 (cross-build via qemu-user-static) and a link
> command failed for -O use. (It was the failure that started my
> looking for what was different from my prior cross-build that
> had worked.)


===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8C7A2ACE-2786-4D31-B516-22F1EB3372F6>