<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/108403>108403</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
LIBUNWIND_HIDE_SYMBOLS option doesn't work with libc++abi.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++,
libc++abi
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
pawelsopensource
</td>
</tr>
</table>
<pre>
Hi,
I'm trying to build libc++abi.so with statically linked libunwind with hidden libunwind symbols.
The isolated docker clang build shows that libc++abi.so.1.0 still exports _Unwind* symbols (only the part of __unw* are hidden).
```
$ readelf -sW libc++abi.so.1.0 |grep __unw
54: 000000000001ee00 104 FUNC GLOBAL DEFAULT 12 __unw_add_dynamic_fde
74: 000000000001f240 154 FUNC GLOBAL DEFAULT 12 __unw_add_dynamic_eh_frame_section
149: 000000000001f160 5 FUNC GLOBAL DEFAULT 12 __unw_remove_dynamic_fde
210: 000000000001f570 5 FUNC GLOBAL DEFAULT 12 __unw_remove_dynamic_eh_frame_section
19: 000000000001e420 210 FUNC LOCAL HIDDEN 12 __unw_init_local
24: 000000000001e540 155 FUNC LOCAL HIDDEN 12 __unw_get_reg
25: 000000000001e5e0 247 FUNC LOCAL HIDDEN 12 __unw_set_reg
26: 000000000001e6e0 156 FUNC LOCAL HIDDEN 12 __unw_get_fpreg
27: 000000000001e780 165 FUNC LOCAL HIDDEN 12 __unw_set_fpreg
28: 000000000001e830 126 FUNC LOCAL HIDDEN 12 __unw_step
29: 000000000001e8b0 129 FUNC LOCAL HIDDEN 12 __unw_step_stage2
30: 000000000001e940 145 FUNC LOCAL HIDDEN 12 __unw_get_proc_info
31: 000000000001e9e0 127 FUNC LOCAL HIDDEN 12 __unw_resume
32: 000000000001ea60 191 FUNC LOCAL HIDDEN 12 __unw_get_proc_name
33: 000000000001eb20 135 FUNC LOCAL HIDDEN 12 __unw_is_fpreg
34: 000000000001ebb0 134 FUNC LOCAL HIDDEN 12 __unw_regname
35: 000000000001ec40 125 FUNC LOCAL HIDDEN 12 __unw_is_signal_frame
36: 000000000001ecc0 120 FUNC LOCAL HIDDEN 12 __unw_iterate_dwarf_unwind_cache
872: 0000000000024454 0 FUNC LOCAL HIDDEN 12 __unw_getcontext
884: 000000000001ee00 104 FUNC GLOBAL DEFAULT 12 __unw_add_dynamic_fde
887: 000000000001f160 5 FUNC GLOBAL DEFAULT 12 __unw_remove_dynamic_fde
888: 000000000001f240 154 FUNC GLOBAL DEFAULT 12 __unw_add_dynamic_eh_frame_section
891: 000000000001f570 5 FUNC GLOBAL DEFAULT 12 __unw_remove_dynamic_eh_frame_section
(...)
$ readelf -sW libc++abi.so.1.0 |grep _Unwind_
46: 0000000000024300 88 FUNC GLOBAL DEFAULT 12 _Unwind_GetIPInfo
55: 0000000000023d40 89 FUNC GLOBAL DEFAULT 12 _Unwind_SetGR
81: 0000000000023c10 98 FUNC GLOBAL DEFAULT 12 _Unwind_GetRegionStart
112: 0000000000023fd0 148 FUNC GLOBAL DEFAULT 12 _Unwind_FindEnclosingFunction
116: 0000000000023b70 149 FUNC GLOBAL DEFAULT 12 _Unwind_GetLanguageSpecificData
123: 0000000000023e60 143 FUNC GLOBAL DEFAULT 12 _Unwind_Resume_or_Rethrow
131: 0000000000023f60 102 FUNC GLOBAL DEFAULT 12 _Unwind_GetTextRelBase
134: 0000000000023ef0 102 FUNC GLOBAL DEFAULT 12 _Unwind_GetDataRelBase
175: 0000000000023c80 87 FUNC GLOBAL DEFAULT 12 _Unwind_DeleteException
276: 0000000000023050 837 FUNC GLOBAL DEFAULT 12 _Unwind_RaiseException
286: 0000000000023da0 82 FUNC GLOBAL DEFAULT 12 _Unwind_GetIP
298: 0000000000024070 376 FUNC GLOBAL DEFAULT 12 _Unwind_Backtrace
325: 0000000000023e00 81 FUNC GLOBAL DEFAULT 12 _Unwind_SetIP
381: 00000000000241f0 174 FUNC GLOBAL DEFAULT 12 _Unwind_Find_FDE
387: 0000000000023ae0 140 FUNC GLOBAL DEFAULT 12 _Unwind_ForcedUnwind
413: 0000000000023ce0 92 FUNC GLOBAL DEFAULT 12 _Unwind_GetGR
435: 00000000000242a0 82 FUNC GLOBAL DEFAULT 12 _Unwind_GetCFA
446: 0000000000023710 175 FUNC GLOBAL DEFAULT 12 _Unwind_Resume
(...)
```
[Dockerfile.txt](https://github.com/user-attachments/files/16981389/Dockerfile.txt)
[docker.sh.txt](https://github.com/user-attachments/files/16981391/docker.sh.txt)
[build.sh.txt](https://github.com/user-attachments/files/16981392/build.sh.txt)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0mFFv4joThn-NubGK4olDkgsuoJRuJb7up3ar1bmKjDMJPg0xis22_fdHxGmBuNtm9-ypKiFCeOaNx_POGGGMKmvEKYnmJFqMxN5udDPdiSesjN5hbfS-kTha6_xl-kURuCTBggSzGwLxltrmRdUltZqu96rKaaXWksCcwFys1dho-qTshhorrJKiql5opepHbO_b10-qzt0NG5XnWJ9cNS_bta7M2MX6tkGqjK6ExZzmWj5iQ2Ul6rKLajb6yVC7EdYTMGbjgBqrqori80431tDsoY1BYPYahhJIdF29ULtBuhONpbqgWbavnw43iQY7gQTSThGZBN2_ewucNihyrAp6Yb6_r4LEl2WDuw7cfo9SSiNOwhkNjn8MMQgopSzgdPlwe3m46Xr1dT5b0cXVcvaw-nb4EBwnE3me5S-12CqZFTl23NiDFsBbaPSrUNxkRSO2mBmUVun6TTnjqReETQ5BKI1ckJ9HaHCrf-A7yikFFnjcKA5emR8K72F_op15wpFD4EK_BVl9vZytKP1ys1hc3dLTIKpWNqu0FFXHAz-FUbfa0QBeiTZrsHyFRT4MW3E8HgAz57CJB5ugUzYZqKzYneBiDxcnLW4y5EFNH5d4uCRscTBEnbG4O9YR-ElN1g6WDoRlxooSoWOG3jbE1GWVD83qrtEyU3WhjzJD5lNdRuBn6T3Z3Wa_xRMWeCzRFiBL2WesN3m1OEOGHnLdlgYL-w_9XmWYs_weeH5prF1WQv45r8GyJ88vDulyAsPkHZqdqJwrnGD9MpHSYTtD-MANLDbCYpY_iabIXP_KpJCbIz-J-4kCziPeOuUQwynRSl1bfLYdMkn-i6ZBaZJ4Bd639F-x33O0V-z9lvQv-1GSeqXV9o3fFP9-HALJeDwmkHZvf6P9u_EjO-4-3t99wMM2mTRJPliZjnON9ub_N2ceE_WrBMKcO2D6OfAe7fXdEZb0VxVCyVpYOkzdHZZK1_dWNPY4OzCvIsIid-aafJyrDrxUdX5Vy0obVZfLfd2bTZi3puE6dvx0EP8a7UrU5V6UeL9DqQolF8KKYwToOyWE6MyXh5-vy11r5Zlusju0m0YfB0LmdQgIi0lAWQBDhX_DZ3uH1VwYPMH2LQNCLJxlDAYfVuAczGJ_r8nE7bV4EHaBFVq8epa4O0shxH4Kg-hATsJh5DuhzHvgxAfnwkmGgfV2hKV9WwMetBstjCefw-ZCPtpGyGOeQm_-gxA7N2CDivdEXegXL2cu6fFHpntSY9lycXXC6_cHCIWbXngwgKcbiXl3_HplcuYXkkRnMIM35olhcW9GAA7n6f2cd7mcHYG-P4cxc4v4SV85K_b3G0jvIBnNF-35tlAVju2zJdGCQLKxdmdIOCOwJLAsld3s12OptwSWe4PNhbBWyM0Wa2sILA_fPbyySZqwMEkJLHvQt-jR3B2nx2bzZ6KljMDynHkSrD2u_7lYQGB5hnwNNcqnYZ6GqRjhlMUwYRGkwEebaYxxBBMRp3EsigkwLAoeTwTPZT4RGBYjNYVDBacMGI8i4GNRBClPgEmGEIcJEB7gVqhqXFU_tmPdlCNlzB6nLEh4EI4qscbKtD-mABznAAJA4PLsklirw9VoMWqmB9bFel8awoNKGWuOdKtshdPVzfzh9vvN7SL7crO4yu7_-t_86-qe6tbZaK7R1ARiS5908-h-UjmfQUb7ppp-sNaHcN3Lxa7Rf6O0BJbtk7Xr7R7uxxT-CQAA__8_hfBR">