<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">