stringf.cc uses errno and related macros without including <cerrno>.
Their availability is guaranteed only when the corresponding header
is included; transitive exposure is implementation-defined.
Modern libc++ has been progressively reducing incidental transitive
includes as part of its header removal policy (see LLVM libc++ Header
Removal Policy and D132284), making such dependencies brittle.
This change includes <cerrno> explicitly to make the dependency
well-defined. No functional or behavioural change intended.
Approved by: fuz
Signed-off-by: Faraz Vahedi <[email protected]>
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2188
To permit checking the sources out on systems such as Windows with
more restrictive file name requirements, rename the manpage source
files to replace colons with underscrores. Use MANSRC.foo to point
<bsd.man.mk> at the new source file names.
Reviewed by: ivy
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D51794
We should keep the clibs package as small as possible. Currently it
contains some "extra" libraries, but this isn't a good argument for
adding more stuff. Move it to the utilities package (the default for
bsd.lib.mk consumers), since libutil++ is an INTERNALLIB and thus only
installs man pages, so therefore doesn't need to be in FreeBSD-runtime.
Requested by: kib
Reviewed by: ivy, des
Fixes: f4fd2aa07c ("libutil++: Move to clibs")
Differential Revision: https://reviews.freebsd.org/D51898
This library only installs manual pages, so putting it in its own
package means we build a FreeBSD-libutil++-man package but not a
base FreeBSD-libutil++ package. Without a base package, the man
package can't be installed due to the missing dependency.
We don't really need a separate package for a few manpages, so move
it to clibs.
Reviewed by: des
Differential Revision: https://reviews.freebsd.org/D51756
This class wraps the pidfile_* API from libutil. The destructor calls
pidfile_remove() when an object is destroyed. This class is similar
to std::unique_ptr<> in that it retains exclusive ownership of the
pidfh object.
In addition to release and reset methods, write, close, and fileno
methods are provided as wrappers for pidfile_*.
Sponsored by: Chelsio Communications
Pull Request: https://github.com/freebsd/freebsd-src/pull/1794
This class aims to provide a std::unique_ptr<>-like interface in that
it assumes exclusive ownership of a file descriptor. The descriptor
is closed when the object is destroyed.
Sponsored by: Chelsio Communications
Pull Request: https://github.com/freebsd/freebsd-src/pull/1794
- freebsd::FILE_up is a wrapper class for std::unique_ptr<> for FILE
objects which uses a custom deleter that calls fclose().
- freebsd::malloc_up<T> is a wrapper class for std::unique_ptr<> which
uses a custom deleter that calls free(). It is useful for pointers
allocated by malloc() such as strdup().
- The freebsd::stringf() functions return a std::string constructed
using a printf format string.
The current implementation of freebsd::stringf() uses fwopen() where
the write function appends to a std::string.
Sponsored by: Chelsio Communications
Pull Request: https://github.com/freebsd/freebsd-src/pull/1794