[llvm-dev] Raising the default baseline for a target

John Paul Adrian Glaubitz via llvm-dev llvm-dev at lists.llvm.org
Tue Jan 18 15:16:49 PST 2022


Hello!

I'm trying to figure out how to raise the default baseline for the 32-bit SPARC
target on Linux. Currently, this target defaults to the SPARCv7 architecture which
lacks support for atomic instructions which is why the build of compiler-rt fails
with, see [1]:

/usr/bin/ld: warning: -z gnu-version-script-compat ignored
/usr/bin/ld: projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommon.sparc.dir/sanitizer_libignore.cpp.o: in function `bool __sanitizer::atomic_compare_exchange_strong<__sanitizer::atomic_uint64_t>(__sanitizer::atomic_uint64_t volatile*, __sanitizer::atomic_uint64_t::Type*, __sanitizer::atomic_uint64_t::Type, __sanitizer::memory_order)':
/var/lib/buildbot/workers/debian-stadler-sparc64/clang-sparc64-linux-multistage/llvm/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang.h:80: undefined reference to `__sync_val_compare_and_swap_8'

Since Linux distributions have been defaulting to the v9 instruction set with 32-bit
pointers for the 32-bit SPARC for quite a while, I would like to set this baseline as
default when targeting SPARC on 32-bit Linux. If anyone wanted to build for v7, they
could still set the target with "-mcpu=v7".

Does anyone know how to set the default baseline for a given target? Raising the
baseline would finally fix the LLVM build on the Linux sparc64 buildbot which has
been failing for quite a long time.

Discussion for this change happens in [2].

Thanks,
Adrian

> [1] https://lab.llvm.org/staging/#/builders/113/builds/5719
> [2] https://reviews.llvm.org/D98575

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz at debian.org
`. `'   Freie Universitaet Berlin - glaubitz at physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


More information about the llvm-dev mailing list