svn commit: r356054 - in head: share/mk stand

Mark Millard marklmi at yahoo.com
Mon Dec 30 04:20:46 UTC 2019



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

> In:
> 
> +# 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=${LOCALBASE}/bin/${CROSS_BINUTILS_PREFIX}-ld.bfd
> +.else
> +LD_BFD=${OBJTOP}/tmp/usr/bin/ld.bfd
> +.endif
> 
> I'm confused by the 2 lines:
> 
> +.if defined(CROSS_BINUTILS_PREFIX)
> +LD_BFD=${LOCALBASE}/bin/${CROSS_BINUTILS_PREFIX}-ld.bfd
> 
> 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):
> 
> # grep -r CROSS_BINU /usr/local/share/toolchains/ | more
> /usr/local/share/toolchains/aarch64-gcc6.mk:CROSS_BINUTILS_PREFIX=/usr/local/aarch64-unknown-freebsd13.0/bin/
> /usr/local/share/toolchains/amd64-gcc6.mk:CROSS_BINUTILS_PREFIX=/usr/local/x86_64-unknown-freebsd13.0/bin/
> /usr/local/share/toolchains/powerpc64-gcc6.mk:CROSS_BINUTILS_PREFIX=/usr/local/powerpc64-unknown-freebsd13.0/bin/
> /usr/local/share/toolchains/aarch64-gcc9.mk:CROSS_BINUTILS_PREFIX=/usr/local/aarch64-unknown-freebsd13.0/bin/
> /usr/local/share/toolchains/amd64-gcc9.mk:CROSS_BINUTILS_PREFIX=/usr/local/x86_64-unknown-freebsd13.0/bin/
> /usr/local/share/toolchains/powerpc64-gcc9.mk:CROSS_BINUTILS_PREFIX=/usr/local/powerpc64-unknown-freebsd13.0/bin/
> /usr/local/share/toolchains/powerpc-gcc9.mk:CROSS_BINUTILS_PREFIX=/usr/local/powerpc-unknown-freebsd13.0/bin/
> 
> And when I look in /usr/srcv/Makefile.inc1 I see:
> 
> /usr/src/Makefile.inc1:CROSS_BINUTILS_PREFIX=/usr/local/${TARGET_TRIPLE}/bin/
> 
> Having an overall path structure like:
> 
> ${LOCALBASE}/bin/usr/local/powerpc64-unknown-freebsd13.0/bin/-ld.bfd
> 
> seems strange (using powerpc64 as an example).
> 

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=/usr/local/bin//usr/local/powerpc64-unknown-freebsd13.0/bin/-ld.bfd'
*** [libc.so.7.full] Error code 1

So I switched the code to:

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

With that in place, the build completed.

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



More information about the svn-src-head mailing list