HomeFreeBSD

cdefs: Add __deprecated(message) function attribute macro

Description

cdefs: Add __deprecated(message) function attribute macro

The legacy version of GCC4 currently in base does not support the
parameterized form of this function attribute, as recent introduced in
stdlib.h (r355747).

As we have done for other function attributes with similar compatibility
problems, add a version-compatibile definition in sys/cdefs.h. Note that
Clang defines itself to be GCC 4, so one must check for clang in
addition to GNUC version. On legacy GCC 4, the macro expands to just
the deprecated attribute; on modern GCC or Clang, the macro expands to
the parameterized variant with the message.

Ignoring legacy or unsupported compilers, the macro is also beneficial in
that it is a bit more ergonomic than the full
attribute((deprecated())) boilerplate.

Reported by: CI (but not tinderbox); imp and others
Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D22817

Details

Provenance
cemAuthored on
Reviewer
imp
Differential Revision
D22817: cdefs: Add __deprecated(message) function attribute macro
Parents
rS355758: Update the mount_nfs.8 man page to include NFSv4.2.
Branches
Unknown
Tags
Unknown