Date: Sun, 5 Nov 2017 19:38:51 +0000 (UTC) From: Ngie Cooper <ngie@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r325443 - in head: . lib/libclang_rt share/mk Message-ID: <201711051938.vA5Jcpnc033399@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ngie Date: Sun Nov 5 19:38:51 2017 New Revision: 325443 URL: https://svnweb.freebsd.org/changeset/base/325443 Log: Fix paths for cross-built versions of lib/libclang_rt and hardfloat arm variants - Define TARGET_CPUARCH and use in libclang_rt as the basis for CRTARCH When cross-compiling, the wrong architecture was being embedded in the libclang_rt binary filenames. It should be based on TARGET_ARCH (target), not MACHINE_ARCH (host). If TARGET_ARCH isn't defined (host-builds), fallback to MACHINE_ARCH. - Define CRTARCH to armhf when TARGET/TARGET_ARCH are set to arm/armv[67] TARGET_ABI/TARGET_CPU in Makefile.inc1 sets the ABI to gnueabihf, which affects the clang lookup path per `getArchNameForCompilerRTLib(..)` in contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp, so chase clang and Linux's assumed naming convention for hard-float arm architectures. CROSSENV (in Makefile.inc1) sets CPUTYPE/MACHINE(_ARCH)? to the TARGET*-relevant values when building the `libraries` target, so test those variables instead. - Add OLD_FILES/OLD_LIBS entries for TARGET/TARGET_ARCH == arm/armv[67]. This impacts only arm/armv6 and arm/armv7. PR: 222925 Modified: head/ObsoleteFiles.inc head/lib/libclang_rt/Makefile.inc head/share/mk/sys.mk Directory Properties: head/ (props changed) Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Sun Nov 5 19:25:06 2017 (r325442) +++ head/ObsoleteFiles.inc Sun Nov 5 19:38:51 2017 (r325443) @@ -38,6 +38,21 @@ # xargs -n1 | sort | uniq -d; # done +# 20171105: fixing lib/libclang_rt CRTARCH for arm:armv[67]. +.if ${MACHINE} == "arm" +.if ${MACHINE_ARCH:Marmv[67]*} != "" && ${CPUTYPE:M*soft*} == "" +OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-preinit-arm.a +OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-arm.a +OLD_LIBS+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan-arm.so +OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.asan_cxx-arm.a +OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.safestack-arm.a +OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.stats-arm.a +OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.stats_client-arm.a +OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.ubsan_standalone-arm.a +OLD_FILES+=usr/lib/clang/5.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a +.endif +.endif # 20171104: libcap_random should be in /lib not in /usr/lib OLD_LIBS+=usr/lib/libcap_random.so.0 # 20171104: Casper can work only as shared library Modified: head/lib/libclang_rt/Makefile.inc ============================================================================== --- head/lib/libclang_rt/Makefile.inc Sun Nov 5 19:25:06 2017 (r325442) +++ head/lib/libclang_rt/Makefile.inc Sun Nov 5 19:38:51 2017 (r325443) @@ -2,7 +2,14 @@ .include <src.opts.mk> -CRTARCH= ${MACHINE_CPUARCH:C/amd64/x86_64/} +# NOTE: based on TARGET_ABI/TARGET_CPUTYPE, set in Makefile.inc1 . +.if ${MACHINE} == "arm" +.if ${MACHINE_ARCH:Marmv[67]*} != "" && ${CPUTYPE:M*soft*} == "" +CRTARCH= armhf +.endif +.endif + +CRTARCH?= ${TARGET_CPUARCH:C/amd64/x86_64/} CRTSRC= ${SRCTOP}/contrib/compiler-rt .PATH: ${CRTSRC}/lib Modified: head/share/mk/sys.mk ============================================================================== --- head/share/mk/sys.mk Sun Nov 5 19:25:06 2017 (r325442) +++ head/share/mk/sys.mk Sun Nov 5 19:38:51 2017 (r325443) @@ -15,6 +15,11 @@ unix ?= We run FreeBSD, not UNIX. # __TO_CPUARCH=C/mips(n32|64)?(el)?(hf)?/mips/:C/arm(v[67])?(eb)?/arm/:C/powerpc(64|spe)/powerpc/:C/riscv64(sf)?/riscv/ MACHINE_CPUARCH=${MACHINE_ARCH:${__TO_CPUARCH}} +.ifdef TARGET_ARCH +TARGET_CPUARCH=${TARGET_ARCH:${__TO_CPUARCH}} +.else +TARGET_CPUARCH=${MACHINE_CPUARCH} +.endif .endif __DEFAULT_YES_OPTIONS+= \
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711051938.vA5Jcpnc033399>