Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Dec 2019 20:20:39 -0800
From:      Mark Millard <marklmi@yahoo.com>
To:        "jhibbits@freebsd.org" <jhibbits@FreeBSD.org>, svn-src-head@freebsd.org
Subject:   Re: svn commit: r356054 - in head: share/mk stand
Message-ID:  <DCDC3164-A5B4-404D-86B6-D96660A64772@yahoo.com>
In-Reply-To: <8A9C94C7-094F-45B4-B156-5A04958C4938@yahoo.com>
References:  <8A9C94C7-094F-45B4-B156-5A04958C4938@yahoo.com>

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


On 2019-Dec-24, at 21:26, Mark Millard <marklmi at yahoo.com> wrote:

> In:
>=20
> +# Defines a variable for Binutils linker, to be used to workaround =
some
> +# issue with LLVM LLD (i.e. support for PowerPC32 bit on PowerPC64)
> +#
> +# This is an unavoidable cross coupling with Makefile.inc1 and
> +# normal builds works when CROSS_BINUTILS_PREFIX and could be removed
> +# when LLD PowerPC 32 bit support is completed
> +.if defined(CROSS_BINUTILS_PREFIX)
> +LD_BFD=3D${LOCALBASE}/bin/${CROSS_BINUTILS_PREFIX}-ld.bfd
> +.else
> +LD_BFD=3D${OBJTOP}/tmp/usr/bin/ld.bfd
> +.endif
>=20
> I'm confused by the 2 lines:
>=20
> +.if defined(CROSS_BINUTILS_PREFIX)
> +LD_BFD=3D${LOCALBASE}/bin/${CROSS_BINUTILS_PREFIX}-ld.bfd
>=20
> Looking in /usr/local/share/toolchains/*.mk I see
> CROSS_BINUTILS_PREFIX as a full path in each case
> ( based on devel/freebsd-gcc[69] in my context):
>=20
> # grep -r CROSS_BINU /usr/local/share/toolchains/ | more
> =
/usr/local/share/toolchains/aarch64-gcc6.mk:CROSS_BINUTILS_PREFIX=3D/usr/l=
ocal/aarch64-unknown-freebsd13.0/bin/
> =
/usr/local/share/toolchains/amd64-gcc6.mk:CROSS_BINUTILS_PREFIX=3D/usr/loc=
al/x86_64-unknown-freebsd13.0/bin/
> =
/usr/local/share/toolchains/powerpc64-gcc6.mk:CROSS_BINUTILS_PREFIX=3D/usr=
/local/powerpc64-unknown-freebsd13.0/bin/
> =
/usr/local/share/toolchains/aarch64-gcc9.mk:CROSS_BINUTILS_PREFIX=3D/usr/l=
ocal/aarch64-unknown-freebsd13.0/bin/
> =
/usr/local/share/toolchains/amd64-gcc9.mk:CROSS_BINUTILS_PREFIX=3D/usr/loc=
al/x86_64-unknown-freebsd13.0/bin/
> =
/usr/local/share/toolchains/powerpc64-gcc9.mk:CROSS_BINUTILS_PREFIX=3D/usr=
/local/powerpc64-unknown-freebsd13.0/bin/
> =
/usr/local/share/toolchains/powerpc-gcc9.mk:CROSS_BINUTILS_PREFIX=3D/usr/l=
ocal/powerpc-unknown-freebsd13.0/bin/
>=20
> And when I look in /usr/srcv/Makefile.inc1 I see:
>=20
> =
/usr/src/Makefile.inc1:CROSS_BINUTILS_PREFIX=3D/usr/local/${TARGET_TRIPLE}=
/bin/
>=20
> Having an overall path structure like:
>=20
> ${LOCALBASE}/bin/usr/local/powerpc64-unknown-freebsd13.0/bin/-ld.bfd
>=20
> seems strange (using powerpc64 as an example).
>=20

I got to the point of trying a build that happens to have
tried to use this code. It failed, reporting:

--- libc.so.7.full ---
building shared library libc.so.7
cc: error: invalid linker name in argument =
'-fuse-ld=3D/usr/local/bin//usr/local/powerpc64-unknown-freebsd13.0/bin/-l=
d.bfd'
*** [libc.so.7.full] Error code 1

So I switched the code to:

.if defined(CROSS_BINUTILS_PREFIX)
LD_BFD=3D${CROSS_BINUTILS_PREFIX}ld.bfd
.else
LD_BFD=3D${OBJTOP}/tmp/usr/bin/ld.bfd
.endif

With that in place, the build completed.

=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?DCDC3164-A5B4-404D-86B6-D96660A64772>