Page MenuHomeFreeBSD

Make std::experimental::filesystem work.
AbandonedPublic

Authored by ed on May 21 2017, 6:23 AM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Nov 10, 3:17 PM
Unknown Object (File)
Fri, Oct 31, 11:36 AM
Unknown Object (File)
Fri, Oct 31, 5:54 AM
Unknown Object (File)
Tue, Oct 21, 4:06 PM
Unknown Object (File)
Tue, Oct 21, 4:06 PM
Unknown Object (File)
Tue, Oct 21, 3:53 AM
Unknown Object (File)
Oct 2 2025, 4:17 AM
Unknown Object (File)
Sep 30 2025, 1:21 AM
Subscribers

Details

Reviewers
dim
emaste
Summary

The libc++ Makefile installs all of the header files under
experimental/*, but doesn't add the respective source files to SRCS.
This means compilation of sources that make use of these classes works,
but linkage fails.

Test Plan

I can now link a piece of software I'm writing that makes use of this
API.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Errors
SeverityLocationCodeMessage
Errorlib/libc++/Makefile:NAME1Bad Filename
Unit
No Test Coverage
Build Status
Buildable 9415
Build 9873: arc lint + arc unit

Event Timeline

dim requested changes to this revision.May 21 2017, 10:00 AM

No, not like this, please. The experimental sources are unstable, and there is no guarantee whatsoever that anything in there will stay as it is. This is also why I never added them to our libc++.so, to discourage people from actually using them. I have actively tried to avoid adding the experimental features for now, as I don't think these have a place in our base system. But if there really is some use for them, I will not stand in the way, of course.

Upstream compiles these into a separate libc++experimental.a, so specifically *not* in any shared library. Therefore, to be able to use the experimental features, you will have to pass an additional -lc++experimental option on the link command line, and all experimental features will be statically linked into your application.

If we do this, we should do it in a similar way.

This revision now requires changes to proceed.May 21 2017, 10:00 AM