Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Sep 2018 23:06:12 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>, freebsd-arm <freebsd-arm@freebsd.org>
Subject:   aarch64 head -r338921 vs. man ld vs. ld -v : man ld describes GNU when ld is lld
Message-ID:  <B2711C66-7B88-407B-990E-7F05E2B1AB39@yahoo.com>

next in thread | raw e-mail | index | archive | help
[This is based on buildworld buildkernel and installing.]

I've updated to:

# uname -apKU
FreeBSD pine64 12.0-ALPHA7 FreeBSD 12.0-ALPHA7 #17 r338921M: Mon Sep 24 =
19:19:08 PDT 2018     =
markmi@pine64:/usr/obj/cortexA53_clang/arm64.aarch64/usr/src/arm64.aarch64=
/sys/GENERIC-NODBG  arm64 aarch64 1200084 1200084

For which:

# ld -v
LLD 6.0.1 (FreeBSD 335540-1200004) (compatible with GNU linkers)

But man ld reports GNU/BFD material:

# man ld
LD(1)                        GNU Development Tools                       =
LD(1)



NAME
       ld - The GNU linker

SYNOPSIS
       ld [options] objfile ...

DESCRIPTION
. . .
       This man page does not describe the command language; see the ld =
entry
       in "info" for full details on the command language and on other =
aspects
       of the GNU linker.

       This version of ld uses the general purpose BFD libraries to =
operate on
       object files. . . .

       Aside from its flexibility, the GNU linker is more helpful than =
other
       linkers in providing diagnostic information.  . . .

       The GNU linker ld is meant to cover a broad range of situations, =
and to
       be as compatible as possible with other linkers.  As a result, =
you have
       many choices to control its behavior.
. . .

(I do not see such in my amd64 builds.)

I'm not claiming this is new: I just noticed.

For reference on the Pine64+ 2GB aarch64 system
being used for this (avoiding >>> prefixes on lines):

# =
~/sys_build_scripts.aarch64-host/make_cortexA53_nodebug_clang_bootstrap-aa=
rch64-host.sh check-old
Script started, output file is =
/root/sys_typescripts/typescript_make_cortexA53_nodebug_clang_bootstrap-aa=
rch64-host-2018-09-24:22:53:10
... Checking for old files
... Checking for old libraries
... Checking for old directories
To remove old files and directories run 'make delete-old'.
To remove old libraries run 'make delete-old-libs'.

Script done, output file is =
/root/sys_typescripts/typescript_make_cortexA53_nodebug_clang_bootstrap-aa=
rch64-host-2018-09-24:22:53:10

(So I'd run delete-old before this.)

# more =
~/sys_build_scripts.aarch64-host/make_cortexA53_nodebug_clang_bootstrap-aa=
rch64-host.sh
kldload -n filemon && \
script =
~/sys_typescripts/typescript_make_cortexA53_nodebug_clang_bootstrap-aarch6=
4-host-$(date +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF=3D"/root/src.configs/make.conf" \
SRCCONF=3D"/dev/null" =
SRC_ENV_CONF=3D"/root/src.configs/src.conf.cortexA53-clang-bootstrap.aarch=
64-host" \
WITH_META_MODE=3Dyes \
MAKEOBJDIRPREFIX=3D"/usr/obj/cortexA53_clang/arm64.aarch64" \
make $*

# more ~/src.configs/src.conf.cortexA53-clang-bootstrap.aarch64-host=20
TO_TYPE=3Daarch64
#
KERNCONF=3DGENERIC-NODBG
TARGET=3Darm64
.if ${.MAKE.LEVEL} =3D=3D 0
TARGET_ARCH=3D${TO_TYPE}
.export TARGET_ARCH
.endif
#
#WITH_CROSS_COMPILER=3D
WITH_SYSTEM_COMPILER=3D
WITH_SYSTEM_LINKER=3D
#
#CPUTYPE=3Dsoft
WITH_LIBCPLUSPLUS=3D
#WITH_LLD_BOOTSTRAP=3D
WITHOUT_BINUTILS_BOOTSTRAP=3D
WITH_ELFTOOLCHAIN_BOOTSTRAP=3D
#WITH_CLANG_BOOTSTRAP=3D
WITH_CLANG=3D
WITH_CLANG_IS_CC=3D
WITH_CLANG_FULL=3D
WITH_CLANG_EXTRAS=3D
WITH_LLD=3D
WITH_LLD_IS_LD=3D
WITHOUT_BINUTILS=3D
WITH_LLDB=3D
#
WITH_BOOT=3D
WITHOUT_LIB32=3D
#
WITHOUT_GCC_BOOTSTRAP=3D
WITHOUT_GCC=3D
WITHOUT_GCC_IS_CC=3D
WITHOUT_GNUCXX=3D
#
NO_WERROR=3D
#WERROR=3D
MALLOC_PRODUCTION=3D
#
WITH_REPRODUCIBLE_BUILD=3D
WITH_DEBUG_FILES=3D
#
# Use of the .clang 's here avoids
# interfering with other C<?>FLAGS
# usage, such as ?=3D usage.
CFLAGS.clang+=3D -mcpu=3Dcortex-a53
CXXFLAGS.clang+=3D -mcpu=3Dcortex-a53
CPPFLAGS.clang+=3D -mcpu=3Dcortex-a53
ACFLAGS.arm64cpuid.S+=3D  -mcpu=3Dcortex-a53+crypto
ACFLAGS.aesv8-armx.S+=3D  -mcpu=3Dcortex-a53+crypto
ACFLAGS.ghashv8-armx.S+=3D        -mcpu=3Dcortex-a53+crypto

# more ~/src.configs/make.conf
CFLAGS.gcc+=3D -v
LDFLAGS.lld+=3D -Wl,--no-threads




=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?B2711C66-7B88-407B-990E-7F05E2B1AB39>