<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/139684>139684</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Linker error 'invalid r_symbolnum' with -fsanitize=fuzzer,undefined on macOS arm64
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          dloidolt
      </td>
    </tr>
</table>

<pre>
    Compile the following fuzz target with UBSan  I get a linker error on macOS (arm64).
```c
// fuzz_target.c
#include <stdint.h>
#include <stddef.h>

int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  if (size > 0 && data[0] == 'H')
    if (size > 1 && data[1] == 'I')
       if (size > 2 && data[2] == '!')
 __builtin_trap();
  return 0;
}
```

```
clang -fsanitize=fuzzer,undefined fuzz_target.c
ld: invalid r_symbolnum=1 in '/var/folders/xh/x0n5fxc94w7gdgsj9m6xkptc0000gn/T/fuzz_target-da2c8d.o'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```

# Output with `-v` option
```
clang -fsanitize=fuzzer,undefined fuzz_target.c -v 
Homebrew clang version 20.1.4
Target: arm64-apple-darwin24.4.0
Thread model: posix
InstalledDir: /opt/homebrew/Cellar/llvm/20.1.4_1/bin
Configuration file: /opt/homebrew/etc/clang/arm64-apple-darwin24.cfg
System configuration file directory: /opt/homebrew/etc/clang
User configuration file directory: /Users/dominik/.config/clang
 "/opt/homebrew/Cellar/llvm/20.1.4_1/bin/clang-20" -cc1 -triple arm64-apple-macosx15.0.0 -Wundef-prefix=TARGET_OS_ -Werror=undef-prefix -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name fuzz_target.c -mrelocation-model pic -pic-level 2 -mframe-pointer=non-leaf -ffp-contract=on -fno-rounding-math -funwind-tables=1 -target-sdk-version=15.4 -fcompatibility-qualified-id-block-type-checking -fvisibility-inlines-hidden-static-local-var -fdefine-target-os-macros -fno-modulemap-allow-subdirectory-search -target-cpu apple-m1 -target-feature +zcm -target-feature +zcz -target-feature +v8.4a -target-feature +aes -target-feature +altnzcv -target-feature +ccdp -target-feature +ccpp -target-feature +complxnum -target-feature +crc -target-feature +dotprod -target-feature +flagm -target-feature +fp-armv8 -target-feature +fp16fml -target-feature +fptoint -target-feature +fullfp16 -target-feature +jsconv -target-feature +lse -target-feature +neon -target-feature +pauth -target-feature +perfmon -target-feature +predres -target-feature +ras -target-feature +rcpc -target-feature +rdm -target-feature +sb -target-feature +sha2 -target-feature +sha3 -target-feature +specrestrict -target-feature +ssbs -target-abi darwinpcs -debugger-tuning=lldb -fdebug-compilation-dir=/Users/dominik/work/git/airs-compression/build -target-linker-version 1167.4.1 -v -fcoverage-compilation-dir=/Users/dominik/work/git/airs-compression/build -resource-dir /opt/homebrew/Cellar/llvm/20.1.4_1/lib/clang/20 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -internal-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/local/include -internal-isystem /opt/homebrew/Cellar/llvm/20.1.4_1/lib/clang/20/include -internal-externc-isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -ferror-limit 19 -stack-protector 1 -fblocks -fencode-extended-block-signature -fregister-global-dtors-with-atexit -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fmax-type-align=16 -fcolor-diagnostics -fsanitize-coverage-type=3 -fsanitize-coverage-indirect-calls -fsanitize-coverage-trace-cmp -fsanitize-coverage-inline-8bit-counters -fsanitize-coverage-pc-table -fsanitize=fuzzer,fuzzer-no-link,alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound,vptr -fsanitize-recover=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,pointer-overflow,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,vla-bound,vptr -fsanitize-merge=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound,vptr -fno-sanitize-memory-param-retval -fno-sanitize-address-use-odr-indicator -fno-builtin-bcmp -fno-builtin-memcmp -fno-builtin-strncmp -fno-builtin-strcmp -fno-builtin-strncasecmp -fno-builtin-strcasecmp -fno-builtin-strstr -fno-builtin-strcasestr -fno-builtin-memmem -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /var/folders/xh/x0n5fxc94w7gdgsj9m6xkptc0000gn/T/fuzz_target-7a68d8.o -x c fuzz_target.c
clang -cc1 version 20.1.4 based upon LLVM 20.1.4 default target arm64-apple-darwin24.4.0
ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/local/include"
ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/SubFrameworks"
ignoring nonexistent directory "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/Library/Frameworks"
#include "..." search starts here:
#include <...> search starts here:
 /opt/homebrew/Cellar/llvm/20.1.4_1/lib/clang/20/include
 /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include
 /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks (framework directory)
End of search list.
 "/usr/bin/ld" -demangle -lto_library /opt/homebrew/Cellar/llvm/20.1.4_1/lib/libLTO.dylib -no_deduplicate -dynamic -arch arm64 -platform_version macos 15.0.0 15.4 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.sdk -mllvm -enable-linkonceodr-outlining -o a.out /var/folders/xh/x0n5fxc94w7gdgsj9m6xkptc0000gn/T/fuzz_target-7a68d8.o /opt/homebrew/Cellar/llvm/20.1.4_1/lib/clang/20/lib/darwin/libclang_rt.ubsan_osx_dynamic.dylib -rpath @executable_path -rpath /opt/homebrew/Cellar/llvm/20.1.4_1/lib/clang/20/lib/darwin /opt/homebrew/Cellar/llvm/20.1.4_1/lib/clang/20/lib/darwin/libclang_rt.fuzzer_osx.a -lc++ -lSystem /opt/homebrew/Cellar/llvm/20.1.4_1/lib/clang/20/lib/darwin/libclang_rt.osx.a
ld: invalid r_symbolnum=1 in '/var/folders/xh/x0n5fxc94w7gdgsj9m6xkptc0000gn/T/fuzz_target-7a68d8.o'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```
# Linker Version
```
/usr/bin/ld -v 
@(#)PROGRAM:ld PROJECT:ld-1167.4.1
BUILD 20:00:10 Mar 12 2025
configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em
will use ld-classic for: armv6 armv7 armv7s i386 armv6m armv7k armv7m armv7em
LTO support using: LLVM version 17.0.0 (static support for 29, runtime is 29)
TAPI support using: Apple TAPI version 17.0.0 (tapi-1700.0.3.4)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUOV1z46iyv4a8dKGSkb_ykAfHHu_OvZnK1iS7c99cCFoyEwS6gBwnv_4UyE48iTJ7zk52zjlVLktq6E-a7qbh3qvaIF6QySWZrM54F7bWXUhtlbQ6nJVWPlwsbdMqjRC2CJXV2t4rU0PVPT5C4K7GAPcqbOH3yxtuAD5ChHDQytyhA3TOOrAGGi6ub4CwOXfNdEzYeUbyBZnm_U_ED7YmbJ0Ib3rCWQ8ulBG6kwikWPoglQnZlhQfhsYkVk9j-UKZAFdXf3xad4-P6G7Rh2uDH03bBcLmwhofoFMmzDcBCFtIHjhhS_DqETchPQg7BzK7JPkCQFVR-ggFUnyAHAibEjaFhDa5zMlkBaRYkWIFhM1-JWxG2HnCfIU7eoE7-hb34ze4r9HZC3T2LTpho2cCm03ZKR2U2QTHW8LmEV70GjkMnTOQ999ktjpdkd6Cp59Cc1MDrTw3KkTjFKsqGZawZWckVsqgfLV8WpJiAcrsuFYS3MY_NKXVpmtIsRqBMr3E6x13hK0rqyU6T9h6v41_uZlUe3E-vp_VsvZfz5vp_q4NIs_zvDaErW8jzjNDKjkTc5nZSPMgcOSenDC-HJxS2KbhRkLFlUbZuy_uVQBhJabVmXcege4gWPCIUXwreFDW9GZ9aSVWwHUX2u6wFcg0pzsyzcG2CeeH7RhFIfniV9tg6fAeehI7dF5ZAyzPRtmY5IvbND0qmjYZ5W2rkUru7pVh42ycRfa3W4dcQmMl6ji1tV7tSb74aHzgWqNcqWQrwta2DYSttweuhK2XqHVaKK13DWHrnvNmRNi6VFHPpTWVqjuXbAWV0vgWKQyCsHW_RGw9KK-oapIvbh58wAbEK8oglUMRrHv4Z3jki999Wvo_JRPnRReUtlFG3RG2znqsE1pAGPsLBjoQoCwnjAEVYgQ0ONVq_GbFGi6s348mWZ7lQL8kp6Ctw0rtSbG6XXz-5cPt5vpmA_TLwbVXp3OAfpHYOhQ8oKS2_Cqo8px2ntd4gvKdOdioEIFAZde0UjngFKhUnpcaaeUQgQqN3FHuAy2xsg5pycUdGvk8L9qA7tCpSqFLYMGdpDuuO6SGN-iBNlwZGpchAV56feNQHzYeTQ4LrRJAWyWoxh1qYECbyvEGaWuVCRj1MtZQjbwCWlUtFdYEx0UgxcoaoJWx1NnOSGVq2vCwBVp15l4ZSUMU2qewRA_xxMs7ethlET7JxkArYZuWB1UqrcID_f-O66igpErSUltxR8NDi1RsUdyptNF3yh9nK6OVQU-3Sko01Aceoi5WcE133AGt-v1_FMD66AzO-l7yxspOY8NbymMepr4rn7yXeuRObJ9kF20HB3d6VqhCHjqHQNjlo2iGwY9D4N08G_OhAR5XcQCsg3kUu6EhIWQ7DG-H4bZp9d50g-IKJ4bA0obWWTk0VGleD5KqWspds5sPj42mVaOHh0J0vcGhTuuIOTT21QtrBu2jY-p5DTYY_fc1vI1F2-AAuqp5A8ehdMML5_gwWLSDhnZy0Ja-HIRuOXsDXgzCWxQOfXBKDNrX-_JZWF4q6FNHKzxQiWVX1-ho6IyKZcBKa1mmDVZ2NRWpqO0ji4wJbzUY-e-ti49axTjPlfMJ0aFPIYGtY3H17GV9eXGMGDAaTWfZOBvF7B3Dxg4dr_GdWTv0tnMCI6l_NWdrVZ7kYJYDVf7BO2tjPby-UqXj7oGw9SrGWtvGCmW97GunK2Xw1lodZb5Z_W98fIoV_v9lXt4BTbHYcJ0IxvT9Q_QIW3c-qRADJWHrY9E_yOdHLDBIG_fxRbyzLk98qpSQqVaNCjA6h5gVxB1tnQ0pssMIaJUyS8wCaGKRmmQyEo8pJx7j-m0Rs3OtfEBHa21LrqkM1nkaC1PKQypzaVWbTpxktnHGoptW_k611ErXZy-qDK2bmEcbvu-zGteqTqlwmjxaW0el4rWxPqi4656KWvrk7hGPFKticFCZPn9RwbV-A99xgVQ07RsEYkKl81IFKmwXl2yYTCv6BP9G4d2_UGPTJiZsmTRt0IT47hx_oGUsGzxhy9JaHR_9wYqwJcbjDFtW2vKoiQ80cq20vU-UjehPDsvoUTEkSbVTEmn5QB_RWcKWxhrTaU15CE6VXcAI63TkcqhrTin257anF0-H0P1WVYGW3D9_4L61ptcoHfslPQp0QrwzDrnYRlMRttxp3usd39vgTk3rMBmXFKv_eFu9r4m-Z5QGXY3_DSb5d7mPsfTEWE0sXFvueEMdhh3XL2ZwGesUTzuPKS7FeCF4DIpp3sGGtOzDwwmkweYVzAdnhoDDE7nHwclvwH1wg3NfwRtsGmyArjabX5bLza-LPz5sVl8Wn9dss1x_3CxuPvVHEAvv1haZ8elczjMLdA_iVYfm0I-Ih9FvOwoQl19C11qT2mhHsMSKdzocu3_f6TWo2lgXD0HGGtzHrGTC83n7cIh-_7og0v0ZzPvWxDdUbrpyHc-jsXrzP0uOZ-SXvE8bpIxlWUYYg8NB0QfugoctOiTF4lU3NU4uPrw5-f0qrQOx9yup3oPgwNI-2xYIm1fHr5P-UeoNfjASbHW0m1Y-ZM8No17OvhWkZWoCSWy4qWNhooPd6J7dX7OuVuXV7XUmH7QqgRq7kSi7VseIiUDlg-GNEkCTYGnXAm01D5V1zea49VPvCQ69p77j4R98FOuHjgWjSX8waKLsQNH0HSJl7qwRGEO77YJWJnVMLPDMduFvCIA_7rQ9qI9z_Wca3riQdaXnZmP9fnMw9XElXMvDFsg4xz2KLpWhmwQ6jryrVH-vkn2hHLXMOFAtCLsk7BKovnmvA9h3mCeuP_tS4eg8P_VSgRVw1dP943BKeznhRSw5XBGQcZ4ueQrCzn_7fP3L58UnUiy0hN8-X__Ph-Vt-qDHzgTJF5e_f7xaActJscjj3yiHT9zBiAHL2SQqfOiYo0yCd21rXUz6YusPNw27afqf9f_-EFrS_6GvvSkYqGI-hf18upmOD49tj9z0eHf94_CFDckX90priEbTkgrNvVcCqt7oA2wTgz-heHV7_aRC51W_kqm2eWrazFLkI2zeN2efplfWATsnbAmuM0E1CMonQFy728VvH18TXsSaCNLYa_KBt4qOZnme5VmRjV_4wJm8KOR5cc7P8GI0G89GjI3H-dn2gs3EZDKaTfOxKMtRySaCnXPBZVXOKyxRnKmLuHD5ZFTks_GM5RkTcsSK0WhUTkVVTMoYhxqudBZ3Y2Zdfaa87_BiVJxP5-MzzUvUPt0IM2bwHtJoTF-T1Zm7SE39sqs9GecxuflnMkEFjRdXpxe_hM2Gdimb9fvjzy7Bnu6NkxeddU5fbENoo-P1t8W1CtuuzIRtnqNLkrB19iuKGIeS-HH3H_TbXbB_BAAA__9BZWfs">