<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - c++fs tests are failing due to linker error"
href="https://bugs.llvm.org/show_bug.cgi?id=38630">38630</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>c++fs tests are failing due to linker error
</td>
</tr>
<tr>
<th>Product</th>
<td>libc++
</td>
</tr>
<tr>
<th>Version</th>
<td>7.0
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>release blocker
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>All Bugs
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedclangbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>geek4civic@gmail.com
</td>
</tr>
<tr>
<th>CC</th>
<td>eric@efcs.ca, llvm-bugs@lists.llvm.org, mclow.lists@gmail.com
</td>
</tr>
<tr>
<th>Blocks</th>
<td>38406
</td>
</tr></table>
<p>
<div>
<pre>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
<span class="quote">>>> referenced by operations.cpp
>>> operations.cpp.o:(std::__1::__fs::filesystem::_FilesystemClock::now()) in archive lib/libc++fs.a</span >
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</pre>
</div>
</p>
<div id="referenced">
<hr style="border: 1px dashed #969696">
<b>Referenced Bugs:</b>
<ul>
<li>
[<a class="bz_bug_link
bz_status_NEW "
title="NEW - [meta] 7.0.0 Release Blockers"
href="https://bugs.llvm.org/show_bug.cgi?id=38406">Bug 38406</a>] [meta] 7.0.0 Release Blockers
</li>
</ul>
</div>
<br>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>