I had to revert /usr/local/aarch64-freebsd from 2.28 for its bin/ld to work for -r315870 buildworld (adm64 -> arm64 cross build)

Mark Millard markmi at dsl-only.net
Fri Mar 24 03:31:12 UTC 2017


Building /usr/obj/pine64_clang/arm64.aarch64/usr/src/lib/libc/libc.so.7.full
--- libc.so.7.full ---
building shared library libc.so.7
/usr/local/aarch64-freebsd/bin/ld: getutxent.pico(.debug_info+0x3b): R_AARCH64_ABS64 used with TLS symbol udb
/usr/local/aarch64-freebsd/bin/ld: getutxent.pico(.debug_info+0x58): R_AARCH64_ABS64 used with TLS symbol uf
/usr/local/aarch64-freebsd/bin/ld: utxdb.pico(.debug_info+0x5a): R_AARCH64_ABS64 used with TLS symbol futx_to_utx.ut
/usr/local/aarch64-freebsd/bin/ld: jemalloc_tsd.pico(.debug_info+0x3c): R_AARCH64_ABS64 used with TLS symbol __je_tsd_tls
/usr/local/aarch64-freebsd/bin/ld: jemalloc_tsd.pico(.debug_info+0x146e): R_AARCH64_ABS64 used with TLS symbol __je_tsd_initialized
/usr/local/aarch64-freebsd/bin/ld: cxa_thread_atexit_impl.pico(.debug_info+0x3b): R_AARCH64_ABS64 used with TLS symbol dtors
/usr/local/aarch64-freebsd/bin/ld: xlocale.pico(.debug_info+0x403): R_AARCH64_ABS64 used with TLS symbol __thread_locale
/usr/local/aarch64-freebsd/bin/ld: setrunelocale.pico(.debug_info+0x3c): R_AARCH64_ABS64 used with TLS symbol _ThreadRuneLocale
cc: error: linker command failed with exit code 1 (use -v to see invocation)


# Meta data file /usr/obj/pine64_clang/arm64.aarch64/usr/src/lib/libc/libc.so.7.full.meta
CMD @echo building shared library libc.so.7
CMD @rm -f libc.so.7 libc.so
CMD cc -B/usr/local/aarch64-freebsd/bin/ -mcpu=cortex-a53 -target aarch64-unknown-freebsd12.0 --sysroot=/usr/obj/pine64_clang/arm64.aarch64/usr/src/tmp -B/usr/local/aarch64-freebsd/bin/  -nodefaultlibs -Wl,--version-script=Version.map  -shared -Wl,-x -Wl,--fatal-warnings -Wl,--warn-shared-textrel  -o libc.so.7.full -Wl,-soname,libc.so.7  `NM='/usr/local/aarch64-freebsd/bin/nm' NMFLAGS='' lorder machdep_ldisQ.pico
. . .
 wmemset.pico |  tsort -q`  -lcompiler_rt  -lssp_nonshared
CWD /usr/obj/pine64_clang/arm64.aarch64/usr/src/lib/libc
TARGET libc.so.7.full
-- command output --
building shared library libc.so.7
/usr/local/aarch64-freebsd/bin/ld: getutxent.pico(.debug_info+0x3b): R_AARCH64_ABS64 used with TLS symbol udb
/usr/local/aarch64-freebsd/bin/ld: getutxent.pico(.debug_info+0x58): R_AARCH64_ABS64 used with TLS symbol uf
/usr/local/aarch64-freebsd/bin/ld: utxdb.pico(.debug_info+0x5a): R_AARCH64_ABS64 used with TLS symbol futx_to_utx.ut
/usr/local/aarch64-freebsd/bin/ld: jemalloc_tsd.pico(.debug_info+0x3c): R_AARCH64_ABS64 used with TLS symbol __je_tsd_tls
/usr/local/aarch64-freebsd/bin/ld: jemalloc_tsd.pico(.debug_info+0x146e): R_AARCH64_ABS64 used with TLS symbol __je_tsd_initialized
/usr/local/aarch64-freebsd/bin/ld: cxa_thread_atexit_impl.pico(.debug_info+0x3b): R_AARCH64_ABS64 used with TLS symbol dtors
/usr/local/aarch64-freebsd/bin/ld: xlocale.pico(.debug_info+0x403): R_AARCH64_ABS64 used with TLS symbol __thread_locale
/usr/local/aarch64-freebsd/bin/ld: setrunelocale.pico(.debug_info+0x3c): R_AARCH64_ABS64 used with TLS symbol _ThreadRuneLocale
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1


