Matthew Malcomson <matthew.malcom...@arm.com> writes:
> Though the library has limited support for x86, we don't have any
> support for generating code targeting x86 so there is no point building
> for that target.
>
> Ensure we build for AArch64 but not for AArch64 ilp32.
>
> libsanitizer/ChangeLog:
>
>       * Makefile.am: Condition Build hwasan directory.
>       * Makefile.in: Regenerate.
>       * configure: Regenerate.
>       * configure.ac: Set HWASAN_SUPPORTED based on target
>       architecture.
>       * configure.tgt: Likewise.

OK, thanks.

Richard

> ###############     Attachment also inlined for ease of reply    
> ###############
>
>
> diff --git a/libsanitizer/Makefile.am b/libsanitizer/Makefile.am
> index 
> 2a7e8e1debe838719db0f0fad218b2543cc3111b..065a65e78d49f7689a01ecb64db1f07ca83aa987
>  100644
> --- a/libsanitizer/Makefile.am
> +++ b/libsanitizer/Makefile.am
> @@ -14,7 +14,7 @@ endif
>  if LIBBACKTRACE_SUPPORTED
>  SUBDIRS += libbacktrace
>  endif
> -SUBDIRS += lsan asan ubsan hwasan
> +SUBDIRS += lsan asan ubsan
>  nodist_saninclude_HEADERS += \
>    include/sanitizer/lsan_interface.h \
>    include/sanitizer/asan_interface.h \
> @@ -23,6 +23,9 @@ nodist_saninclude_HEADERS += \
>  if TSAN_SUPPORTED
>  SUBDIRS += tsan
>  endif
> +if HWASAN_SUPPORTED
> +SUBDIRS += hwasan
> +endif
>  endif
>  
>  ## May be used by toolexeclibdir.
> diff --git a/libsanitizer/Makefile.in b/libsanitizer/Makefile.in
> index 
> 2c57d49cbffdb486645aeb5f2c0f85d6e0fad124..3873ea4d7050f04a3f7bbd0dd3f2a71e9b65d287
>  100644
> --- a/libsanitizer/Makefile.in
> +++ b/libsanitizer/Makefile.in
> @@ -97,6 +97,7 @@ target_triplet = @target@
>  @SANITIZER_SUPPORTED_TRUE@@USING_MAC_INTERPOSE_FALSE@am__append_2 = 
> interception
>  @LIBBACKTRACE_SUPPORTED_TRUE@@SANITIZER_SUPPORTED_TRUE@am__append_3 = 
> libbacktrace
>  @SANITIZER_SUPPORTED_TRUE@@TSAN_SUPPORTED_TRUE@am__append_4 = tsan
> +@HWASAN_SUPPORTED_TRUE@@SANITIZER_SUPPORTED_TRUE@am__append_5 = hwasan
>  subdir = .
>  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
>  am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
> @@ -208,7 +209,7 @@ ETAGS = etags
>  CTAGS = ctags
>  CSCOPE = cscope
>  DIST_SUBDIRS = sanitizer_common interception libbacktrace lsan asan \
> -     ubsan hwasan tsan
> +     ubsan tsan hwasan
>  ACLOCAL = @ACLOCAL@
>  ALLOC_FILE = @ALLOC_FILE@
>  AMTAR = @AMTAR@
> @@ -364,7 +365,7 @@ sanincludedir = 
> $(libdir)/gcc/$(target_alias)/$(gcc_version)/include/sanitizer
>  nodist_saninclude_HEADERS = $(am__append_1)
>  @SANITIZER_SUPPORTED_TRUE@SUBDIRS = sanitizer_common $(am__append_2) \
>  @SANITIZER_SUPPORTED_TRUE@   $(am__append_3) lsan asan ubsan \
> -@SANITIZER_SUPPORTED_TRUE@   hwasan $(am__append_4)
> +@SANITIZER_SUPPORTED_TRUE@   $(am__append_4) $(am__append_5)
>  gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
>  
>  # Work around what appears to be a GNU make bug handling MAKEFLAGS
> diff --git a/libsanitizer/configure b/libsanitizer/configure
> index 
> 27e72c089cb891dcce09494fa9e39eebe55d2598..720d4e17044170e4b91c42fede685761d98c1965
>  100755
> --- a/libsanitizer/configure
> +++ b/libsanitizer/configure
> @@ -659,6 +659,8 @@ link_libubsan
>  link_libtsan
>  link_libhwasan
>  link_libasan
> +HWASAN_SUPPORTED_FALSE
> +HWASAN_SUPPORTED_TRUE
>  LSAN_SUPPORTED_FALSE
>  LSAN_SUPPORTED_TRUE
>  TSAN_SUPPORTED_FALSE
> @@ -12362,7 +12364,7 @@ else
>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>    lt_status=$lt_dlunknown
>    cat > conftest.$ac_ext <<_LT_EOF
> -#line 12365 "configure"
> +#line 12367 "configure"
>  #include "confdefs.h"
>  
>  #if HAVE_DLFCN_H
> @@ -12468,7 +12470,7 @@ else
>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
>    lt_status=$lt_dlunknown
>    cat > conftest.$ac_ext <<_LT_EOF
> -#line 12471 "configure"
> +#line 12473 "configure"
>  #include "confdefs.h"
>  
>  #if HAVE_DLFCN_H
> @@ -15819,6 +15821,7 @@ fi
>  # Get target configury.
>  unset TSAN_SUPPORTED
>  unset LSAN_SUPPORTED
> +unset HWASAN_SUPPORTED
>  . ${srcdir}/configure.tgt
>   if test "x$TSAN_SUPPORTED" = "xyes"; then
>    TSAN_SUPPORTED_TRUE=
> @@ -15836,6 +15839,14 @@ else
>    LSAN_SUPPORTED_FALSE=
>  fi
>  
> + if test "x$HWASAN_SUPPORTED" = "xyes"; then
> +  HWASAN_SUPPORTED_TRUE=
> +  HWASAN_SUPPORTED_FALSE='#'
> +else
> +  HWASAN_SUPPORTED_TRUE='#'
> +  HWASAN_SUPPORTED_FALSE=
> +fi
> +
>  
>  # Check for functions needed.
>  for ac_func in clock_getres clock_gettime clock_settime lstat readlink
> @@ -16818,7 +16829,7 @@ ac_config_files="$ac_config_files Makefile 
> libsanitizer.spec libbacktrace/backtr
>  ac_config_headers="$ac_config_headers config.h"
>  
>  
> -ac_config_files="$ac_config_files interception/Makefile 
> sanitizer_common/Makefile libbacktrace/Makefile lsan/Makefile asan/Makefile 
> hwasan/Makefile ubsan/Makefile"
> +ac_config_files="$ac_config_files interception/Makefile 
> sanitizer_common/Makefile libbacktrace/Makefile lsan/Makefile asan/Makefile 
> ubsan/Makefile"
>  
>  
>  if test "x$TSAN_SUPPORTED" = "xyes"; then
> @@ -16826,6 +16837,11 @@ if test "x$TSAN_SUPPORTED" = "xyes"; then
>  
>  fi
>  
> +if test "x$HWASAN_SUPPORTED" = "xyes"; then
> +  ac_config_files="$ac_config_files hwasan/Makefile"
> +
> +fi
> +
>  
>  
>  
> @@ -17090,6 +17106,10 @@ if test -z "${LSAN_SUPPORTED_TRUE}" && test -z 
> "${LSAN_SUPPORTED_FALSE}"; then
>    as_fn_error $? "conditional \"LSAN_SUPPORTED\" was never defined.
>  Usually this means the macro was only invoked conditionally." "$LINENO" 5
>  fi
> +if test -z "${HWASAN_SUPPORTED_TRUE}" && test -z 
> "${HWASAN_SUPPORTED_FALSE}"; then
> +  as_fn_error $? "conditional \"HWASAN_SUPPORTED\" was never defined.
> +Usually this means the macro was only invoked conditionally." "$LINENO" 5
> +fi
>  if test -z "${USING_MAC_INTERPOSE_TRUE}" && test -z 
> "${USING_MAC_INTERPOSE_FALSE}"; then
>    as_fn_error $? "conditional \"USING_MAC_INTERPOSE\" was never defined.
>  Usually this means the macro was only invoked conditionally." "$LINENO" 5
> @@ -18099,9 +18119,9 @@ do
>      "libbacktrace/Makefile") CONFIG_FILES="$CONFIG_FILES 
> libbacktrace/Makefile" ;;
>      "lsan/Makefile") CONFIG_FILES="$CONFIG_FILES lsan/Makefile" ;;
>      "asan/Makefile") CONFIG_FILES="$CONFIG_FILES asan/Makefile" ;;
> -    "hwasan/Makefile") CONFIG_FILES="$CONFIG_FILES hwasan/Makefile" ;;
>      "ubsan/Makefile") CONFIG_FILES="$CONFIG_FILES ubsan/Makefile" ;;
>      "tsan/Makefile") CONFIG_FILES="$CONFIG_FILES tsan/Makefile" ;;
> +    "hwasan/Makefile") CONFIG_FILES="$CONFIG_FILES hwasan/Makefile" ;;
>  
>    *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
>    esac
> @@ -20035,7 +20055,7 @@ _EOF
>     . ${multi_basedir}/config-ml.in
>     { ml_norecursion=; unset ml_norecursion;}
>   ;;
> -    "hwasan/Makefile":F) cat > vpsed$$ << \_EOF
> +    "ubsan/Makefile":F) cat > vpsed$$ << \_EOF
>  s!`test -f '$<' || echo '$(srcdir)/'`!!
>  _EOF
>     sed -f vpsed$$ $ac_file > tmp$$
> @@ -20046,18 +20066,18 @@ _EOF
>     . ${multi_basedir}/config-ml.in
>     { ml_norecursion=; unset ml_norecursion;}
>   ;;
> -    "ubsan/Makefile":F) cat > vpsed$$ << \_EOF
> +    "tsan/Makefile":F) cat > vpsed$$ << \_EOF
>  s!`test -f '$<' || echo '$(srcdir)/'`!!
>  _EOF
> -   sed -f vpsed$$ $ac_file > tmp$$
> -   mv tmp$$ $ac_file
> -   rm vpsed$$
> -   echo 'MULTISUBDIR =' >> $ac_file
> -   ml_norecursion=yes
> -   . ${multi_basedir}/config-ml.in
> -   { ml_norecursion=; unset ml_norecursion;}
> +    sed -f vpsed$$ $ac_file > tmp$$
> +    mv tmp$$ $ac_file
> +    rm vpsed$$
> +    echo 'MULTISUBDIR =' >> $ac_file
> +    ml_norecursion=yes
> +    . ${multi_basedir}/config-ml.in
> +    { ml_norecursion=; unset ml_norecursion;}
>   ;;
> -    "tsan/Makefile":F) cat > vpsed$$ << \_EOF
> +    "hwasan/Makefile":F) cat > vpsed$$ << \_EOF
>  s!`test -f '$<' || echo '$(srcdir)/'`!!
>  _EOF
>      sed -f vpsed$$ $ac_file > tmp$$
> diff --git a/libsanitizer/configure.ac b/libsanitizer/configure.ac
> index 
> f0d526c52967112905115c8fbe3540427a27ae03..13cd302030db7d0107ac8de0863d42558dea5c71
>  100644
> --- a/libsanitizer/configure.ac
> +++ b/libsanitizer/configure.ac
> @@ -96,9 +96,11 @@ fi
>  # Get target configury.
>  unset TSAN_SUPPORTED
>  unset LSAN_SUPPORTED
> +unset HWASAN_SUPPORTED
>  . ${srcdir}/configure.tgt
>  AM_CONDITIONAL(TSAN_SUPPORTED, [test "x$TSAN_SUPPORTED" = "xyes"])
>  AM_CONDITIONAL(LSAN_SUPPORTED, [test "x$LSAN_SUPPORTED" = "xyes"])
> +AM_CONDITIONAL(HWASAN_SUPPORTED, [test "x$HWASAN_SUPPORTED" = "xyes"])
>  
>  # Check for functions needed.
>  AC_CHECK_FUNCS(clock_getres clock_gettime clock_settime lstat readlink)
> @@ -352,7 +354,7 @@ AH_BOTTOM([#include "libbacktrace/backtrace-rename.h"])
>  AC_CONFIG_FILES([Makefile libsanitizer.spec 
> libbacktrace/backtrace-supported.h])
>  AC_CONFIG_HEADER(config.h)
>  
> -AC_CONFIG_FILES(AC_FOREACH([DIR], [interception sanitizer_common 
> libbacktrace lsan asan hwasan ubsan], [DIR/Makefile ]),
> +AC_CONFIG_FILES(AC_FOREACH([DIR], [interception sanitizer_common 
> libbacktrace lsan asan ubsan], [DIR/Makefile ]),
>    [cat > vpsed$$ << \_EOF
>  s!`test -f '$<' || echo '$(srcdir)/'`!!
>  _EOF
> @@ -380,6 +382,21 @@ _EOF
>  ])
>  fi
>  
> +if test "x$HWASAN_SUPPORTED" = "xyes"; then
> +  AC_CONFIG_FILES(AC_FOREACH([DIR], [hwasan], [DIR/Makefile ]), 
> +    [cat > vpsed$$ << \_EOF
> +s!`test -f '$<' || echo '$(srcdir)/'`!!
> +_EOF
> +    sed -f vpsed$$ $ac_file > tmp$$
> +    mv tmp$$ $ac_file
> +    rm vpsed$$
> +    echo 'MULTISUBDIR =' >> $ac_file
> +    ml_norecursion=yes
> +    . ${multi_basedir}/config-ml.in
> +    AS_UNSET([ml_norecursion])
> +])
> +fi
> +
>  AC_SUBST([TSAN_TARGET_DEPENDENT_OBJECTS])
>  AC_SUBST([SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS])
>  
> diff --git a/libsanitizer/configure.tgt b/libsanitizer/configure.tgt
> index 
> 52503f1a880ba08b515b8a429ac44a262873f74b..d5b8dc4ec198c2a73dcef530a6e0d6a227eb30ee
>  100644
> --- a/libsanitizer/configure.tgt
> +++ b/libsanitizer/configure.tgt
> @@ -60,6 +60,7 @@ case "${target}" in
>               TSAN_SUPPORTED=yes
>               LSAN_SUPPORTED=yes
>               TSAN_TARGET_DEPENDENT_OBJECTS=tsan_rtl_aarch64.lo
> +             HWASAN_SUPPORTED=yes
>       fi
>       ;;
>    x86_64-*-darwin1[2-9]* | i?86-*-darwin1[2-9]*)

Reply via email to