Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Jun 2018 16:56:46 +0000 (UTC)
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r335704 - head/lib/libc/tests/ssp
Message-ID:  <201806271656.w5RGukYs072754@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Wed Jun 27 16:56:46 2018
New Revision: 335704
URL: https://svnweb.freebsd.org/changeset/base/335704

Log:
  Rework check for libclang_rt to see if the needed library exists.
  
  Currently libclang_rt is not provided for cross-building and as such
  is not connected to cross-tools.  For building clang once in universe
  it is likely that libclang_rt won't exist for the universe toolchain
  but even if it did it would not support anything but the native arch.
  So explicitly check for support before enabling h_raw.
  
  MFC after:	1 week
  Reviewed by:	dim
  Sponsored by:	Dell EMC
  Differential Revision:	https://reviews.freebsd.org/D16012

Modified:
  head/lib/libc/tests/ssp/Makefile

Modified: head/lib/libc/tests/ssp/Makefile
==============================================================================
--- head/lib/libc/tests/ssp/Makefile	Wed Jun 27 15:28:09 2018	(r335703)
+++ head/lib/libc/tests/ssp/Makefile	Wed Jun 27 16:56:46 2018	(r335704)
@@ -1,9 +1,5 @@
 # $FreeBSD$
 
-# XXX This is a workaround to allow i386 to cross-compile on an amd64 host.
-.include <host-target.mk>
-# XXX ---
-
 .include <bsd.own.mk>
 
 NO_WERROR=
@@ -35,21 +31,16 @@ PROGS+=		h_memset
 # probably needs to be fixed as it's currently hardcoded.
 #
 # sanitizer is not tested or supported for ARM right now. sbruno
-.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
-.if ${COMPILER_TYPE} == "clang" && ${MK_TOOLCHAIN} == "yes"
-.if ${COMPILER_VERSION} < 30500 || 30700 <= ${COMPILER_VERSION}
-
-# XXX This is a workaround to allow i386 to cross-compile on an amd64 host.
-.if ${MACHINE_CPUARCH} == ${_HOST_ARCH}
-# XXX ---
-
-PROGS+=		h_raw
-
-# XXX This is a workaround to allow i386 to cross-compile on an amd64 host.
+.if ${COMPILER_TYPE} == "clang" && !defined(_SKIP_BUILD) && \
+    (!defined(_RECURSING_PROGS) || ${PROG} == "h_raw")
+.if !defined(_CLANG_RESOURCE_DIR)
+_CLANG_RESOURCE_DIR!=	${CC:N${CCACHE_BIN}} -print-resource-dir
+.export _CLANG_RESOURCE_DIR
 .endif
-# XXX ---
-
-.endif
+_libclang_rt_arch=	${MACHINE_ARCH:S/amd64/x86_64/:C/hf$//:S/mipsn32/mips64/}
+_libclang_rt_ubsan=	${_CLANG_RESOURCE_DIR}/lib/freebsd/libclang_rt.ubsan_standalone-${_libclang_rt_arch}.a
+.if exists(${_libclang_rt_ubsan})
+PROGS+=		h_raw
 .endif
 .endif
 PROGS+=		h_read



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806271656.w5RGukYs072754>