Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Nov 2018 06:46:07 -0800
From:      Mark Millard <marklmi@yahoo.com>
To:        Jan Beich <jbeich@FreeBSD.org>
Cc:        Mark Millard via freebsd-multimedia <freebsd-multimedia@freebsd.org>, ports-list freebsd <freebsd-ports@freebsd.org>, multimedia@FreeBSD.org
Subject:   Re: ports head -r484652: multimedia/gstreamer1-libav fails to amd64 -> armv7 cross build: error: /usr/local/bin/as: unrecognized option `-isystem'
Message-ID:  <2167B016-BB1F-4CF2-87CB-4473198D3A6E@yahoo.com>
In-Reply-To: <h8gn-vj7y-wny@FreeBSD.org>
References:  <ED3B4618-FC89-497D-8368-62D41B5E1E0C@yahoo.com> <muqf-ygju-wny@FreeBSD.org> <1C7539AE-9384-4580-A658-B08E7FB8A4EF@yahoo.com> <h8gn-vj7y-wny@FreeBSD.org>

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


On 2018-Nov-11, at 05:26, Jan Beich <jbeich at FreeBSD.org> wrote:

> Mark Millard <marklmi at yahoo.com> writes:
>=20
>> On 2018-Nov-11, at 03:55, Jan Beich <jbeich at FreeBSD.org> wrote:
>>=20
>>> Mark Millard via freebsd-multimedia <freebsd-multimedia@freebsd.org>
>>> writes:
>>>=20
>>>> poudirere-devel reported:
>>>>=20
>>>> [00:38:41] [03] [00:02:01] Saved multimedia/gstreamer1-libav | =
gstreamer1-libav-1.14.4_1 wrkdir to: =
/usr/local/poudriere/data/wrkdirs/FBSDFSSDjailArmV7-default/default/gstrea=
mer1-libav-1.14.4_1.tbz
>>>> [00:38:42] [03] [00:02:02] Finished multimedia/gstreamer1-libav | =
gstreamer1-libav-1.14.4_1: Failed: configure
>>>>=20
>>>=20
>>> I can't reproduce on 13.0 armv7 (clang 7.0.1): https://ptpb.pw/wdCK
>>>=20
>>>> /usr/local/bin/as -mcpu=3Dcortex-a7 -isystem /usr/local/include =
-D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=3D64 -D_LARGEFILE_SOURCE -DPIC =
-no-integrated-as -march=3Darmv7-a -fPIC -c -o =
/tmp/ffconf.mw9w5KeR/test.o /tmp/ffconf.mw9w5KeR/test.S
>>>> /usr/local/bin/as: unrecognized option `-isystem'
>>>=20
>>> -isystem originates from USES=3Dlocalbase defined in the port's =
Makefile.
>>> No clue how you've got ASFLAGS poisoned by CPPFLAGS or CFLAGS, =
though.
>>>=20
>>> Can you provide poudriere log?
>>=20
>> Sure. But first for reference:
>>=20
>> # svnlite status /usr/ports/multimedia/gstreamer1-libav/
>> #=20
>>=20
>> So, no local changes.
>>=20
>> As for the log . . .
> [...]
>> --CONFIGURE_ENV--
>> ... ADDR2LINE=3D"/usr/local/bin/addr2line" AR=3D"/usr/local/bin/ar" =
AS=3D"/usr/local/bin/as" CPPFILT=3D"/usr/local/bin/c++filt" =
GPROF=3D"/usr/local/bin/gprof" LD=3D"/usr/local/bin/ld" =
NM=3D"/usr/local/bin/nm" OBJCOPY=3D"/usr/local/bin/objcopy" =
OBJDUMP=3D"/usr/local/bin/objdump" RANLIB=3D"/usr/local/bin/ranlib" =
READELF=3D"/usr/local/bin/readelf" SIZE=3D"/usr/local/bin/size" =
STRINGS=3D"/usr/local/bin/strings" ...
>> --End CONFIGURE_ENV--
> [...]
>> =3D=3D=3D>   gstreamer1-libav-1.14.4_1 depends on executable: as - =
not found
>> =3D=3D=3D>   Installing existing package =
/packages/All/binutils-2.30_5,1.txz
>> Installing binutils-2.30_5,1...
>> `-- Installing gettext-runtime-0.19.8.1_2...
>> |   `-- Installing indexinfo-0.3.1...
>> |   `-- Extracting indexinfo-0.3.1: .... done
>> `-- Extracting gettext-runtime-0.19.8.1_2: .......... done
>> Extracting binutils-2.30_5,1: .......... done
>=20
> Can you track down what defines USE_BINUTILS=3Dyes on armv7 ?

