[llvm-bugs] [Bug 38630] New: c++fs tests are failing due to linker error

via llvm-bugs llvm-bugs at lists.llvm.org
Sat Aug 18 16:58:48 PDT 2018


https://bugs.llvm.org/show_bug.cgi?id=38630

            Bug ID: 38630
           Summary: c++fs tests are failing due to linker error
           Product: libc++
           Version: 7.0
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: release blocker
          Priority: P
         Component: All Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: geek4civic at gmail.com
                CC: eric at efcs.ca, llvm-bugs at lists.llvm.org,
                    mclow.lists at gmail.com
            Blocks: 38406

For example;
FAIL: libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp
(2231 of 5860)

/usr/bin/ld.lld: error: undefined symbol: clock_gettime
>>> referenced by operations.cpp
>>>               operations.cpp.o:(std::__1::__fs::filesystem::_FilesystemClock::now()) in archive lib/libc++fs.a

Adding -lrt for c++fs can resolve the issue.



(Note, a few tests are failing due to lack of functionality in centos6)
Failing Tests (109):
    libc++ ::
libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.sh.cpp
    libc++ ::
libcxx/input.output/filesystems/class.path/path.itr/iterator_db.pass.cpp
    libc++ :: std/depr/depr.c.headers/uchar_h.pass.cpp
    libc++ ::
std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp
    libc++ ::
std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy_assign.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.cons/default.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.cons/default_const.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.cons/move.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.cons/move_assign.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.mods/assign.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.mods/refresh.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.obs/comparisons.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.obs/path.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.obs/status.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_iterator/directory_iterator.members/increment.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp
    libc++ ::
std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp
    libc++ ::
std/input.output/filesystems/class.filesystem_error/filesystem_error.members.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.append.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.construct/source.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.decompose/path.decompose.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.gen/lexically_normal.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.generic.obs/named_overloads.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.modifiers/clear.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.modifiers/remove_filename.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.modifiers/replace_extension.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.modifiers/replace_filename.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.modifiers/swap.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.native.obs/c_str.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.native.obs/named_overloads.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.native.obs/native.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.native.obs/operator_string.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.nonmember/append_op.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.nonmember/path.factory.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp
    libc++ ::
std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp
    libc++ ::
std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp
    libc++ ::
std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp
    libc++ ::
std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
    libc++ ::
std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp
    libc++ ::
std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp
    libc++ ::
std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
    libc++ ::
std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp
    libc++ ::
std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp
    libc++ ::
std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp
    libc++ ::
std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
    libc++ ::
std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.absolute/absolute.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp
    libc++ :: std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.current_path/current_path.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.file_size/file_size.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.remove/remove.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.status_known/status_known.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
    libc++ ::
std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=38406
[Bug 38406] [meta] 7.0.0 Release Blockers
-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20180818/5e1cfcab/attachment-0001.html>


More information about the llvm-bugs mailing list