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