/usr/ports/multimedia/gstreamer1-libav/Makefile has:

FFMPEG_VARS_OFF+=3D       LLD_UNSAFE=3Dyes # aarch64

(The comment about aarch64 is not indicating conditional
logic. My guess it just indicates a context where LLD_UNSAFE
is required, rather than conceptually optional --even if
always currently applied for the FFMEG_VAR_OFF context.)

The one place with USE_BINUTILS=3Dyes in /usr/ports/Mk/bsd.port.mk
is:

.if defined(LLD_UNSAFE) && ${/usr/bin/ld:L:tA} =3D=3D /usr/bin/ld.lld
LDFLAGS+=3D       -fuse-ld=3Dbfd
BINARY_ALIAS+=3D  ld=3D${LD}
.  if !defined(USE_BINUTILS)
.    if exists(/usr/bin/ld.bfd)
LD=3D     /usr/bin/ld.bfd
CONFIGURE_ENV+=3D LD=3D${LD}
MAKE_ENV+=3D      LD=3D${LD}
.    else
USE_BINUTILS=3D   yes
.    endif
.  endif
.endif

Note that WITH_BINTUILS/WITHOUT_BINUTILS has buildworld defaults
of:

     WITHOUT_BINUTILS
             Set to not build or install binutils (as, ld, and objdump) =
as
             part of the normal system build.  The resulting system =
cannot
             build programs from source.

             This is a default setting on arm64/aarch64 and =
riscv/riscv64.
             When set, it enforces these options:

             WITHOUT_GDB

     WITH_BINUTILS
             Set to build and install binutils (as, ld, and objdump) as =
part
             of the normal system build.

             This is a default setting on amd64/amd64, arm/arm, =
arm/armv6,
             arm/armv7, i386/i386, mips/mipsel, mips/mips, =
mips/mips64el,
             mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf,
             mips/mips64elhf, mips/mips64hf, powerpc/powerpc,
             powerpc/powerpc64, powerpc/powerpcspe and sparc64/sparc64.

But at this stage in many contexts WITHOUT_BINUTILS=3D can validly
be manually set.

I'd originally done that for =
/usr/obj/DESTDIRs/clang-armv7-installworld-poud/
and other armv7 material until I wanted to use /libexec/gdb inside that
context to get a backtrace and related information for another problem. =
(Well
after my report of the gstreamer1-linav issue.) I'll likely be going =
back to
using WITHOUT_BINUTILS=3D  now that I've reported the detail for a
qemu-arm-static failure.

For amd64, armv7, and powerpc64 I only have WITH_BINUTILS=3D in order to =
allow
WITH_GDB=3D when it seems appropriate for what is going on. (Sometime =
contexts
are not appropriate for ports or are not ready for having ports yet.)



> See also https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D233137

My understanding is that /usr/bin/ld.bfd does not work for
aarch64 and so WITHOUT_BINUTILS=3D is more of a requirement.

So if lld is a problem, then USE_BINUTILS=3Dyes ends up being
nearly required. There is devel/aarch64-binutils as an
alternative.

FFMPEG_VARS_OFF+=3D       LLD_UNSAFE=3Dyes # aarch64

suggests that, for aarch64, USE_BINUTILS=3Dyes is almost
required for that context.




Side notes:

There is no devel/armv7-binutils or any devel/arm-binutils but
there are various special purpose devel/arm-*-binutils ones.

I ignore above: base/binutils and base/gcc and their
use.

=3D=3D=3D
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?2167B016-BB1F-4CF2-87CB-4473198D3A6E>