clarify the purpose of this project
[nyanglibc.git] / elf / dl-usage.shared.s.in
blob09ed6ee48ef0f912c1eef3d1fdb805fd86d7ac3a
1 .text
2 .section .rodata.str1.1,"aMS",@progbits,1
3 .LC0:
4 .string " "
5 .text
6 .p2align 4,,15
7 .type print_hwcaps_subdirectories_name, @function
8 print_hwcaps_subdirectories_name:
9 pushq %rbx
10 leaq .LC0(%rip), %rsi
11 movq %rdi, %rbx
12 movl $2, %edx
13 movl $1, %edi
14 call _dl_write
15 movq 8(%rbx), %rdx
16 movq (%rbx), %rsi
17 movl $1, %edi
18 popq %rbx
19 jmp _dl_write
20 .size print_hwcaps_subdirectories_name, .-print_hwcaps_subdirectories_name
21 .section .rodata.str1.1
22 .LC1:
23 .string " ("
24 .LC2:
25 .string ", "
26 .LC3:
27 .string "%s"
28 .text
29 .p2align 4,,15
30 .type print_hwcap_1.part.0, @function
31 print_hwcap_1.part.0:
32 pushq %rbp
33 pushq %rbx
34 movq %rsi, %rbp
35 subq $8, %rsp
36 cmpb $0, (%rdi)
37 je .L5
38 movq %rdi, %rbx
39 leaq .LC1(%rip), %rdi
40 xorl %eax, %eax
41 call _dl_printf
42 movb $0, (%rbx)
43 .L6:
44 addq $8, %rsp
45 movq %rbp, %rsi
46 leaq .LC3(%rip), %rdi
47 popq %rbx
48 popq %rbp
49 xorl %eax, %eax
50 jmp _dl_printf
51 .p2align 4,,10
52 .p2align 3
53 .L5:
54 leaq .LC2(%rip), %rdi
55 xorl %eax, %eax
56 call _dl_printf
57 jmp .L6
58 .size print_hwcap_1.part.0, .-print_hwcap_1.part.0
59 .section .rodata.str1.1
60 .LC4:
61 .string "."
62 .LC5:
63 .string " (%s)\n"
64 .text
65 .p2align 4,,15
66 .type print_search_path_for_help_1.part.2, @function
67 print_search_path_for_help_1.part.2:
68 cmpq $0, (%rdi)
69 je .L16
70 pushq %rbp
71 pushq %rbx
72 leaq .LC4(%rip), %rbp
73 movq %rdi, %rbx
74 subq $8, %rsp
75 jmp .L11
76 .p2align 4,,10
77 .p2align 3
78 .L20:
79 leaq -1(%rax), %rdx
80 cmpq $1, %rax
81 movl $1, %eax
82 cmovbe %rax, %rdx
83 .L10:
84 movl $1, %edi
85 addq $8, %rbx
86 call _dl_write
87 movq -8(%rbx), %rax
88 leaq .LC5(%rip), %rdi
89 movq 8(%rax), %rsi
90 xorl %eax, %eax
91 call _dl_printf
92 cmpq $0, (%rbx)
93 je .L19
94 .L11:
95 leaq .LC0(%rip), %rsi
96 movl $2, %edx
97 movl $1, %edi
98 call _dl_write
99 movq (%rbx), %rax
100 movq 24(%rax), %rsi
101 movq 32(%rax), %rax
102 testq %rax, %rax
103 jne .L20
104 movl $1, %edx
105 movq %rbp, %rsi
106 jmp .L10
107 .p2align 4,,10
108 .p2align 3
109 .L19:
110 addq $8, %rsp
111 popq %rbx
112 popq %rbp
114 .L16:
116 .size print_search_path_for_help_1.part.2, .-print_search_path_for_help_1.part.2
117 .section .rodata.str1.1
118 .LC6:
119 .string "%s: unrecognized option '%s'\n"
120 .LC7:
121 .string "%s: missing program name\n"
122 .section .rodata.str1.8,"aMS",@progbits,1
123 .align 8
124 .LC8:
125 .string "Try '%s --help' for more information.\n"
126 .text
127 .p2align 4,,15
128 .globl _dl_usage
129 .hidden _dl_usage
130 .type _dl_usage, @function
131 _dl_usage:
132 testq %rsi, %rsi
133 pushq %rbx
134 movq %rdi, %rbx
135 je .L22
136 movq %rsi, %rdx
137 movq %rdi, %rsi
138 leaq .LC6(%rip), %rdi
139 xorl %eax, %eax
140 call _dl_error_printf
141 .L23:
142 leaq .LC8(%rip), %rdi
143 movq %rbx, %rsi
144 xorl %eax, %eax
145 call _dl_error_printf
146 movl $1, %edi
147 call __GI__exit
148 .L22:
149 movq %rdi, %rsi
150 leaq .LC7(%rip), %rdi
151 xorl %eax, %eax
152 call _dl_error_printf
153 jmp .L23
154 .size _dl_usage, .-_dl_usage
155 .section .rodata.str1.8
156 .align 8
157 .LC9:
158 .string "ld.so (GNU libc) release release version 2.33.\nCopyright (C) 2021 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.\nThere is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\nPARTICULAR PURPOSE.\n"
159 .text
160 .p2align 4,,15
161 .globl _dl_version
162 .hidden _dl_version
163 .type _dl_version, @function
164 _dl_version:
165 leaq .LC9(%rip), %rdi
166 subq $8, %rsp
167 xorl %eax, %eax
168 call _dl_printf
169 xorl %edi, %edi
170 call __GI__exit
171 .size _dl_version, .-_dl_version
172 .section .rodata.str1.8
173 .align 8
174 .LC10:
175 .ascii "Usage: %s [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]\n"
176 .ascii "You have invoked 'ld.so', the program interpreter for dynami"
177 .ascii "cally-linked\nELF programs. Usually, the program interprete"
178 .ascii "r is invoked automatically\nwhen a dynamically-linked execut"
179 .ascii "able is started.\n\nYou may invoke the program interpreter p"
180 .ascii "rogram directly from the command\nline to load and run an EL"
181 .ascii "F executable file; this is like executing that\nfile itself,"
182 .ascii " but always uses the program interpreter you invoked,\ninste"
183 .ascii "ad of the program interpreter specified in the executable fi"
184 .ascii "le you\nrun. Invoking the program interpreter directly prov"
185 .ascii "ides access to\nadditional diagnostics, and changing the dyn"
186 .ascii "amic linker behavior without\nsetting environment variables "
187 .ascii "(which would be inherited by subprocesses).\n\n --list "
188 .ascii " list all dependencies and how they are resolved\n"
189 .ascii " --verify verify that given object really is a"
190 .ascii " dynamically linked\n object we can h"
191 .ascii "andle\n --inhibit-cache Do not use CONF_PREFIX"
192 .ascii " --library-path PATH use given PAT"
193 .ascii "H instead of content of the environment\n "
194 .ascii " variable LD_LIBRARY_PATH\n --glibc-hwcaps-prepend LIST"
195 .ascii "\n search glibc-hwcaps subdirectories"
196 .ascii " in LIST\n --glibc-hwcaps-mask LIST\n "
197 .ascii " only search built-in subdirectories if in LIST\n --inhibi"
198 .ascii "t-rpath LIST ignore RUNPATH and RPATH information in object"
199 .ascii " names\n in LIST\n --audit LIST "
200 .ascii " use objects named in LIST as auditors\n --preload LIST"
201 .ascii " preload objects named in LIST\n --argv0 STRING "
202 .ascii " set argv[0] to STRING before running\n --list-tunables "
203 .ascii " "
204 .string "list all tunables with minimum and maximum values\n --help display this help and exit\n --version output version information and exit\n\nThis program interpreter self-identifies as: CONF_PREFIX/lib/ld-linux-x86-64.so.2\n"
205 .section .rodata.str1.1
206 .LC11:
207 .string "\nShared library search path:\n"
208 .section .rodata.str1.8
209 .align 8
210 .LC12:
211 .string "/etc/ld.so.cache"
212 .section .rodata.str1.1
213 .LC13:
214 .string " (libraries located via %s)\n"
215 .section .rodata.str1.8
216 .align 8
217 .LC14:
218 .string "\nSubdirectories of glibc-hwcaps directories, in priority order:\n"
219 .section .rodata.str1.1
220 .LC15:
221 .string "searched"
222 .LC16:
223 .string "\n"
224 .LC17:
225 .string ")\n"
226 .LC18:
227 .string "supported"
228 .LC19:
229 .string "masked"
230 .section .rodata.str1.8
231 .align 8
232 .LC20:
233 .string "\nNo subdirectories of glibc-hwcaps directories are searched.\n"
234 .align 8
235 .LC21:
236 .string "\nLegacy HWCAP subdirectories under library search path directories:\n"
237 .align 8
238 .LC22:
239 .string " %s (AT_PLATFORM; supported, searched)\n"
240 .section .rodata.str1.1
241 .LC23:
242 .string " tls (supported, searched)\n"
243 .LC24:
244 .string " %s"
245 .text
246 .p2align 4,,15
247 .globl _dl_help
248 .hidden _dl_help
249 .type _dl_help, @function
250 _dl_help:
251 pushq %r15
252 pushq %r14
253 xorl %eax, %eax
254 pushq %r13
255 pushq %r12
256 movq %rsi, %r12
257 pushq %rbp
258 pushq %rbx
259 movq %rdi, %rsi
260 leaq .LC10(%rip), %rdi
261 subq $56, %rsp
262 call _dl_printf
263 cmpq $0, __rtld_search_dirs(%rip)
264 je .L87
265 .L28:
266 leaq .LC11(%rip), %rdi
267 xorl %eax, %eax
268 call _dl_printf
269 movq _rtld_local(%rip), %rbx
270 testq %rbx, %rbx
271 je .L29
272 movq 816(%rbx), %rdi
273 leaq -1(%rdi), %rax
274 cmpq $-3, %rax
275 jbe .L88
276 .L86:
277 movq __rtld_env_path_list(%rip), %rdi
278 leaq -1(%rdi), %rax
279 cmpq $-3, %rax
280 jbe .L31
281 .L34:
282 movq 960(%rbx), %rdi
283 leaq -1(%rdi), %rax
284 cmpq $-3, %rax
285 jbe .L83
286 .L35:
287 leaq .LC13(%rip), %rdi
288 leaq .LC12(%rip), %rsi
289 xorl %eax, %eax
290 call _dl_printf
291 movq __rtld_search_dirs(%rip), %rdi
292 leaq -1(%rdi), %rax
293 cmpq $-3, %rax
294 ja .L36
295 call print_search_path_for_help_1.part.2
296 .L36:
297 movq 440(%r12), %rax
298 leaq 32(%rsp), %r13
299 movq $0, 40(%rsp)
300 movl $1, %ebx
301 leaq 31(%rsp), %rbp
302 movq %r13, %rdi
303 movq %rax, 32(%rsp)
304 call _dl_hwcaps_split
305 testb %al, %al
306 je .L89
307 .p2align 4,,10
308 .p2align 3
309 .L41:
310 testb %bl, %bl
311 jne .L90
312 .L38:
313 movq %r13, %rdi
314 call print_hwcaps_subdirectories_name
315 leaq .LC15(%rip), %rsi
316 movq %rbp, %rdi
317 movb $1, 31(%rsp)
318 call print_hwcap_1.part.0
319 cmpb $0, 31(%rsp)
320 je .L39
321 leaq .LC16(%rip), %rdi
322 xorl %eax, %eax
323 xorl %ebx, %ebx
324 call _dl_printf
325 .L95:
326 movq %r13, %rdi
327 call _dl_hwcaps_split
328 testb %al, %al
329 jne .L41
330 .L89:
331 call _dl_hwcaps_subdirs_active
332 movl %eax, %ebp
333 leaq _dl_hwcaps_subdirs(%rip), %rax
334 movq $0, 40(%rsp)
335 leaq 31(%rsp), %r14
336 movq %rax, 32(%rsp)
337 jmp .L42
338 .p2align 4,,10
339 .p2align 3
340 .L94:
341 leaq .LC16(%rip), %rdi
342 xorl %eax, %eax
343 call _dl_printf
344 .L47:
345 shrl %ebp
346 xorl %ebx, %ebx
347 .L42:
348 movq %r13, %rdi
349 call _dl_hwcaps_split
350 testb %al, %al
351 je .L91
352 testb %bl, %bl
353 jne .L92
354 .L43:
355 movq %r13, %rdi
356 call print_hwcaps_subdirectories_name
357 testb $1, %bpl
358 movb $1, 31(%rsp)
359 jne .L93
360 movq 448(%r12), %rdi
361 movq 40(%rsp), %rdx
362 movq 32(%rsp), %rsi
363 call _dl_hwcaps_contains
364 testb %al, %al
365 je .L61
366 .L60:
367 cmpb $0, 31(%rsp)
368 jne .L94
369 leaq .LC17(%rip), %rdi
370 xorl %eax, %eax
371 call _dl_printf
372 jmp .L47
373 .p2align 4,,10
374 .p2align 3
375 .L39:
376 leaq .LC17(%rip), %rdi
377 xorl %eax, %eax
378 xorl %ebx, %ebx
379 call _dl_printf
380 jmp .L95
381 .p2align 4,,10
382 .p2align 3
383 .L90:
384 leaq .LC14(%rip), %rdi
385 xorl %eax, %eax
386 call _dl_printf
387 jmp .L38
388 .p2align 4,,10
389 .p2align 3
390 .L61:
391 leaq .LC19(%rip), %rsi
392 movq %r14, %rdi
393 call print_hwcap_1.part.0
394 jmp .L60
395 .p2align 4,,10
396 .p2align 3
397 .L93:
398 leaq .LC18(%rip), %rsi
399 movq %r14, %rdi
400 call print_hwcap_1.part.0
401 movq 448(%r12), %rdi
402 movq 40(%rsp), %rdx
403 movq 32(%rsp), %rsi
404 call _dl_hwcaps_contains
405 testb %al, %al
406 je .L61
407 leaq .LC15(%rip), %rsi
408 movq %r14, %rdi
409 call print_hwcap_1.part.0
410 jmp .L60
411 .p2align 4,,10
412 .p2align 3
413 .L92:
414 leaq .LC14(%rip), %rdi
415 xorl %eax, %eax
416 call _dl_printf
417 jmp .L43
418 .p2align 4,,10
419 .p2align 3
420 .L91:
421 testb %bl, %bl
422 je .L49
423 leaq .LC20(%rip), %rdi
424 call _dl_printf
425 .L49:
426 leaq .LC21(%rip), %rdi
427 xorl %eax, %eax
428 call _dl_printf
429 movq 8+_rtld_local_ro(%rip), %rsi
430 testq %rsi, %rsi
431 je .L50
432 leaq .LC22(%rip), %rdi
433 xorl %eax, %eax
434 call _dl_printf
435 .L50:
436 leaq .LC23(%rip), %rdi
437 xorl %eax, %eax
438 leaq 1094+_rtld_local_ro(%rip), %rbp
439 movl $63, %ebx
440 movl $1, %r12d
441 call _dl_printf
442 xorl %edx, %edx
443 movq %r13, %rsi
444 movl $15, %edi
445 call __GI___tunable_get_val
446 movq 32(%rsp), %r14
447 movq 88+_rtld_local_ro(%rip), %rax
448 andq %r14, %rax
449 movq %rax, 8(%rsp)
450 jmp .L51
451 .p2align 4,,10
452 .p2align 3
453 .L52:
454 subq $9, %rbp
455 .L51:
456 subl $1, %ebx
457 cmpl $-1, %ebx
458 je .L96
459 movq %r12, %r15
460 movl %ebx, %ecx
461 salq %cl, %r15
462 testb $6, %r15b
463 je .L52
464 leaq .LC24(%rip), %rdi
465 xorl %eax, %eax
466 movq %rbp, %rsi
467 call _dl_printf
468 testq %r15, 88+_rtld_local_ro(%rip)
469 movb $1, 32(%rsp)
470 jne .L97
471 .L53:
472 testq %r15, %r14
473 je .L98
474 .L54:
475 testq %r15, 8(%rsp)
476 jne .L99
477 .L55:
478 cmpb $0, 32(%rsp)
479 je .L56
480 leaq .LC16(%rip), %rdi
481 xorl %eax, %eax
482 call _dl_printf
483 jmp .L52
484 .p2align 4,,10
485 .p2align 3
486 .L56:
487 leaq .LC17(%rip), %rdi
488 xorl %eax, %eax
489 call _dl_printf
490 jmp .L52
491 .p2align 4,,10
492 .p2align 3
493 .L99:
494 leaq .LC15(%rip), %rsi
495 movq %r13, %rdi
496 call print_hwcap_1.part.0
497 jmp .L55
498 .p2align 4,,10
499 .p2align 3
500 .L98:
501 leaq .LC19(%rip), %rsi
502 movq %r13, %rdi
503 call print_hwcap_1.part.0
504 jmp .L54
505 .p2align 4,,10
506 .p2align 3
507 .L97:
508 leaq .LC18(%rip), %rsi
509 movq %r13, %rdi
510 call print_hwcap_1.part.0
511 jmp .L53
512 .p2align 4,,10
513 .p2align 3
514 .L96:
515 xorl %edi, %edi
516 call __GI__exit
517 .L29:
518 movq __rtld_env_path_list(%rip), %rdi
519 leaq -1(%rdi), %rax
520 cmpq $-3, %rax
521 ja .L35
522 .L83:
523 call print_search_path_for_help_1.part.2
524 jmp .L35
525 .L31:
526 call print_search_path_for_help_1.part.2
527 jmp .L34
528 .L88:
529 call print_search_path_for_help_1.part.2
530 jmp .L86
531 .L87:
532 movq 448(%r12), %rcx
533 movq 440(%r12), %rdx
534 movq 416(%r12), %rsi
535 movq 408(%r12), %rdi
536 call _dl_init_paths
537 jmp .L28
538 .size _dl_help, .-_dl_help
539 .hidden _dl_init_paths
540 .hidden _rtld_local_ro
541 .hidden _dl_hwcaps_contains
542 .hidden _dl_hwcaps_subdirs
543 .hidden _dl_hwcaps_subdirs_active
544 .hidden _dl_hwcaps_split
545 .hidden __rtld_env_path_list
546 .hidden _rtld_local
547 .hidden __rtld_search_dirs
548 .hidden _dl_error_printf
549 .hidden _dl_printf
550 .hidden _dl_write