3 .type call_destructors, @function
20 leaq
0(%rbp
,%rdx
,8), %rbx
46 .size call_destructors, .-call_destructors
47 .section .rodata.str1.1,"aMS",@progbits,1
51 .string "! should_be_there"
53 .string "old_map->l_tls_modid == idx"
56 .type remove_slotinfo, @function
74 movq _dl_tls_static_nelem
(%rip
), %rax
82 leaq
8(%rbp
,%rax
), %rax
109 cmpq
%rdi
, 1120(%rdx
)
111 movq _dl_tls_generation
(%rip
), %rsi
116 cmpq
%rdi
, _dl_tls_max_dtv_idx
(%rip
)
127 movq
%rdi
, _dl_tls_max_dtv_idx
(%rip
)
141 leaq __PRETTY_FUNCTION__.11020
(%rip
), %rcx
142 leaq
.LC0(%rip), %rsi
143 leaq
.LC1(%rip), %rdi
147 leaq __PRETTY_FUNCTION__.11020
(%rip
), %rcx
148 leaq
.LC0(%rip), %rsi
149 leaq
.LC2(%rip), %rdi
152 .size remove_slotinfo, .-remove_slotinfo
153 .section .rodata.str1.8,"aMS",@progbits,1
156 .string "\nclosing file=%s; direct_opencount=%u\n"
157 .section .rodata.str1.1
159 .string "idx == nloaded"
160 .section .rodata.str1.8
163 .string "(*lp)->l_idx >= 0 && (*lp)->l_idx < nloaded"
166 .string "jmap->l_idx >= 0 && jmap->l_idx < nloaded"
167 .section .rodata.str1.1
169 .string "imap->l_ns == nsid"
170 .section .rodata.str1.8
173 .string "imap->l_type == lt_loaded && !imap->l_nodelete_active"
174 .section .rodata.str1.1
176 .string "\ncalling fini: %s [%lu]\n\n"
178 .string "tmap->l_ns == nsid"
180 .string "cannot create scope list"
184 .string "imap->l_type == lt_loaded"
186 .string "nsid == LM_ID_BASE"
188 .string "imap->l_prev != NULL"
189 .section .rodata.str1.8
192 .string "\nfile=%s [%lu]; destroying link map\n"
195 .string "TLS generation counter wrapped! Please report as described in <https://www.gnu.org/software/libc/bugs.html>.\n"
198 .globl _dl_close_worker
199 .hidden _dl_close_worker
200 .type _dl_close_worker, @function
203 movabsq $
8589934592, %rcx
212 movb
%sil
, -114(%rbp
)
214 movabsq $
17179869183, %rax
220 testb $
64, _dl_debug_mask
(%rip
)
232 movl dl_close_state.11042
(%rip
), %r9d
238 leaq
(%r15,%r15,8), %rdx
241 leaq
(%r15,%rdx
,2), %rdx
242 movq
%rcx
, -192(%rbp
)
243 leaq _dl_ns
(%rip
), %rcx
245 leaq
40(%rcx
,%rdx
), %rbx
247 movq
%rcx
, -144(%rbp
)
248 movq
%rbx
, -200(%rbp
)
250 movq
-144(%rbp
), %rcx
251 movq
%rsp
, -152(%rbp
)
252 movl $
1, dl_close_state.11042
(%rip
)
261 leaq
22(,%r14,8), %rax
277 movl
%edx
, 1012(%rax
)
291 movl
%r11d
, -56(%rbp
)
297 movl
-56(%rbp
), %r11d
300 movabsq $
8589934592, %r10
309 cmpb $
0, 0(%r13,%rax
)
311 movq
(%r9,%rax
,8), %rcx
318 movb $
1, 0(%r13,%rax
)
330 movslq
1012(%rax
), %rax
341 movl
1012(%rax
), %eax
379 movq
8(%rsi
,%rax
,8), %r8
380 movslq
1012(%r8), %rax
386 leaq __PRETTY_FUNCTION__.11056
(%rip
), %rcx
387 leaq
.LC0(%rip), %rsi
388 leaq
.LC6(%rip), %rdi
392 testb $
64, _dl_debug_mask
(%rip
)
393 movl $
2, dl_close_state.11042
(%rip
)
397 leaq
.LC3(%rip), %rdi
399 call _dl_debug_printf
406 movq
1128(%rcx
), %rdx
419 movl
%r11d
, -56(%rbp
)
424 movq
-192(%rbp
), %rax
426 leaq
(%r9,%rax
), %rdi
428 movl
-56(%rbp
), %r11d
431 movq
0(,%r12,8), %r13
440 movl
%eax
, -180(%rbp
)
445 movl
%r11d
, -120(%rbp
)
456 testb $
2, _dl_debug_mask
(%rip
)
462 leaq call_destructors
(%rip
), %rsi
466 call _dl_catch_exception
467 movzbl
796(%r13), %eax
482 movq
8(%rax
,%r12,8), %r13
487 movzbl
796(%r13), %eax
516 cmpq
-656(%rax
), %r15
539 movq
%rax
, -128(%rbp
)
555 leaq
8(%rax
,%r11), %rdi
566 leaq
(%rax
,%r11), %rdi
575 leaq
8(%rax
,%r11), %rdi
582 movq
-128(%rbp
), %rax
589 movzbl
-113(%rbp
), %eax
595 movq
-112(%rbp
), %rax
612 movl
-120(%rbp
), %r11d
619 movl
%r10d
, -64(%rbp
)
620 movl
%r11d
, -56(%rbp
)
621 call _dl_debug_initialize
623 movq
%rax
, -104(%rbp
)
624 call _dl_debug_state@PLT
626 movl
-56(%rbp
), %r11d
627 movl
-64(%rbp
), %r10d
640 cmpq $
0, __pthread_mutex_lock@GOTPCREL
(%rip
)
642 leaq _dl_load_write_lock
(%rip
), %rdi
644 movl
%r10d
, -64(%rbp
)
645 movl
%r11d
, -56(%rbp
)
646 call __pthread_mutex_lock@PLT
647 movl
-56(%rbp
), %r11d
648 movl
-64(%rbp
), %r10d
656 leaq
(%rbx
,%rax
), %r12
657 leaq
(%r9,%rax
,8), %r13
658 leaq
1(%rbx
,%rax
), %rax
659 movl
-180(%rbp
), %ebx
676 movzbl
796(%r14), %eax
686 cmpq $
0, __pthread_mutex_lock@GOTPCREL
(%rip
)
688 movq
-200(%rbp
), %rdi
689 call __pthread_mutex_lock@PLT
691 movq
-144(%rbp
), %rax
695 movq
-144(%rbp
), %rcx
718 cmpq $
0, __pthread_mutex_unlock@GOTPCREL
(%rip
)
720 movq
-200(%rbp
), %rdi
721 call __pthread_mutex_unlock@PLT
731 subl $
1, 8+_dl_ns
(%rip
)
747 testb $
64, _dl_debug_mask
(%rip
)
791 cmpq _dl_initfirst
(%rip
), %r14
801 cmpq $
0, __pthread_mutex_unlock@GOTPCREL
(%rip
)
804 leaq _dl_load_write_lock
(%rip
), %rdi
805 call __pthread_mutex_unlock@PLT
809 movq _dl_tls_generation
(%rip
), %rax
812 movq
%rax
, _dl_tls_generation
(%rip
)
815 cmpq
%rax
, _dl_tls_static_used
(%rip
)
818 movq
-144(%rbp
), %rax
822 movq
-104(%rbp
), %rax
824 call _dl_debug_state@PLT
826 cmpl $
2, dl_close_state.11042
(%rip
)
828 movq
-152(%rbp
), %rsp
835 movzbl
796(%r13), %eax
858 cmpq $
0, (%rdx
,%rsi
,8)
868 movq
%rax
, -104(%rbp
)
879 movb
%r10b
, -115(%rbp
)
880 movq
%rsi
, -168(%rbp
)
881 movq
%rcx
, -160(%rbp
)
882 movq
%rdx
, -136(%rbp
)
883 leaq
0(,%rax
,8), %rdi
884 movq
%rax
, -112(%rbp
)
887 movq
-136(%rbp
), %rdx
888 movq
-160(%rbp
), %rcx
889 movq
-168(%rbp
), %rsi
890 movzbl
-115(%rbp
), %r10d
893 leaq
.LC11(%rip), %rcx
894 leaq
.LC12(%rip), %rsi
897 call _dl_signal_error
902 leaq
.LC9(%rip), %rdi
906 call _dl_debug_printf
910 movb
%r10b
, -113(%rbp
)
913 movq $
0, _dl_initfirst
(%rip
)
925 leaq
.LC16(%rip), %rdi
927 call _dl_debug_printf
930 movq _dl_tls_dtv_slotinfo_list
(%rip
), %rsi
934 movq
1120(%r14), %rdi
942 movq
1112(%r14), %rax
943 movzbl
-72(%rbp
), %ecx
954 subq
1088(%r14), %rdx
965 leaq __PRETTY_FUNCTION__.11056
(%rip
), %rcx
966 leaq
.LC0(%rip), %rsi
967 leaq
.LC5(%rip), %rdi
975 movq
-144(%rbp
), %rax
983 movq
(%rdi
,%rdx
,8), %rdx
992 movq
(%rdi
,%rcx
,8), %rcx
1003 movq _dl_tls_static_nelem
(%rip
), %rax
1004 movq
%rax
, _dl_tls_max_dtv_idx
(%rip
)
1007 movq
-64(%rbp
), %rdi
1010 movq _dl_tls_static_used
(%rip
), %rcx
1015 cmpq
-64(%rbp
), %rax
1017 movq
%rax
, -64(%rbp
)
1018 movq
%rdx
, -96(%rbp
)
1020 movzbl
-72(%rbp
), %eax
1026 movq
%rax
, -64(%rbp
)
1027 movzbl
-72(%rbp
), %eax
1031 movq _dl_nns
(%rip
), %rax
1035 movq
%r15, _dl_nns
(%rip
)
1038 movq
-96(%rbp
), %rax
1039 movq
%rax
, _dl_tls_static_used
(%rip
)
1042 movl
-88(%rbp
), %edx
1047 movq _dl_scope_free_list
(%rip
), %rax
1054 movl
%r10d
, -64(%rbp
)
1055 movl
%r11d
, -56(%rbp
)
1056 call __thread_gscope_wait
1057 movq _dl_scope_free_list
(%rip
), %r12
1058 movl
-56(%rbp
), %r11d
1059 movl
-64(%rbp
), %r10d
1071 movq
8(%r12,%rax
,8), %rdi
1084 movl $
0, dl_close_state.11042
(%rip
)
1085 movq
-152(%rbp
), %rsp
1088 leaq __PRETTY_FUNCTION__.11056
(%rip
), %rcx
1089 leaq
.LC0(%rip), %rsi
1090 leaq
.LC10(%rip), %rdi
1094 leaq __PRETTY_FUNCTION__.11056
(%rip
), %rcx
1095 leaq
.LC0(%rip), %rsi
1096 leaq
.LC8(%rip), %rdi
1100 leaq __PRETTY_FUNCTION__.11056
(%rip
), %rcx
1101 leaq
.LC0(%rip), %rsi
1102 leaq
.LC7(%rip), %rdi
1108 movl
-88(%rbp
), %ecx
1109 leal
(%rax
,%rcx
), %edx
1117 movq
(%rdi
,%rdx
,8), %rcx
1118 testb $
32, 797(%rcx
)
1123 movq
%rcx
, (%rdi
,%rsi
,8)
1132 leaq __PRETTY_FUNCTION__.11056
(%rip
), %rcx
1133 leaq
.LC0(%rip), %rsi
1134 leaq
.LC4(%rip), %rdi
1141 movzbl
-72(%rbp
), %eax
1142 movq
%rdx
, _dl_tls_static_used
(%rip
)
1146 movq
%rax
, -64(%rbp
)
1147 movzbl
-72(%rbp
), %eax
1148 movq
-96(%rbp
), %rcx
1149 movq
%rdx
, -96(%rbp
)
1150 movq
%rcx
, _dl_tls_static_used
(%rip
)
1154 leaq __PRETTY_FUNCTION__.11056
(%rip
), %rcx
1155 leaq
.LC0(%rip), %rsi
1156 leaq
.LC15(%rip), %rdi
1160 leaq __PRETTY_FUNCTION__.11056
(%rip
), %rcx
1161 leaq
.LC0(%rip), %rsi
1162 leaq
.LC14(%rip), %rdi
1166 leaq __PRETTY_FUNCTION__.11056
(%rip
), %rcx
1167 leaq
.LC0(%rip), %rsi
1168 leaq
.LC13(%rip), %rdi
1172 cmpq $
0, __pthread_mutex_unlock@GOTPCREL
(%rip
)
1174 leaq _dl_load_write_lock
(%rip
), %rdi
1175 call __pthread_mutex_unlock@PLT
1178 leaq
.LC17(%rip), %rdi
1179 call _dl_fatal_printf@PLT
1180 .size _dl_close_worker, .-_dl_close_worker
1181 .section .rodata.str1.1
1183 .string "shared object not open"
1188 .type _dl_close, @function
1190 cmpq $
0, __pthread_mutex_lock@GOTPCREL
(%rip
)
1194 leaq _dl_load_lock
(%rip
), %rdi
1195 call __pthread_mutex_lock@PLT
1199 movl
792(%rbx
), %eax
1204 call _dl_close_worker
1206 cmpq $
0, __pthread_mutex_unlock@GOTPCREL
(%rip
)
1209 leaq _dl_load_lock
(%rip
), %rdi
1210 jmp __pthread_mutex_unlock@PLT
1219 cmpq $
0, __pthread_mutex_unlock@GOTPCREL
(%rip
)
1221 leaq _dl_load_lock
(%rip
), %rdi
1222 call __pthread_mutex_unlock@PLT
1225 leaq
.LC18(%rip), %rcx
1228 call _dl_signal_error
1229 .size _dl_close, .-_dl_close
1230 .section .rodata.str1.16,"aMS",@progbits,1
1232 .type __PRETTY_FUNCTION__.11020, @object
1233 .size __PRETTY_FUNCTION__.11020, 16
1234 __PRETTY_FUNCTION__.11020
:
1235 .string "remove_slotinfo"
1237 .type __PRETTY_FUNCTION__.11056, @object
1238 .size __PRETTY_FUNCTION__.11056, 17
1239 __PRETTY_FUNCTION__.11056
:
1240 .string "_dl_close_worker"
1241 .local dl_close_state.11042
1242 .comm dl_close_state.11042,4,4
1243 .weak __pthread_mutex_unlock
1244 .weak __pthread_mutex_lock
1245 .hidden __thread_gscope_wait
1246 .hidden _dl_signal_error
1248 .hidden _dl_debug_initialize
1249 .hidden _dl_scope_free
1250 .hidden _dl_catch_exception
1251 .hidden _dl_sort_maps
1252 .hidden _dl_debug_printf
1253 .hidden __assert_fail