HomeFreeBSD

lib{c,sys}: stop exposing errno symbol

Description

lib{c,sys}: stop exposing errno symbol

Officially since C11 (and in reality FreeBSD since 3.0 with commit
1b46cb523df3) errno has been defined to be a macro. Rename the symbol
to __libsys_errno and move it to FBSDprivate_1.0 and confine it entierly
to libsys for use by libthr. Add a FBSD_1.0 compat symbol for existing
binaries that were incorrectly linked to the errno symbol during
libc.so.7's lifetime.

This deliberately breaks linking software that directly links to errno.
Such software is broken and will fail in surprising ways if it becomes
threaded (e.g., if it triggers loading of a pam or nss module that
uses threads.)

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D46780

Details

Provenance
brooksAuthored on Fri, Sep 27, 7:27 PM
Reviewer
kib
Differential Revision
D46780: lib{c,sys}: stop exposing errno symbol
Parents
rG0b325167f60d: LinuxKPI: 802.11: move functions between header files
Branches
Unknown
Tags
Unknown