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

    <tr>
        <th>Summary</th>
        <td>
            ld.lld: error: relocation R_MIPS_32 cannot be used against local symbol; recompile with -fPIC
        </td>
    </tr>

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

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

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

<pre>
    t.cpp

```
#include <stdio.h>

#include "t.h"

TT::TT(const int a)
    : n(a)
{
    printf("{%s}[%s](%d) : %d\n", __FILE__, __func__, __LINE__, n); 
}
```


m.cpp
```
#include <stdio.h>

#include "t.h"

int main()
{
    int c = 100;
    printf("{%s}[%s](%d) : %d\n", __FILE__, __func__, __LINE__, c); 
    TT *a = new TT(c);
    printf("{%s}[%s](%d) : %p\n", __FILE__, __func__, __LINE__, a); 
    return 0;
}
```

t.h
```
class TT {
public:
    //explicit TT(const int a);
    TT(const int a);
    ~TT() {};
private:
    int n {};
};
```

```
$ ../build/bin/clang++ -fPIC -mabi=32 -fuse-ld=lld -O3 -o a.out t.cpp m.cpp
ld.lld: error: relocation R_MIPS_32 cannot be used against local symbol; recompile with -fPIC
>>> defined in /tmp/m-dc13fe.o
>>> referenced by m.cpp
>>>               /tmp/m-dc13fe.o:(.eh_frame+0x2D)
clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
```

```
$ ../build/bin/clang++ -fPIC -L/lib64 -mabi=64 -fuse-ld=lld -O3 -o a.out t.cpp m.cpp 
ld.lld: error: relocation R_MIPS_64 cannot be used against local symbol; recompile with -fPIC
>>> defined in /tmp/m-627e22.o
>>> referenced by m.cpp
>>>               /tmp/m-627e22.o:(.eh_frame+0x31)
clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy9VVtvozoQ_jXwYoHADpA88NA2rVSpe9E5fY8MHhLvGsPappf99Tt2kibpic7uartFFgye8Vy-b2w3g3iuXdqOY5Qto-xi9y6z3dj-UiZ1qyYBJGJX1gk5pJuIXZ8sObKh1KGe0mP9_X3ELnDgl87bQVtHpHaER3SxNSD4oJ5o1B9mo-ryoB4NLulQ732jghY2qpZRsZWKZdAUAhcHT0EurrS3pldktbq5vbterbZyN-l2L9_dftzNax-YXZJ98OV5PI7e_RF2b4-ah6jnUofKzkHiDVr0vyR5lmHm7wlWewKWj3l_j34ueMhHwyPZkr01-5PMxt_MjP8nMwNuMpocIPp_bj0T57St4taGMvckjFOjZOt7-9DF9AYHPI2okI6c6_hjOH6mj6rrYBLwwLCY-F6NSD5wByfRvQ_92vBEPtvMr3t3RtIUq2gmqYT_-h68wfL1OqJI1CVJus-3VyTpeSORbkZxYrKQoDVbKiVI8omRZCA8HSZHwglDjvaKEqnyphcEjBmMFwyooeVODpr8s_pw-_nfFTptudaDIw0QdC4IX-NmQKC8pSL2uW8G5Yk20A79KBWQR-k229x2leCGC4MI6KRGH1J7hlw_4rtPRJuzDtLhtbWBDgzoFhc0z8eZH0xOn3M-kRc6T2Gz6gzvAVHLnujyZSMHNJO8PEFBSf0VDMFyeq4F6TgWJbZVwRN2UzvgWZFjtDkCQpIH4gZiAbCqhx16h4PiTYm-w2klm3L2wrkXf41z8huko9e_TnpJK6D0bUl_8XmGdJa_P-kx1HlZFvNZtsizWNRMLNiCx046BfU7bL94MqreODfagIg_EteonJoUbX0vqYf9JxnN8AVah7_S2gksCsWcVVW8qSvKStFAzgAYlPMC8pIKEKwq24rzrosVb0DZOlwf1F86wYW_LIplLGuaUZpneZEzVmRlKmYzaBZFRxcd54WAaJYBXrAq9Xmkg1nHpg4pNdPaolJJ6-xBiae_XGuAEA7988ltBlM_frf2-RuPQ-g6pP4DbHqVDw">