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

    <tr>
        <th>Summary</th>
        <td>
            freebsd ELF binary type "3" not known
        </td>
    </tr>

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

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

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

<pre>
    I cross build for FreeBSD programs on GNU/Linux with clang.

## my build machine's uname -a

```
Linux leleliu008 6.2.0-39-generic #40-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 14 14:18:00 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
```

## clang --version

```yaml
Homebrew clang version 17.0.3
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/linuxbrew/.linuxbrew/bin
```

## install freebsd sysroot

```bash
install -d amd64-unknown-freebsd-sysroot
curl -L -o amd64-unknown-freebsd-sysroot.txz https://archive.freebsd.org/old-releases/amd64/13.2-RELEASE/base.txz
tar xf amd64-unknown-freebsd-sysroot.txz -C amd64-unknown-freebsd-sysroot
```

## test C source file

```bash
cat > test.c <<EOF
#include <stdio.h>

int main() {
    puts("Hello freebsd!");
    return 0;
}
EOF
```

## cross build command

```bash
clang --target=amd64-unknown-freebsd --sysroot=./amd64-unknown-freebsd-sysroot test.c
```

## display ELF header

```bash
readelf -h freebsd-static-exe
```

```
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00 
  Class: ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI: UNIX - GNU
  ABI Version:                       0
 Type:                              EXEC (Executable file)
  Machine: Advanced Micro Devices X86-64
  Version: 0x1
  Entry point address:               0x401030
  Start of program headers:          64 (bytes into file)
  Start of section headers:          3764408 (bytes into file)
  Flags: 0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers: 9
  Size of section headers:           64 (bytes)
  Number of section headers:         32
  Section header string table index: 31
```

`EI_OSABI` 's value is `3`, this usually means that The ELF is built for `GNU/Linux` as per https://www.sco.com/developers/gabi/latest/ch4.eheader.html

I expect it would be `9`, because sometimes it reports `freebsd ELF binary type "3" not known.` when it actually run on FreeBSD-13.2, if I manully change it from `3` to `9`, it works fine.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVt9v4roS_mvMyyiR44QADzxQIHeRtt3VaXu192nlOAPxPY6NbIcf568_chJa2u3SraICzszn7xvPjIc7J3cacU7Gd2S8GvHW18bOFSpUsqV0OipNdZ5vQFjjHJStVBVsjYXCIt49rmBvzc7yxoHR8J-HZ8KKr1K3JzhKX4NQXO9iQleELob_LCUsheY8QDVc1FIjYRMHreYNQsTf2Od0eLqfPfYrO8hjFtMonUU71GilAMLSjEbPZat9C4_33-H7X-v1_fenn6v_PSzuN0t4ahEezAGSDJKMpItkStIFpfD8tARGWQqnaf4zz959XEn7kNgbdZ1siKIDWieN_lDPmTeqX_piGiwtHge3wQmSSUzjtDd54naHnqSLgU7U6r-1OepIBULRTreDXW2RV9CYClWw3hsnB74b7TxXCquVtOEVYUVtGiSs6DACAcKK-PpHKfXnWmWPC1uLWLoK3NlZY_yHmkvu6n7p4hVVwJvqStAAE72BEa1VEH2FyNy2jv3pH6i93zuSLggrCCu4FbU8YDxYxsbuCCuMqiKLCrlDF4wCKGFFksYs-mv9db14XAf93GGA7El4buG0_QMC0fJPNN2KqUfnYQnOtFYgbKXCT8IpuAeSrjvHWABJlyRdrr8VL6hSC9VWGN44X0kT1yRdX4NK7aHhUhM2JWwGZHLXrwMA7FvvunX2BZUyl6MmLCGMETYj6ZWxRd9aDfRlkUxW_ZdXPrdK56rNCNM0XFefaR-KzQ81svow-BC9hD9dxZcz_90RDYH8nG4l3V7xM6y_FlAjr9B-wjbUJ6otRDW87Om5lyLCE97a7-1i2O9Lv1-6uAT_nu-kCLUNMNlCNoZMQJYDZUCT7kmB0o-fC8RScReKJwjKs8vqinve4974Y10PF6bZK2xQe8KWoKT3CgF1Jbm-oP136Io3ARMgbCpaazuk2cX32yNhxeJuE5yfHzY_IOo68_B2cbf5HH2IIDyd9_ipqPWP9TIwWZ9QtJ6XaijHV0b3wwWWLmBRHbgWWMG9FNbACg9SoIMf0zx6jeUVP3pKLqtr7e0Z9iaUIa8qi_0pvGN-ymhC04sAePTcejDbyx08ZOBbzzwL_MuzRwdSe_Oe_wuIQ-HDvfMRSDrJs4xObyMViu9cr-uVovwHA7ivpbsUyC-6riheExtcb4mDcf6R60PblGh_4_zLBreE_4bb6wY3nFP2stMbI3DeSr2DPp2krvAU3NLkdvmvNz-_PYbUzyl0pXbgqkWQDkhO02DPln2cW9dypc7QINcOfM09PNXY9SjZ91bfjXAkp9djTU6BO9ijfXeFHo_H2AkTC9MQVlR4QGX2QSsrdryUYYLgoV8SVog6i7FXGdf-MuAMAwjgaY_Cg_RwNK2qoMRAYTZQL1Hw1iE406CXTUgyDxb3xvpO4qWRBxml1NyewZ_3CISFVsxAGw9dM4-DkmONOgBw4ftg2FaHEXUYW6Nw1Ydd5RY20HDdBhtRc73D4La1prnEFby55tnRt3872EqNw2w7quZpNUtnfITzZEJZQlnKpqN6zqrpeItTKqYzlm_ZJEvGFNOyLBmOJ8k0Gcl5mDkTRmc0TxidxnQ2Tng5E2kmGGaznGQUGy5VrNShCePLSDrX4nySzZLJSPESleuGd8Y0HqF7Ga7l8Wpk58EnKtudIxlV0nn3iuKlVzj_46COWqvmb_NiJ33dlkNaBNzhI9pb838UIR86NiFROrb_BgAA__-A95Oc">