1# Copyright (c) 2023 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//build/config/clang/clang.gni")
15import("../../../../../../test_template.gni")
16
17group("ldso_libs") {
18  testonly = true
19  deps = [
20    ":dlopen_004",
21    ":dlopen_005",
22    ":dlopen_009_1",
23    ":dlopen_009_2",
24    ":dlopen_010",
25    ":dlopen_common",
26    ":dlopen_common_close",
27    ":dlopen_common_relro",
28    ":dlopen_global",
29    ":dlopen_gnu_hash",
30    ":dlopen_init_finalize",
31    ":dlopen_load_so",
32    ":dlopen_nodelete",
33    ":dlopen_nodelete_1",
34    ":dlopen_order_003",
35    ":dlopen_order_02",
36    ":dlopen_relocation",
37    ":dlopen_rpath",
38    ":dlopen_sysv_hash",
39    ":dlopen_test_dependency",
40    ":dlsym_get_answer",
41    ":dlsym_get_symbol",
42    ":dlsym_get_symbol_impl",
43    ":dlsym_global_symbol",
44    ":dlsym_lib_use_rtld_next",
45    ":dlsym_symbol_impl_v1",
46    ":dlsym_symbol_impl_v2",
47    ":dlsym_symbol_v1",
48    ":dlsym_symbol_v2_relro",
49    ":dlsym_symbol_v2_second",
50    ":dlsym_symbol_v3_relro",
51    ":dlsym_symbol_version_2",
52    ":dlsym_symbol_version_3",
53    ":dlsym_symbol_version_empty",
54    ":dlsym_to_use_global_symbol",
55    ":dlsym_weak_func",
56    ":dlsym_weak_func_undefined",
57    ":empty",
58    ":ldso_cfi_lib",
59    ":ldso_cfi_lib_exit",
60    ":ldso_cxa_thread_atexit_test",
61    ":ldso_cxa_thread_atexit_test_A",
62    ":ldso_cxa_thread_atexit_test_B",
63    ":ldso_cxa_thread_atexit_test_C",
64    ":ldso_dlclose_test_a",
65    ":ldso_dlclose_test_b",
66    ":ldso_dlclose_test_c",
67    ":ldso_dlsym_dependent",
68    ":ldso_dlsym_dependent_impl",
69    ":ldso_norelro_test",
70    ":ldso_ns_empty",
71    ":ldso_ns_root",
72    ":ldso_ns_test_permitted_root",
73    ":ldso_relro_recursive_test",
74    ":ldso_thread_test",
75    ":ldso_thread_test_2",
76  ]
77  if ("${musl_arch}" == "arm" || "${musl_arch}" == "aarch64") {
78    deps += [ ":copy_zip_lib" ]
79  }
80}
81
82root_libs_dir = "/data/tmp/libcgtest/libs"
83
84ohos_shared_library("dlopen_relocation_1") {
85  include_dirs = [ "." ]
86  sources = [ "dlopen_relocation_1.c" ]
87  output_name = "dlopen_relocation_1"
88  output_extension = "so"
89  subsystem_name = "musl"
90  part_name = "libc-gtest-lib"
91}
92
93ohos_shared_library("dlopen_relocation_2") {
94  include_dirs = [ "." ]
95  sources = [ "dlopen_relocation_2.c" ]
96  output_name = "dlopen_relocation_2"
97  output_extension = "so"
98  subsystem_name = "musl"
99  part_name = "libc-gtest-lib"
100}
101
102ohos_shared_library("dlopen_relocation") {
103  include_dirs = [ "." ]
104  sources = [ "dlopen_relocation.c" ]
105  output_name = "dlopen_relocation"
106  output_extension = "so"
107  deps = [
108    ":dlopen_relocation_1",
109    ":dlopen_relocation_2",
110  ]
111  subsystem_name = "musl"
112  part_name = "libc-gtest-lib"
113}
114
115ohos_shared_library("dlopen_order_1") {
116  include_dirs = [ "." ]
117  sources = [ "dlopen_order_1.c" ]
118  output_name = "dlopen_order_1"
119  output_extension = "so"
120  subsystem_name = "musl"
121  part_name = "libc-gtest-lib"
122}
123
124ohos_shared_library("dlopen_order_2") {
125  include_dirs = [ "." ]
126  sources = [ "dlopen_order_2.c" ]
127  output_name = "dlopen_order_2"
128  output_extension = "so"
129  subsystem_name = "musl"
130  part_name = "libc-gtest-lib"
131}
132
133ohos_shared_library("dlopen_order_3") {
134  include_dirs = [ "." ]
135  sources = [ "dlopen_order_3.c" ]
136  output_name = "dlopen_order_3"
137  output_extension = "so"
138  subsystem_name = "musl"
139  part_name = "libc-gtest-lib"
140}
141
142ohos_shared_library("dlopen_order_1_2") {
143  include_dirs = [ "." ]
144  sources = [ "dlopen_order_1_2.c" ]
145  output_name = "dlopen_order_1_2"
146  output_extension = "so"
147  deps = [
148    ":dlopen_order_1",
149    ":dlopen_order_2",
150  ]
151  subsystem_name = "musl"
152  part_name = "libc-gtest-lib"
153}
154
155ohos_shared_library("dlopen_order_02") {
156  include_dirs = [ "." ]
157  sources = [ "dlopen_order.c" ]
158  output_name = "dlopen_order_02"
159  output_extension = "so"
160  deps = [
161    ":dlopen_order_1_2",
162    ":dlopen_order_3",
163  ]
164  subsystem_name = "musl"
165  part_name = "libc-gtest-lib"
166}
167
168ohos_shared_library("dlopen_order_003_1_1") {
169  include_dirs = [ "." ]
170  sources = [ "dlopen_order_003_1_1.c" ]
171  output_name = "dlopen_order_003_1_1"
172  output_extension = "so"
173  subsystem_name = "musl"
174  part_name = "libc-gtest-lib"
175}
176
177ohos_shared_library("dlopen_order_003_1_2") {
178  include_dirs = [ "." ]
179  sources = [ "dlopen_order_003_1_2.c" ]
180  output_name = "dlopen_order_003_1_2"
181  output_extension = "so"
182  subsystem_name = "musl"
183  part_name = "libc-gtest-lib"
184}
185
186ohos_shared_library("dlopen_order_003_1") {
187  include_dirs = [ "." ]
188  sources = [ "dlopen_order_003_1.c" ]
189  output_name = "dlopen_order_003_1"
190  output_extension = "so"
191  deps = [
192    ":dlopen_order_003_1_1",
193    ":dlopen_order_003_1_2",
194  ]
195  subsystem_name = "musl"
196  part_name = "libc-gtest-lib"
197}
198
199ohos_shared_library("dlopen_order_003_2_1") {
200  include_dirs = [ "." ]
201  sources = [ "dlopen_order_003_2_1.c" ]
202  output_name = "dlopen_order_003_2_1"
203  output_extension = "so"
204  subsystem_name = "musl"
205  part_name = "libc-gtest-lib"
206}
207
208ohos_shared_library("dlopen_order_003_2_2") {
209  include_dirs = [ "." ]
210  sources = [ "dlopen_order_003_2_2.c" ]
211  output_name = "dlopen_order_003_2_2"
212  output_extension = "so"
213  subsystem_name = "musl"
214  part_name = "libc-gtest-lib"
215}
216
217ohos_shared_library("dlopen_order_003_2") {
218  include_dirs = [ "." ]
219  sources = [ "dlopen_order_003_2.c" ]
220  output_name = "dlopen_order_003_2"
221  output_extension = "so"
222  deps = [
223    ":dlopen_order_003_2_1",
224    ":dlopen_order_003_2_2",
225  ]
226  subsystem_name = "musl"
227  part_name = "libc-gtest-lib"
228}
229
230ohos_shared_library("dlopen_order_003") {
231  include_dirs = [ "." ]
232  sources = [ "dlopen_order_003.c" ]
233  output_name = "dlopen_order_003"
234  output_extension = "so"
235  deps = [
236    ":dlopen_order_003_1",
237    ":dlopen_order_003_2",
238  ]
239  subsystem_name = "musl"
240  part_name = "libc-gtest-lib"
241}
242
243ohos_shared_library("dlopen_common") {
244  include_dirs = [ "." ]
245  sources = [ "dlopen_common.c" ]
246  output_name = "dlopen_common"
247  output_extension = "so"
248  ldflags = [ "-Wl,-soname=libdlopen_common_soname.so" ]
249  subsystem_name = "musl"
250  part_name = "libc-gtest-lib"
251}
252
253ohos_shared_library("dlopen_004_1_1") {
254  include_dirs = [ "." ]
255  sources = [ "dlopen_004_1_1.c" ]
256  output_name = "dlopen_004_1_1"
257  output_extension = "so"
258  subsystem_name = "musl"
259  part_name = "libc-gtest-lib"
260}
261
262ohos_shared_library("dlopen_004_1_2") {
263  include_dirs = [ "." ]
264  sources = [ "dlopen_004_1_2.c" ]
265  output_name = "dlopen_004_1_2"
266  output_extension = "so"
267  subsystem_name = "musl"
268  part_name = "libc-gtest-lib"
269}
270
271ohos_shared_library("dlopen_004_1") {
272  include_dirs = [ "." ]
273  sources = [ "dlopen_004_1.c" ]
274  output_name = "dlopen_004_1"
275  output_extension = "so"
276  deps = [
277    ":dlopen_004_1_1",
278    ":dlopen_004_1_2",
279  ]
280  subsystem_name = "musl"
281  part_name = "libc-gtest-lib"
282}
283
284ohos_shared_library("dlopen_004") {
285  include_dirs = [ "." ]
286  sources = [ "dlopen_004.c" ]
287  output_name = "dlopen_004"
288  output_extension = "so"
289  deps = [ ":dlopen_004_1" ]
290  subsystem_name = "musl"
291  part_name = "libc-gtest-lib"
292
293  ldflags = [ "-Wl,--allow-shlib-undefined" ]
294}
295
296ohos_shared_library("dlopen_005_1_1") {
297  include_dirs = [ "." ]
298  sources = [ "dlopen_005_1_1.c" ]
299  output_name = "dlopen_005_1_1"
300  output_extension = "so"
301  subsystem_name = "musl"
302  part_name = "libc-gtest-lib"
303}
304
305ohos_shared_library("dlopen_005_1_2") {
306  include_dirs = [ "." ]
307  sources = [ "dlopen_005_1_2.c" ]
308  output_name = "dlopen_005_1_2"
309  output_extension = "so"
310  subsystem_name = "musl"
311  part_name = "libc-gtest-lib"
312}
313
314ohos_shared_library("dlopen_005_2_1") {
315  include_dirs = [ "." ]
316  sources = [ "dlopen_005_2_1.c" ]
317  output_name = "dlopen_005_2_1"
318  output_extension = "so"
319  subsystem_name = "musl"
320  part_name = "libc-gtest-lib"
321}
322
323ohos_shared_library("dlopen_005_1") {
324  include_dirs = [ "." ]
325  sources = [ "dlopen_005_1.c" ]
326  output_name = "dlopen_005_1"
327  output_extension = "so"
328  deps = [
329    ":dlopen_005_1_1",
330    ":dlopen_005_1_2",
331  ]
332  subsystem_name = "musl"
333  part_name = "libc-gtest-lib"
334}
335
336ohos_shared_library("dlopen_005_2") {
337  include_dirs = [ "." ]
338  sources = [ "dlopen_005_2.c" ]
339  output_name = "dlopen_005_2"
340  output_extension = "so"
341  deps = [ ":dlopen_005_2_1" ]
342  subsystem_name = "musl"
343  part_name = "libc-gtest-lib"
344}
345
346ohos_shared_library("dlopen_005") {
347  include_dirs = [ "." ]
348  sources = [ "dlopen_005.c" ]
349  output_name = "dlopen_005"
350  output_extension = "so"
351  deps = [
352    ":dlopen_005_1",
353    ":dlopen_005_2",
354  ]
355  subsystem_name = "musl"
356  part_name = "libc-gtest-lib"
357}
358
359ohos_shared_library("dlopen_009") {
360  include_dirs = [ "." ]
361  sources = [ "dlopen_009.c" ]
362  output_name = "dlopen_009"
363  output_extension = "so"
364  subsystem_name = "musl"
365  part_name = "libc-gtest-lib"
366}
367
368ohos_shared_library("dlopen_009_1") {
369  include_dirs = [ "." ]
370  sources = [ "dlopen_009_1.c" ]
371  output_name = "dlopen_009_1"
372  output_extension = "so"
373  deps = [ ":dlopen_009" ]
374  subsystem_name = "musl"
375  part_name = "libc-gtest-lib"
376}
377
378ohos_shared_library("dlopen_009_2") {
379  include_dirs = [ "." ]
380  sources = [ "dlopen_009_2.c" ]
381  output_name = "dlopen_009_2"
382  output_extension = "so"
383  deps = [ ":dlopen_009" ]
384  subsystem_name = "musl"
385  part_name = "libc-gtest-lib"
386}
387
388ohos_shared_library("dlopen_010") {
389  include_dirs = [ "." ]
390  sources = [ "dlopen_location.c" ]
391  output_name = "dlopen_010"
392  output_extension = "so"
393  deps = [ ":dlopen_relocation_1" ]
394  subsystem_name = "musl"
395  part_name = "libc-gtest-lib"
396}
397
398ohos_shared_library("dlopen_load_so_1") {
399  include_dirs = [ "." ]
400  sources = [ "dlopen_load_so_1.c" ]
401  output_name = "dlopen_load_so_1"
402  output_extension = "so"
403  subsystem_name = "musl"
404  part_name = "libc-gtest-lib"
405}
406
407ohos_shared_library("dlopen_load_so") {
408  include_dirs = [ "." ]
409  sources = [ "dlopen_load_so.c" ]
410  output_name = "dlopen_load_so"
411  output_extension = "so"
412  deps = [ ":dlopen_load_so_1" ]
413  subsystem_name = "musl"
414  part_name = "libc-gtest-lib"
415}
416
417ohos_shared_library("dlopen_test_dependency_1_1_invalid") {
418  include_dirs = [ "." ]
419  sources = [ "ldso_empty.c" ]
420  output_name = "dlopen_test_dependency_1_1_invalid"
421  output_extension = "so"
422  ldflags = [ "-Wl,-soname=libdlopen_test_dependency_1_1.so" ]
423  subsystem_name = "musl"
424  part_name = "libc-gtest-lib"
425}
426
427ohos_shared_library("dlopen_test_dependency_1_1") {
428  include_dirs = [ "." ]
429  sources = [ "dlopen_test_dependency_1_1.c" ]
430  output_name = "dlopen_test_dependency_1_1"
431  output_extension = "so"
432  deps = [ ":dlopen_test_dependency_1_1_1" ]
433  subsystem_name = "musl"
434  part_name = "libc-gtest-lib"
435}
436
437ohos_shared_library("dlopen_test_dependency_1_1_1") {
438  include_dirs = [ "." ]
439  sources = [ "dlopen_test_dependency_1_1_1.c" ]
440  output_name = "dlopen_test_dependency_1_1_1"
441  output_extension = "so"
442  deps = [ ":dlopen_test_dependency_1" ]
443  subsystem_name = "musl"
444  part_name = "libc-gtest-lib"
445}
446
447ohos_shared_library("dlopen_test_dependency_1") {
448  include_dirs = [ "." ]
449  sources = [ "dlopen_test_dependency_1.c" ]
450  output_name = "dlopen_test_dependency_1"
451  output_extension = "so"
452  deps = [ ":dlopen_test_dependency_1_1_invalid" ]
453  subsystem_name = "musl"
454  part_name = "libc-gtest-lib"
455}
456
457ohos_shared_library("dlopen_test_dependency") {
458  include_dirs = [ "." ]
459  sources = [ "dlopen_test_dependency.c" ]
460  output_name = "dlopen_test_dependency"
461  output_extension = "so"
462  deps = [ ":dlopen_test_dependency_1" ]
463  subsystem_name = "musl"
464  part_name = "libc-gtest-lib"
465}
466
467ohos_shared_library("dlopen_nodelete") {
468  include_dirs = [ "." ]
469  sources = [ "dlopen_nodelete.c" ]
470  output_name = "dlopen_nodelete"
471  output_extension = "so"
472  subsystem_name = "musl"
473  part_name = "libc-gtest-lib"
474}
475
476ohos_shared_library("dlopen_nodelete_1") {
477  include_dirs = [ "." ]
478  sources = [ "dlopen_nodelete.c" ]
479  output_name = "dlopen_nodelete_1"
480  output_extension = "so"
481  ldflags = [ "-Wl,-z,nodelete" ]
482  subsystem_name = "musl"
483  part_name = "libc-gtest-lib"
484}
485
486ohos_shared_library("dlopen_init_finalize") {
487  include_dirs = [ "." ]
488  sources = [ "dlopen_init_finalize.c" ]
489  output_name = "dlopen_init_finalize"
490  output_extension = "so"
491  deps = [
492    ":dlopen_init_finalize_1",
493    ":dlopen_init_finalize_2",
494  ]
495  subsystem_name = "musl"
496  part_name = "libc-gtest-lib"
497}
498
499ohos_shared_library("dlopen_init_finalize_1") {
500  include_dirs = [ "." ]
501  sources = [ "dlopen_init_finalize_1.c" ]
502  output_name = "dlopen_init_finalize_1"
503  output_extension = "so"
504  deps = [ ":dlopen_init_finalize_2" ]
505  subsystem_name = "musl"
506  part_name = "libc-gtest-lib"
507}
508
509ohos_shared_library("dlopen_init_finalize_2") {
510  include_dirs = [ "." ]
511  sources = [ "dlopen_init_finalize_2.c" ]
512  output_name = "dlopen_init_finalize_2"
513  output_extension = "so"
514  subsystem_name = "musl"
515  part_name = "libc-gtest-lib"
516}
517
518ohos_shared_library("dlopen_gnu_hash") {
519  include_dirs = [ "." ]
520  sources = [ "dlopen_common.c" ]
521  output_name = "dlopen_gnu_hash"
522  output_extension = "so"
523  ldflags = [ "-Wl,--hash-style=gnu" ]
524  subsystem_name = "musl"
525  part_name = "libc-gtest-lib"
526}
527
528ohos_shared_library("dlopen_sysv_hash") {
529  include_dirs = [ "." ]
530  sources = [ "dlopen_common.c" ]
531  output_name = "dlopen_sysv_hash"
532  output_extension = "so"
533  ldflags = [ "-Wl,--hash-style=sysv" ]
534  subsystem_name = "musl"
535  part_name = "libc-gtest-lib"
536}
537
538ohos_shared_library("dlopen_global") {
539  include_dirs = [ "." ]
540  sources = [ "dlopen_common.c" ]
541  output_name = "dlopen_global"
542  output_extension = "so"
543  ldflags = [ "-Wl,-z,global" ]
544  subsystem_name = "musl"
545  part_name = "libc-gtest-lib"
546}
547
548ohos_shared_library("dlopen_rpath") {
549  include_dirs = [ "." ]
550  sources = [ "dlopen_005.c" ]
551  output_name = "dlopen_rpath"
552  output_extension = "so"
553  deps = [
554    ":dlopen_rpath_1",
555    ":dlopen_rpath_2",
556  ]
557  ldflags = [
558    "-Wl,-rpath=${root_libs_dir}/rpath-test/",
559    "-Wl,--enable-new-dtags",
560  ]
561  subsystem_name = "musl"
562  part_name = "libc-gtest-lib"
563}
564
565ohos_shared_library("dlopen_rpath_1") {
566  include_dirs = [ "." ]
567  sources = [ "dlopen_005_1.c" ]
568  output_name = "dlopen_rpath_1"
569  output_extension = "so"
570  deps = [
571    ":dlopen_rpath_1_1",
572    ":dlopen_rpath_1_2",
573  ]
574  ldflags = [ "-Wl,-rpath=${root_libs_dir}/rpath-test/" ]
575  subsystem_name = "musl"
576  part_name = "libc-gtest-lib"
577}
578
579ohos_shared_library("dlopen_rpath_2") {
580  include_dirs = [ "." ]
581  sources = [ "dlopen_005_2.c" ]
582  output_name = "dlopen_rpath_2"
583  output_extension = "so"
584  deps = [ ":dlopen_rpath_2_1" ]
585  ldflags = [ "-Wl,-rpath=${root_libs_dir}/rpath-test/" ]
586  subsystem_name = "musl"
587  part_name = "libc-gtest-lib"
588}
589
590ohos_shared_library("dlopen_rpath_1_1") {
591  include_dirs = [ "." ]
592  sources = [ "dlopen_005_1_1.c" ]
593  output_name = "dlopen_rpath_1_1"
594  output_extension = "so"
595  subsystem_name = "musl"
596  part_name = "libc-gtest-lib"
597}
598
599ohos_shared_library("dlopen_rpath_1_2") {
600  include_dirs = [ "." ]
601  sources = [ "dlopen_005_1_2.c" ]
602  output_name = "dlopen_rpath_1_2"
603  output_extension = "so"
604  subsystem_name = "musl"
605  part_name = "libc-gtest-lib"
606}
607
608ohos_shared_library("dlopen_rpath_2_1") {
609  include_dirs = [ "." ]
610  sources = [ "dlopen_005_2_1.c" ]
611  output_name = "dlopen_rpath_2_1"
612  output_extension = "so"
613  subsystem_name = "musl"
614  part_name = "libc-gtest-lib"
615}
616
617ohos_shared_library("dlopen_common_close") {
618  include_dirs = [ "." ]
619  sources = [ "dlopen_common.c" ]
620  output_name = "dlopen_common_close"
621  output_extension = "so"
622  subsystem_name = "musl"
623  part_name = "libc-gtest-lib"
624}
625
626ohos_shared_library("ldso_dlclose_test_a") {
627  include_dirs = [ "." ]
628  sources = [ "ldso_dlclose_test_a.c" ]
629  deps = [
630    ":ldso_dlclose_test_b",
631    ":ldso_dlclose_test_c",
632  ]
633  output_name = "ldso_dlclose_test_a"
634  output_extension = "so"
635  subsystem_name = "musl"
636  part_name = "libc-gtest-lib"
637}
638
639ohos_shared_library("ldso_dlclose_test_b") {
640  include_dirs = [ "." ]
641  sources = [ "ldso_dlclose_test_b.c" ]
642  output_name = "ldso_dlclose_test_b"
643  output_extension = "so"
644  subsystem_name = "musl"
645  part_name = "libc-gtest-lib"
646}
647
648ohos_shared_library("ldso_dlclose_test_c") {
649  include_dirs = [ "." ]
650  sources = [ "ldso_dlclose_test_c.c" ]
651  deps = [ ":ldso_dlclose_test_b" ]
652  output_name = "ldso_dlclose_test_c"
653  output_extension = "so"
654  subsystem_name = "musl"
655  part_name = "libc-gtest-lib"
656}
657
658ohos_shared_library("ldso_thread_test") {
659  include_dirs = [ "." ]
660  sources = [ "ldso_thread_test.cpp" ]
661  output_name = "ldso_thread_test"
662  output_extension = "so"
663  subsystem_name = "musl"
664  part_name = "libc-gtest-lib"
665}
666
667ohos_shared_library("ldso_thread_test_1") {
668  include_dirs = [ "." ]
669  sources = [ "ldso_thread_test_1.cpp" ]
670  output_name = "ldso_thread_test_1"
671  output_extension = "so"
672  subsystem_name = "musl"
673  part_name = "libc-gtest-lib"
674}
675
676ohos_shared_library("ldso_thread_test_2") {
677  include_dirs = [ "." ]
678  sources = [ "ldso_thread_test_2.cpp" ]
679  output_name = "ldso_thread_test_2"
680  output_extension = "so"
681  deps = [
682    ":ldso_thread_test",
683    ":ldso_thread_test_1",
684  ]
685  subsystem_name = "musl"
686  part_name = "libc-gtest-lib"
687}
688
689ohos_shared_library("dlopen_common_relro") {
690  include_dirs = [ "." ]
691  sources = [ "dlopen_common.c" ]
692  output_name = "dlopen_common_relro"
693  output_extension = "so"
694  ldflags = [ "-Wl,-z,relro" ]
695  subsystem_name = "musl"
696  part_name = "libc-gtest-lib"
697}
698
699ohos_shared_library("ldso_relro_test") {
700  include_dirs = [ "." ]
701  sources = [ "ldso_relro_test.c" ]
702  output_name = "ldso_relro_test"
703  output_extension = "so"
704  deps = [ ":dlopen_common" ]
705  ldflags = [ "-Wl,-z,relro" ]
706  subsystem_name = "musl"
707  part_name = "libc-gtest-lib"
708}
709
710ohos_shared_library("ldso_relro_recursive_test") {
711  include_dirs = [ "." ]
712  sources = [ "ldso_relro_recursive_test.c" ]
713  output_name = "ldso_relro_recursive_test"
714  output_extension = "so"
715  deps = [ ":ldso_relro_test" ]
716  ldflags = [ "-Wl,-z,relro" ]
717  subsystem_name = "musl"
718  part_name = "libc-gtest-lib"
719}
720
721ohos_shared_library("ldso_norelro_test") {
722  include_dirs = [ "." ]
723  sources = [ "ldso_relro_test.c" ]
724  output_name = "ldso_norelro_test"
725  output_extension = "so"
726  deps = [ ":dlopen_common" ]
727  ldflags = [ "-Wl,-z,norelro" ]
728  subsystem_name = "musl"
729  part_name = "libc-gtest-lib"
730}
731
732ohos_shared_library("ldso_ns_root") {
733  include_dirs = [ "." ]
734  sources = [ "ldso_ns_root.c" ]
735  output_name = "ldso_ns_root"
736  output_extension = "so"
737  deps = [
738    ":ldso_ns_one",
739    ":ldso_ns_two",
740  ]
741  subsystem_name = "musl"
742  part_name = "libc-gtest-lib"
743}
744
745ohos_shared_library("ldso_ns_one") {
746  include_dirs = [ "." ]
747  sources = [ "ldso_ns_one.c" ]
748  output_name = "ldso_ns_one"
749  output_extension = "so"
750  deps = [ ":ldso_ns_one_impl" ]
751  subsystem_name = "musl"
752  part_name = "libc-gtest-lib"
753}
754
755ohos_shared_library("ldso_ns_one_impl") {
756  include_dirs = [ "." ]
757  sources = [ "ldso_ns_one_impl.c" ]
758  output_name = "ldso_ns_one_impl"
759  output_extension = "so"
760  subsystem_name = "musl"
761  part_name = "libc-gtest-lib"
762}
763
764ohos_shared_library("ldso_ns_two") {
765  include_dirs = [ "." ]
766  sources = [ "ldso_ns_two.c" ]
767  output_name = "ldso_ns_two"
768  output_extension = "so"
769  subsystem_name = "musl"
770  part_name = "libc-gtest-lib"
771}
772
773ohos_shared_library("ldso_ns_no_symbol") {
774  include_dirs = [ "." ]
775  sources = [ "ldso_ns_no_symbol.c" ]
776  output_name = "ldso_ns_no_symbol"
777  output_extension = "so"
778  ldflags = [ "-Wl,--allow-shlib-undefined" ]
779  subsystem_name = "musl"
780  part_name = "libc-gtest-lib"
781}
782
783ohos_shared_library("ldso_ns_test_permitted_root") {
784  include_dirs = [ "." ]
785  sources = [ "ldso_ns_root.c" ]
786  output_name = "ldso_ns_test_permitted_root"
787  output_extension = "so"
788  deps = [
789    ":ldso_ns_one",
790    ":ldso_ns_two_impl",
791  ]
792  ldflags = [
793    "-Wl,-rpath=${root_libs_dir}/namespace_two_impl_libs/",
794    "-Wl,--enable-new-dtags",
795  ]
796  subsystem_name = "musl"
797  part_name = "libc-gtest-lib"
798}
799
800ohos_shared_library("ldso_ns_two_impl") {
801  include_dirs = [ "." ]
802  sources = [ "ldso_ns_two.c" ]
803  output_name = "ldso_ns_two_impl"
804  output_extension = "so"
805  subsystem_name = "musl"
806  part_name = "libc-gtest-lib"
807}
808
809ohos_shared_library("dlopen_zip_test") {
810  include_dirs = [ "." ]
811  sources = [ "dlopen_common.c" ]
812  output_name = "dlopen_zip_test"
813  output_extension = "so"
814  subsystem_name = "musl"
815  part_name = "libc-gtest-lib"
816}
817
818action("copy_zip_lib") {
819  script = "//third_party/musl/scripts/copy_libs.sh"
820
821  libs_dir = []
822  if ("${musl_arch}" == "arm") {
823    libs_dir += [ "//third_party/musl/libc-test/src/functionalext/supplement/ldso/ldso_gtest/libs/ziplibs_32" ]
824  } else if ("${musl_arch}" == "aarch64") {
825    libs_dir += [ "//third_party/musl/libc-test/src/functionalext/supplement/ldso/ldso_gtest/libs/ziplibs_64" ]
826  }
827
828  target_dir = [ "${root_out_dir}/musl/libc-gtest-lib" ]
829
830  outputs = [ "$target_out_dir" ]
831
832  args = [ "-i" ] + rebase_path(libs_dir)
833  args += [ "-o" ] + rebase_path(target_dir)
834
835  deps = [
836    ":dlopen_common",
837    ":dlopen_rpath",
838  ]
839}
840
841ohos_shared_library("ldso_dlsym_dependent") {
842  include_dirs = [ "." ]
843
844  sources = [ "ldso_dlsym_dependent.c" ]
845
846  output_name = "ldso_dlsym_dependent"
847
848  output_extension = "so"
849
850  deps = [ ":ldso_dlsym_dependent_impl" ]
851
852  subsystem_name = "musl"
853  part_name = "libc-gtest-lib"
854}
855
856ohos_shared_library("ldso_dlsym_dependent_impl") {
857  include_dirs = [ "." ]
858
859  sources = [ "ldso_dlsym_dependent_impl.c" ]
860
861  output_name = "ldso_dlsym_dependent_impl"
862
863  output_extension = "so"
864
865  subsystem_name = "musl"
866  part_name = "libc-gtest-lib"
867}
868
869ohos_shared_library("empty") {
870  include_dirs = [ "." ]
871
872  sources = [ "ldso_empty.c" ]
873
874  output_name = "empty"
875
876  output_extension = "so"
877
878  subsystem_name = "musl"
879  part_name = "libc-gtest-lib"
880}
881
882ohos_shared_library("dlsym_get_answer") {
883  include_dirs = [ "." ]
884
885  sources = [ "ldso_dlsym_get_answer.c" ]
886
887  output_name = "dlsym_get_answer"
888
889  deps = [ ":dlsym_get_symbol_impl" ]
890
891  output_extension = "so"
892
893  subsystem_name = "musl"
894  part_name = "libc-gtest-lib"
895}
896
897ohos_shared_library("dlsym_get_symbol_impl") {
898  include_dirs = [ "." ]
899
900  sources = [ "ldso_dlsym_get_symbol_impl.c" ]
901
902  output_name = "dlsym_get_symbol_impl"
903
904  output_extension = "so"
905
906  subsystem_name = "musl"
907  part_name = "libc-gtest-lib"
908}
909
910ohos_shared_library("dlsym_get_symbol") {
911  include_dirs = [ "." ]
912
913  sources = [ "ldso_dlsym_get_symbol.c" ]
914
915  output_name = "dlsym_get_symbol"
916
917  output_extension = "so"
918
919  deps = [ ":dlsym_get_symbol_impl" ]
920
921  subsystem_name = "musl"
922  part_name = "libc-gtest-lib"
923}
924
925ohos_shared_library("test_so") {
926  include_dirs = [ "." ]
927
928  sources = [ "ldso_test_so.c" ]
929
930  output_name = "test_so"
931
932  output_extension = "so"
933
934  cflags = [ "-Wl,-Bstatic -lempty.so" ]
935
936  subsystem_name = "musl"
937  part_name = "libc-gtest-lib"
938}
939
940ohos_shared_library("dlsym_weak_func") {
941  include_dirs = [ "." ]
942
943  sources = [ "ldso_dlsym_weak_func.c" ]
944
945  output_name = "dlsym_weak_func"
946
947  output_extension = "so"
948
949  subsystem_name = "musl"
950  part_name = "libc-gtest-lib"
951}
952
953ohos_shared_library("dlsym_weak_func_undefined") {
954  include_dirs = [ "." ]
955
956  sources = [ "ldso_dlsym_weak_func_undefined.c" ]
957
958  output_name = "dlsym_weak_func_undefined"
959
960  output_extension = "so"
961
962  subsystem_name = "musl"
963  part_name = "libc-gtest-lib"
964}
965
966ohos_shared_library("dlsym_lib_use_rtld_next") {
967  include_dirs = [ "." ]
968
969  sources = [ "ldso_dlsym_lib_use_rtld_next.c" ]
970
971  output_name = "dlsym_lib_use_rtld_next"
972
973  output_extension = "so"
974
975  subsystem_name = "musl"
976  part_name = "libc-gtest-lib"
977}
978
979ohos_shared_library("dlsym_global_symbol") {
980  include_dirs = [ "." ]
981
982  sources = [ "ldso_dlsym_global_symbol.c" ]
983
984  output_name = "dlsym_global_symbol"
985
986  output_extension = "so"
987
988  ldflags = [
989    "-Wl,-z,global",
990    "-fuse-ld=bfd",
991  ]
992  subsystem_name = "musl"
993  part_name = "libc-gtest-lib"
994}
995
996ohos_shared_library("dlsym_to_use_global_symbol") {
997  include_dirs = [ "." ]
998
999  sources = [ "ldso_dlsym_to_use_global_symbol.c" ]
1000
1001  output_name = "dlsym_to_use_global_symbol"
1002
1003  output_extension = "so"
1004
1005  subsystem_name = "musl"
1006  part_name = "libc-gtest-lib"
1007}
1008
1009ohos_shared_library("dlsym_symbol_v1") {
1010  include_dirs = [ "." ]
1011
1012  sources = [ "ldso_dlsym_symbol_v1.c" ]
1013
1014  output_name = "dlsym_symbol_v1"
1015
1016  output_extension = "so"
1017
1018  version_script = "dlsym_symbol_v1.map"
1019
1020  subsystem_name = "musl"
1021  part_name = "libc-gtest-lib"
1022}
1023
1024ohos_shared_library("dlsym_symbol_version_2") {
1025  include_dirs = [ "." ]
1026
1027  sources = [ "ldso_dlsym_symbol_v2.c" ]
1028
1029  output_name = "dlsym_symbol_version_2"
1030
1031  output_extension = "so"
1032
1033  version_script = "dlsym_symbol_v2.map"
1034
1035  subsystem_name = "musl"
1036  part_name = "libc-gtest-lib"
1037}
1038
1039ohos_shared_library("dlsym_symbol_version_3") {
1040  include_dirs = [ "." ]
1041
1042  sources = [ "ldso_dlsym_symbol_v3.c" ]
1043
1044  output_name = "dlsym_symbol_version_3"
1045
1046  version_script = "dlsym_symbol_v3.map"
1047
1048  output_extension = "so"
1049
1050  subsystem_name = "musl"
1051  part_name = "libc-gtest-lib"
1052}
1053
1054ohos_shared_library("dlsym_symbol_impl_v1") {
1055  include_dirs = [ "." ]
1056
1057  sources = [ "ldso_dlsym_symbol_impl.c" ]
1058
1059  output_name = "dlsym_symbol_impl_v1"
1060
1061  output_extension = "so"
1062
1063  deps = [ ":dlsym_symbol_v1" ]
1064
1065  subsystem_name = "musl"
1066  part_name = "libc-gtest-lib"
1067}
1068
1069ohos_shared_library("dlsym_symbol_impl_v2") {
1070  include_dirs = [ "." ]
1071
1072  sources = [ "ldso_dlsym_symbol_impl.c" ]
1073
1074  output_name = "dlsym_symbol_impl_v2"
1075
1076  output_extension = "so"
1077
1078  deps = [ ":dlsym_symbol_version_2" ]
1079
1080  subsystem_name = "musl"
1081  part_name = "libc-gtest-lib"
1082}
1083
1084ohos_shared_library("dlsym_symbol_v2_second") {
1085  include_dirs = [ "." ]
1086
1087  sources = [ "ldso_dlsym_symbol_v2_second.c" ]
1088
1089  output_name = "dlsym_symbol_v2_second"
1090
1091  output_extension = "so"
1092
1093  version_script = "dlsym_symbol_v2_second.map"
1094
1095  subsystem_name = "musl"
1096  part_name = "libc-gtest-lib"
1097}
1098
1099ohos_shared_library("dlsym_symbol_v2_relro") {
1100  include_dirs = [ "." ]
1101
1102  sources = [ "ldso_dlsym_symbol_impl.c" ]
1103
1104  output_name = "dlsym_symbol_v2_relro"
1105
1106  output_extension = "so"
1107
1108  deps = [
1109    ":dlsym_symbol_v2_second",
1110    ":dlsym_symbol_version_2",
1111  ]
1112
1113  subsystem_name = "musl"
1114  part_name = "libc-gtest-lib"
1115}
1116
1117ohos_shared_library("dlsym_symbol_v3_relro") {
1118  include_dirs = [ "." ]
1119
1120  sources = [ "ldso_dlsym_symbol_impl.c" ]
1121
1122  output_name = "dlsym_symbol_v3_relro"
1123
1124  output_extension = "so"
1125
1126  deps = [
1127    ":dlsym_symbol_version_3",
1128    ":dlsym_symbol_version_empty",
1129  ]
1130
1131  subsystem_name = "musl"
1132  part_name = "libc-gtest-lib"
1133}
1134
1135ohos_shared_library("dlsym_symbol_version_empty") {
1136  include_dirs = [ "." ]
1137
1138  sources = [ "ldso_empty.c" ]
1139
1140  output_name = "dlsym_symbol_version_empty"
1141
1142  output_extension = "so"
1143
1144  ldflags = [ "-Wl,-soname,dlsym_symbol_v2_second.so" ]
1145
1146  subsystem_name = "musl"
1147  part_name = "libc-gtest-lib"
1148}
1149
1150ohos_shared_library("ldso_ns_empty") {
1151  include_dirs = [ "." ]
1152  sources = [ "ldso_empty.c" ]
1153  output_name = "ldso_ns_empty"
1154  output_extension = "so"
1155  subsystem_name = "musl"
1156  part_name = "libc-gtest-lib"
1157}
1158
1159ohos_shared_library("ldso_cfi_lib") {
1160  include_dirs = [ "." ]
1161  sources = [ "ldso_cfi_lib.c" ]
1162  output_name = "ldso_cfi_lib"
1163  output_extension = "so"
1164  subsystem_name = "musl"
1165  part_name = "libc-gtest-lib"
1166}
1167
1168ohos_shared_library("ldso_cfi_lib_exit") {
1169  include_dirs = [ "." ]
1170  sources = [ "ldso_cfi_lib.c" ]
1171  output_name = "ldso_cfi_lib_exit"
1172  output_extension = "so"
1173  subsystem_name = "musl"
1174  part_name = "libc-gtest-lib"
1175}
1176
1177ohos_shared_library("ldso_cxa_thread_atexit_test") {
1178  include_dirs = [ "." ]
1179  sources = [ "ldso_cxa_thread_atexit_test_B.cpp" ]
1180  output_name = "ldso_cxa_thread_atexit_test"
1181  output_extension = "so"
1182  subsystem_name = "musl"
1183  part_name = "libc-gtest-lib"
1184}
1185
1186ohos_shared_library("ldso_cxa_thread_atexit_test_A") {
1187  include_dirs = [ "." ]
1188  sources = [ "ldso_cxa_thread_atexit_test_A.cpp" ]
1189  output_name = "ldso_cxa_thread_atexit_test_A"
1190  output_extension = "so"
1191  deps = [
1192    ":ldso_cxa_thread_atexit_test_B",
1193    ":ldso_cxa_thread_atexit_test_C",
1194  ]
1195  subsystem_name = "musl"
1196  part_name = "libc-gtest-lib"
1197}
1198
1199ohos_shared_library("ldso_cxa_thread_atexit_test_B") {
1200  include_dirs = [ "." ]
1201  sources = [ "ldso_cxa_thread_atexit_test_B.cpp" ]
1202  output_name = "ldso_cxa_thread_atexit_test_B"
1203  output_extension = "so"
1204  deps = [ ":ldso_cxa_thread_atexit_test_C" ]
1205  defines = [ "TEST_FOR_DLCLOSE" ]
1206  subsystem_name = "musl"
1207  part_name = "libc-gtest-lib"
1208}
1209
1210ohos_shared_library("ldso_cxa_thread_atexit_test_C") {
1211  include_dirs = [ "." ]
1212  sources = [ "ldso_cxa_thread_atexit_test_C.cpp" ]
1213  output_name = "ldso_cxa_thread_atexit_test_C"
1214  output_extension = "so"
1215  subsystem_name = "musl"
1216  part_name = "libc-gtest-lib"
1217}
1218