mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
When building with GCC, use -fno-strict-aliasing
GCC's interpretation of the C99 aliasing rules, to be charitable, creates a dialect of C intended for a better programmers than I am certain of my ability to be in all times. I just spent 2 hours tracking down a platform-hyperspecific libevent bug that turned out to be because of this, and darned if I ever want to do *that* again. One of Linus's recent rants will give you a picture of why GCC's behavior here can lead to fun surprises in your binaries: http://lwn.net/Articles/316126/ svn:r18351
This commit is contained in:
parent
ec9c059757
commit
676cfbbf84
@ -32,6 +32,11 @@ Changes in version 0.2.1.12-alpha - 2009-02-??
|
|||||||
- Add a 'getinfo status/clients-seen' controller command, in case
|
- Add a 'getinfo status/clients-seen' controller command, in case
|
||||||
controllers want to hear clients_seen events but connect late.
|
controllers want to hear clients_seen events but connect late.
|
||||||
|
|
||||||
|
o Build changes
|
||||||
|
- Disable GCC's strict alias optimization by default, to avoid the
|
||||||
|
likelihood of its introducing subtle bugs whenever our code violates
|
||||||
|
the letter of C99's alias rules.
|
||||||
|
|
||||||
|
|
||||||
Changes in version 0.2.1.11-alpha - 2009-01-20
|
Changes in version 0.2.1.11-alpha - 2009-01-20
|
||||||
o Security fixes:
|
o Security fixes:
|
||||||
|
@ -754,8 +754,11 @@ AC_SUBST(LOCALSTATEDIR)
|
|||||||
|
|
||||||
# Set CFLAGS _after_ all the above checks, since our warnings are stricter
|
# Set CFLAGS _after_ all the above checks, since our warnings are stricter
|
||||||
# than autoconf's macros like.
|
# than autoconf's macros like.
|
||||||
if test "$ac_cv_c_compiler_gnu" = yes; then
|
if test "$GCC" = yes; then
|
||||||
CFLAGS="$CFLAGS -Wall -g -O2"
|
CFLAGS="$CFLAGS -Wall -g -O2"
|
||||||
|
# Disable GCC's strict aliasing checks. They are an hours-to-debug
|
||||||
|
# accident waiting to happen.
|
||||||
|
CFLAGS="$CFLAGS -fno-strict-aliasing"
|
||||||
else
|
else
|
||||||
CFLAGS="$CFLAGS -g -O"
|
CFLAGS="$CFLAGS -g -O"
|
||||||
enable_gcc_warnings=no
|
enable_gcc_warnings=no
|
||||||
|
Loading…
Reference in New Issue
Block a user