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

    <tr>
        <th>Summary</th>
        <td>
            TSAN doesn't support real-time signals on FreeBSD
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    ```console
tavianator@muon $ cat foo.c
#include <signal.h>
#include <stdio.h>

int main(void) {
        if (signal(SIGRTMIN, SIG_DFL) == SIG_ERR) {
 perror("signal()");
        }
        return 0;
}
tavianator@muon $ clang18 foo.c -o foo
tavianator@muon $ ./foo
tavianator@muon $ clang18 -fsanitize=thread foo.c -o foo
tavianator@muon $ ./foo
signal(): Invalid argument
tavianator@muon $ clang18 --version
clang version 18.1.3
Target: x86_64-portbld-freebsd14.0
Thread model: posix
InstalledDir: /usr/local/llvm18/bin
tavianator@muon $ uname -a
FreeBSD muon 14.0-RELEASE-p5 FreeBSD 14.0-RELEASE-p5 #0: Tue Feb 13 23:37:36 UTC 2024 root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
```

I think `kSigCount` is wrong here: https://github.com/llvm/llvm-project/blob/ee765b0c94df7e636d9739216b1646d3a2d3b5db/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp#L64
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVF1vozgX_jUnNxYIbDBwwUXbhCpS3140fa8rg0-IZ4yNbNOd7q9fGdLOdLQ7-xFFJ-R5nvPpY4T3ajSILZS3UO53YgkX69ogXpUwIli36618a4Fn23ewxluNkO0hu_mugiKbFmsI0IIMIpCztemwiYAyZQa9SCTA7mI2odMLsMOf0kEq-yO7WmUCmYQyQOtXqyTQhkB1u3Hk-lFnArTewgOtT8f7p-f_HR-B3pHT8f5l3z2sbmwPbL8ih6enz4FmdM46oDVQ-hEHaAOURst-SgjV_jPgMCzOkOxD-aH4izlpYca83mZFEhsffqVPgXZ_I3kPmZy9MCqo3xHYPlwcCvnf0nyaA7shR_MqtJJEuHGZ0IR_VEzyis4razbxCpMrRPI6zVO2Mc_CjRhimm81f-FFMlsXei2Ts0PsvcyLNLsqt5YmK1FH_Wy9-rZRR-OD0BrlXrlIAe0W74B22g6xk07r1ymvgXa9Mr8qfzFiQpKITdM5xNvTnqx0LCR5Ojwcbk6HZC7JO_kzDpRlsYbnBUmHPckZoQzYDaui4eT_z3eEZrQgztoARSYmyYukX5SW6FIpcLLGaju-pWady0cvtv_y8ezdALRbXdPVRuzNA-3uD4-Hp-Md2dBtJd_v8Y_X60jCRZmvBHj29aTGO7uYADwjypPfnDUjuaDD2MclhNlvdQDtRhUuS58OdrpO9fqTzM5-wSHEEWvbA-0QK1722dAU8lwhZ1w2FWtozvucF1wyQSXrSxmlg51mpdElLvprFbHghQHauaCvf16UCegGnIN1_mU9_HSYZ6DsgRc72TLZsEbssM2rvKyzkjbN7tLSnONZYJ3lQpZ5ntVNLTivOG-K81mU551q42FkZV7SjBVlnTLkTVNzmVXVgKIvochwEkqnsc3UunGnvF-wbSjL2U6LHrV_f5G6dp1Fv4weikwrH_x3t6CCxvb5dPNIpEVvgFaB-GWOC08cCp0ENSHZbp8n1ryv2G5xuv3Xx7BWGTdiLfSPAAAA___j2cow">