> > > Would it make sense to tell the GCC people that
> > >    - the '-fsanitize=signed-integer-overflow 
> > > -fno-sanitize-recover=signed-integer-overflow'
> > >      options are practically useless when they force a dependency towards 
> > > libstdc++,
> 
> Reported as <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98165>.

The solution to this problem is to use the option '-static-libubsan'.

I'm expanding the documentation a bit:


2020-12-06  Bruno Haible  <br...@clisp.org>

        doc: Add more details regarding the undefined behaviour sanitizer.
        * doc/gnulib-readme.texi (High Quality): Describe
        -fsanitize-undefined-trap-on-error better.

diff --git a/doc/gnulib-readme.texi b/doc/gnulib-readme.texi
index a2a5962..cde6d7a 100644
--- a/doc/gnulib-readme.texi
+++ b/doc/gnulib-readme.texi
@@ -546,8 +546,21 @@ for your compiler.  For example:
 @end example
 
 @noindent
-Here, @code{-D_FORTIFY_SOURCE=2} enables extra security hardening
-checks in the GNU C library, @code{-fsanitize=undefined} enables GCC's
-undefined behavior sanitizer (@code{ubsan}), and
-@code{-fsanitize-undefined-trap-on-error} prevents @code{ubsan}'s
-linking to unnecessary libraries like @code{libstdc++}.
+Here:
+
+@itemize @bullet
+@item
+@code{-D_FORTIFY_SOURCE=2} enables extra security hardening checks in
+the GNU C library.
+@item
+@code{-fsanitize=undefined} enables GCC's undefined behavior sanitizer
+(@code{ubsan}), and
+@item
+@code{-fsanitize-undefined-trap-on-error} causes @code{ubsan} to
+abort the program (through an ``illegal instruction'' signal).  This
+measure stops exploit attempts and also allows you to debug the issue.
+Without this option, @code{-fsanitize=undefined} causes messages to be
+printed, execution continues after an undefined behavior situation, and
+GCC links the program against @code{libstdc++} (which you can avoid
+through the option @code{-static-libubsan}).
+@end itemize


Reply via email to