<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJzlVs2OmzAQfhpysYjAEAIHDrvdpu1h2x5ateoFGTyAW2Mj2ySbt-8YstlGjXrYSt1DJWMbz3h-vhnNuNb8WH7pQZHJCtWRDyOo-49Et63UjBOnyc39HXnz8TM5CNeTgeHUTqpxQitLavB3GiYlcCKUFRzOVw10niegrwjj3PMFdBvKAWekWS33YIkU6ocncdiLBhbxUtSGGQF2HUR3QXQTZNFpzL-NZKoL6C0OErYa7R3G8yZ0zHTgbJDcsYF3jQpx8V9vGQm_XjBd5xmYaXokde1DEWVk0LxdNyNqQMuvmfNWH2APZoHH9UAUHAg3wp_p0cNEkPdsH1LDheolIDbvED6ltCNo0Xz_ERKE_qDNj-sgBDQlfwbiSdG_BEdKHiQ3BIzRxm8mxaEVCrPDHodaS39WVboZZOUvV22WnhxKXi8Dc6MFA6rBO_URc2bnhhFnttaTC5c8CX8zLWw5bWm-1qggoDmqGMbqlIkIZhVHSZRWdMuilBXVwISqJN0EtPjvtFffCgfWzfC_46_3n6pKFn82JcZAGyBODGBPbM8LdkJfDO4kfslgv5T2i2C3zw023VndOlyk3GP53nmfwpG5pgeOv7VQOM_VKPTFC0x4MGwcwVxkB9Z9nzBY_VsmsF_8Us3DOL1gXaSQRg8DU_zEv1RYeBAOCdhnYpSYTxZIuPe10gJgB9rrhvma--TjY91c8TLhRVKwFZtcr015hFBOejUZWfbOjXYGdIejQz1TvUbtTy77JRyN_g6NB0JYOyE8dLdJNjRb9WWRpnHOimabZFAk7TaO0yTPc5anGaSc5SvJapC2DDa3weZu9fcqRUkjiiOK4zza0mi9aeI8qznkyTar4xSCNAIMlFx7OWttupUpZ5H11FkkSmGdfSIya0WnAGYLKf3ONRjMCdRMfZfyR2ghmMwfoAdOODkzLw8GPMI9PhXevHqP-3MT-6WhH8nswhLGK21qNZPL2b2ffWfCFA>53526</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[OpenMP][AMDGCN] linking math library issue with -fopenmp-new-driver
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
jdoerfert,
jhuber6
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ye-luo
</td>
</tr>
</table>
<pre>
When using OpenMP offload to AMD GPU with math functions being called inside offload regions, adding '-lm' resolves linking device math libraries.
```
clang++ -fopenmp -fopenmp-targets=amdgcn-amd-amdhsa -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx906 modf.cpp -lm
```
However with the new driver option `-fopenmp-new-driver`, I cannot get the linking to work.
```
$ clang++ -fopenmp -fopenmp-new-driver -fopenmp-targets=amdgcn-amd-amdhsa -Xopenmp-target=amdgcn-amd-amdhsa -march=gfx906 modf.cpp -lm
lld: error: undefined symbol: __ocml_modf_f64
>>> referenced by /tmp/a.out-device-amdgcn-amd-amdhsa-fd2f28.o:(__omp_offloading_10304_27a04a9_main_l25)
>>> referenced by /tmp/a.out-device-amdgcn-amd-amdhsa-fd2f28.o:(__omp_offloading_10304_27a04a9_main_l25)
>>> referenced by /tmp/a.out-device-amdgcn-amd-amdhsa-fd2f28.o:(__omp_offloading_10304_27a04a9__Z9test_modfIdEvT__l9)
>>> referenced 1 more times
lld: error: undefined symbol: __ocml_modf_f32
>>> referenced by /tmp/a.out-device-amdgcn-amd-amdhsa-fd2f28.o:(__omp_offloading_10304_27a04a9_main_l31)
>>> referenced by /tmp/a.out-device-amdgcn-amd-amdhsa-fd2f28.o:(__omp_offloading_10304_27a04a9_main_l31)
>>> referenced by /tmp/a.out-device-amdgcn-amd-amdhsa-fd2f28.o:(__omp_offloading_10304_27a04a9__Z9test_modfIfEvT__l9)
>>> referenced 1 more times
/soft/llvm/main-patched/bin/clang-linker-wrapper: error: 'lld' failed
clang-14: 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/eJzlVU1vnDAQ_TXsxWIFZmGXA4d8bZpD2hxateoFGTyAE2Mj2-xm_33HsMkmapRDDs2hkrGNZ-x582Y0U2l-KH52oMhohWrJtwHU7R3RTSM148RpcnZ7Sa7vfpC9cB3pGU7NqGontLKkAn-nZlICJ0JZweH5qoHW6wT0gjDOvV5A16HscUaZ1XIHlkihHryIw07UMD8vRWWYEWCXQXQZRGdBFh3H9FtLptqAnuMgYaMRbz88b0LHTAvOBskl63lbqxAX_3WWkfDXK6W3dXpm6g5FbfOYRxnpNW-W9YAWEPlbcL7oPezAzPS4DoiCPeFG-DM9eJoI6j7jQ2k4S_0LyM0N0qeUdgQRTfefKEHq99o8vE1CQFfkfSJOhv4lOVLyIDkjYIw2fjMqDo1QmB320Fda-rOy1HUvS3-5bLLV0aHkah6YGw0YUDXeqQ6YM1vXDzizpR5dOOdJ-Be0sOG0oZulRgMB3aCJfiiPmYhklnGURKuSrlm0YnnZM6FKSdOA5v-d9fJ37sC6if4bfrX7XpYyfx9KjIE2QJzowR7VPhbshH4a3Un8mcH-LOuvgt18NNh0a3XjcJFyh-V7630KB-bqDjj-VkLhPFWj0BcvMOHesGEA8yo7sO77hMHq3zCB_eJFNQ_j1SvV-RVS675nih_15woLj8KhAPtMjC9uRgsk3PlaaQGwA-10zXzNPfn4VDcXvEh4nuRs4YSTUATp-dzrgvQS99jlri--4v65_r7oRQcirB1hRvBGhV2MRhadc4OdorLF0aLqWC3RhRNvfgkHo--h9mxOb2J_3KZJSrNFV9A03bB6zVfrKonTTUxZnkW0jvOMr7OUxwvJKpDWQ0egC1HQiOKI4ngTrWm0TOt4k1UcNsk6q-IVBKsIMFZy6Q0vtWkXppgwVGNrUSiFdfYkZNaKVsFETUDpPddgMC0QKvWNyh-hS2Ayf4D22eg6bYoDhHLUi8mbYnLlD9LQrIU">