From owner-svn-src-head@freebsd.org Sun Nov 5 19:38:52 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A9BA4E4F303; Sun, 5 Nov 2017 19:38:52 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 822CD67089; Sun, 5 Nov 2017 19:38:52 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vA5JcpFB033402; Sun, 5 Nov 2017 19:38:51 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vA5Jcpnc033399; Sun, 5 Nov 2017 19:38:51 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201711051938.vA5Jcpnc033399@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Sun, 5 Nov 2017 19:38:51 +0000 (UTC) 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 X-SVN-Group: head X-SVN-Commit-Author: ngie X-SVN-Commit-Paths: in head: . lib/libclang_rt share/mk X-SVN-Commit-Revision: 325443 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Nov 2017 19:38:52 -0000 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 -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+= \