Page MenuHomePhabricator

[libc++] Populated library dependencies recursively for linker script
Needs RevisionPublic

Authored by ismailp on Apr 13 2020, 11:18 AM.

Details

Reviewers
MikeDvorskiy
rodgert
ldionne
Group Reviewers
Restricted Project
Summary

When LIBCXX_ENABLE_PARALLEL_ALGORITHMS is set to ON, libc++ will try
to link with pstl::ParallelSTL. However, pstl::ParallelSTL is an
(alias to an) interface library, and OUTPUT_NAME property isn't white
listed on such targets. pstl::ParallelSTL uses TBB::tbb as an
interface library. Therefore, libc++ must link with whatever TBB::tbb
points at.

Diff Detail

Unit TestsFailed

TimeTest
1,070 mslibc++.libcxx/algorithms::Unknown Unit Message ("")
Script: -- : 'COMPILED WITH'; /usr/bin/clang++ /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/libcxx/algorithms/debug_less.pass.cpp -v -Werror=thread-safety -std=c++2a -include /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support/nasty_macros.h -nostdinc++ -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/include -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/include/c++build -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support -ftemplate-depth=270 -L/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/./lib -Wl,-rpath,/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/./lib -nodefaultlibs -lc++experimental -lc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc -o /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/test/libcxx/algorithms/Output/debug_less.pass.cpp.tmp.exe
1,120 mslibc++.libcxx/algorithms/alg_modifying_operations/alg_random_shuffle::Unknown Unit Message ("")
Script: -- : 'COMPILED WITH'; /usr/bin/clang++ /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/libcxx/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.cxx1z.pass.cpp -v -Werror=thread-safety -std=c++2a -include /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support/nasty_macros.h -nostdinc++ -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/include -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/include/c++build -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support -ftemplate-depth=270 -D_LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS -L/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/./lib -Wl,-rpath,/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/./lib -nodefaultlibs -lc++experimental -lc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc -o /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/test/libcxx/algorithms/alg.modifying.operations/alg.random.shuffle/Output/random_shuffle.cxx1z.pass.cpp.tmp.exe
780 mslibc++.libcxx/atomics/atomics_align::Unknown Unit Message ("")
Script: -- : 'RUN: at line 12'; /usr/bin/clang++ -o /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/test/libcxx/atomics/atomics.align/Output/align.pass.sh.cpp.tmp.exe /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/libcxx/atomics/atomics.align/align.pass.sh.cpp -v -Werror=thread-safety -std=c++2a -include /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support/nasty_macros.h -nostdinc++ -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/include -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/include/c++build -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support -ftemplate-depth=270 -L/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/./lib -Wl,-rpath,/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/./lib -nodefaultlibs -lc++experimental -lc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc -latomic
1,300 mslibc++.libcxx/containers/associative::Unknown Unit Message ("")
Script: -- : 'COMPILED WITH'; /usr/bin/clang++ /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/libcxx/containers/associative/non_const_comparator.pass.cpp -v -Werror=thread-safety -std=c++2a -include /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support/nasty_macros.h -nostdinc++ -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/include -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/include/c++build -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support -ftemplate-depth=270 -L/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/./lib -Wl,-rpath,/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/./lib -nodefaultlibs -lc++experimental -lc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc -o /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/test/libcxx/containers/associative/Output/non_const_comparator.pass.cpp.tmp.exe
1,200 mslibc++.libcxx/containers/associative::Unknown Unit Message ("")
Script: -- : 'COMPILED WITH'; /usr/bin/clang++ /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/libcxx/containers/associative/tree_balance_after_insert.pass.cpp -v -Werror=thread-safety -std=c++2a -include /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support/nasty_macros.h -nostdinc++ -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/include -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/include/c++build -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support -ftemplate-depth=270 -L/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/./lib -Wl,-rpath,/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/./lib -nodefaultlibs -lc++experimental -lc++ -lm -lgcc_s -lgcc -lpthread -lc -lgcc_s -lgcc -o /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/test/libcxx/containers/associative/Output/tree_balance_after_insert.pass.cpp.tmp.exe
View Full Test Results (3,179 Failed)

Event Timeline

ismailp created this revision.Apr 13 2020, 11:18 AM
Herald added a project: Restricted Project. · View Herald Transcript
Herald added a reviewer: Restricted Project. · View Herald Transcript
Herald added a subscriber: mgorny. · View Herald Transcript
ldionne requested changes to this revision.Apr 13 2020, 1:25 PM

Would creating a non-interface library for the PSTL solve the problem? I think so, right? If so, this should be preferred as we're going to need some non header-only content anyway when implementing other backends.

This revision now requires changes to proceed.Apr 13 2020, 1:25 PM
ismail added a subscriber: ismail.Apr 27 2020, 9:13 AM