This is the mail archive of the mailing list for the libstdc++ project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Enable lightweight checks with _GLIBCXX_ASSERTIONS.

On 14/09/15 11:57 +0200, Florian Weimer wrote:
On 09/10/2015 06:57 PM, Martin Sebor wrote:

There is quite a bit of documentation of _FORTIFY_SOURCE that explains
its effect on user code.

I think there are only random blog articles discussing aspects of it,
most of them slightly incorrect or outdated.

_FORTIFY_SOURCE is a GLIBC feature test macro. It's documented
in <features.h> and mentioned in some of its online manuals.
For example:

or here:

Oh, so there is an out-dated man-page as well. :-/

The fd_set checks added in glibc 2.15 are missing.  That caused some
backslash because some folks were actually abusing FD_SET and related
macros.  Nothing too severe, and in the end, we stood our ground.  I
expect the libstdc++ changes to be similar.

Again, my main argument is that the main users of _FORTIFY_SOURCE are
distributions, and they would inject whatever preprocessor macro enables
the new libstdc++ checks anyway, so saving them that work would be
preferable IMHO.

Would changes like this be suitable for _FORTIFY_SOURCE?

diff --git a/libstdc++-v3/include/std/mutex b/libstdc++-v3/include/std/mutex
index 5e5ced1..074bf26 100644
--- a/libstdc++-v3/include/std/mutex
+++ b/libstdc++-v3/include/std/mutex
     __recursive_mutex_base& operator=(const __recursive_mutex_base&) = delete;
+    // Use an error-checking mutex type when assertions are enabled.
+# else
     __native_type  _M_mutex = __GTHREAD_RECURSIVE_MUTEX_INIT;
+# endif
     __recursive_mutex_base() = default;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]