Building the FreeBSD port graphics/vulkan-loader [1] results in an assertion: Assertion failed: (Type == RT32_32), function getRelocType32, file /usr/src/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp, line 260. PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script. Stack dump: 0. Program arguments: clang -cc1as -triple i386-unknown-freebsd13.0 -filetype obj -main-file-name unknown_ext_chain_gas.s -target-cpu i686 -mrelocation-model static unknown_ext_chain_gas.s This is caused by a @GOT relocation in the .s file [2]; minimized test case: # clang -cc1as -triple i386-- -filetype obj unknown_ext_chain_gas-min.s .intel_syntax noprefix push offset termin_error_string@GOT I could not find any version of clang that was able to compile this without asserting! GNU as has no problems, obviously: % as -v unknown_ext_chain_gas-min.s -o unknown_ext_chain_gas-min.o GNU assembler version 2.33.1 (i386-portbld-freebsd13.0) using BFD version (GNU Binutils) 2.33.1 % objdump -d -r unknown_ext_chain_gas-min.o unknown_ext_chain_gas-min.o: file format elf32-i386-freebsd Disassembly of section .text: 00000000 <.text>: 0: 68 00 00 00 00 push $0x0 1: R_386_GOT32 termin_error_string [1] https://github.com/KhronosGroup/Vulkan-Loader [2] https://github.com/KhronosGroup/Vulkan-Loader/blob/master/loader/unknown_ext_chain_gas.S#L103