I had recently updated to:

# svnlite info /usr/ports | grep "Re[plv]"
Relative URL: ^/head
Repository Root: svn://svn.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 436747
Last Changed Rev: 436747

(from -r434493) which picked up:

Author: bapt
Date: Wed Mar 22 21:10:39 2017
New Revision: 436732
URL: 
https://svnweb.freebsd.org/changeset/ports/436732


Log:
  Update to binutils 2.28
  
  Mark the NLS options and the STATIC options as conflicting
  the binutils built system tries to statically link to the dynamic version of
  libintl which obviously fails

Modified:
  head/devel/aarch64-binutils/Makefile
  head/devel/aarch64-none-elf-binutils/pkg-plist
  head/devel/arm-gnueabi-binutils/pkg-plist
  head/devel/arm-none-eabi-binutils/pkg-plist

and:

Author: bapt
Date: Wed Mar 22 21:12:23 2017
New Revision: 436733
URL: 
https://svnweb.freebsd.org/changeset/ports/436733


Log:
  Actulally update binutils

Deleted:
  head/devel/binutils/files/patch-gold_options.h
Modified:
  head/devel/binutils/Makefile
  head/devel/binutils/distinfo



But the likes of devel/aarch64-binutils is a slave
from devel/binutils --so devel/binutils also needed
to be reverted. So I did:

# svnlite update -r436731 devel/binutils \
                          devel/aarch64 \
                          devel/aarch64-none-elf-binutils \
                          devel/arm-gnueabi-binutils \
                          devel/arm-none-eabi-binutil

and then rebuilt them.

This allowed the buildworld to complete.



Context details:

# uname -paKU
FreeBSD FreeBSDx64 12.0-CURRENT FreeBSD 12.0-CURRENT  r315870M  amd64 amd64 1200027 1200027

# more ~/sys_build_scripts.amd64-host/make_pine64_nodebug_clang_bootstrap-amd64-host.sh 
kldload -n filemon && \
script ~/sys_typescripts/typescript_make_pine64_nodebug_clang_bootstrap-amd64-host-$(date +%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF="/root/src.configs/make.conf" SRCCONF="/dev/null" SRC_ENV_CONF="/root/src.configs/src.conf.pine64-clang-bootstrap.amd64-host" \
WITH_META_MODE=yes \
MAKEOBJDIRPREFIX="/usr/obj/pine64_clang" \
make $*

#WITH_META_MODE=yes \
#
# more ~/src.configs/src.conf.pine64-clang-bootstrap.amd64-host 
TO_TYPE=aarch64
TOOLS_TO_TYPE=${TO_TYPE}
#
KERNCONF=GENERIC-NODBG
TARGET=arm64
.if ${.MAKE.LEVEL} == 0
TARGET_ARCH=${TO_TYPE}
.export TARGET_ARCH
.endif
#
WITH_CROSS_COMPILER=
WITHOUT_SYSTEM_COMPILER=
#
WITH_LIBCPLUSPLUS=
WITHOUT_BINUTILS_BOOTSTRAP=
WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=
WITH_CLANG_BOOTSTRAP=
WITH_CLANG=
WITH_CLANG_IS_CC=
WITH_CLANG_FULL=
WITH_CLANG_EXTRAS=
WITH_LLD=
WITH_LLDB=
#
WITH_BOOT=
WITHOUT_LIB32=
WITHOUT_LIBSOFT=
#
WITHOUT_GCC_BOOTSTRAP=
WITHOUT_GCC=
WITHOUT_GCC_IS_CC=
WITHOUT_GNUCXX=
#
NO_WERROR=
#WERROR=
#MALLOC_PRODUCTION=
#
WITH_REPRODUCIBLE_BUILD=
WITH_DEBUG_FILES=
#
CROSS_BINUTILS_PREFIX=/usr/local/${TOOLS_TO_TYPE}-freebsd/bin/
XCFLAGS+= -B${CROSS_BINUTILS_PREFIX}
XCXXFLAGS+= -B${CROSS_BINUTILS_PREFIX}
# There is no XCPPFLAGS but XCPP gets XCFLAGS content.
#
XCFLAGS+= -mcpu=cortex-a53
XCXXFLAGS+= -mcpu=cortex-a53
# There is no XCPPFLAGS but XCPP gets XCFLAGS content.

# more ~/src.configs/make.conf
CFLAGS.gcc+= -v

(But gcc is not in use here.)

===
Mark Millard
markmi at dsl-only.net



More information about the freebsd-ports mailing list