buildworld doesn't like -O2
Andreas Hauser
andy-freebsd at splashground.de
Wed Dec 10 12:46:46 PST 2003
dgerow wrote @ Wed, 10 Dec 2003 01:13:29 -0500:
> Thus spake Steve Kargl (sgk at troutmask.apl.washington.edu) [09/12/03 22:59]:
> : -j# obfuscates where the actual error occurs unless you have
> : enough make-fu to read the log. The first step one should
> : take when this type of error happens is a plain "make buildworld".
> : The next step is run cvsup again to see if the problem has
> : been fixed. Then, report the error to freebsd-current.
>
> Okay, after some playing around, it turns out that something in the PAM code
> really doesn't like -O2 optimization -- I have CFLAGS=-O2 -pipe, and this is
> what I see:
>
> ===> lib/libpam/modules/pam_echo
> cc -O2 -pipe -march=pentiumpro \
> -I/usr/src/lib/libpam/modules/pam_echo/../../../../contrib/openpam/include \
> -I/usr/src/lib/libpam/modules/pam_echo/../../libpam -Wsystem-headers \
> -Werror -Wall -Wno-format-y2k -W -Wstrict-prototypes \
> -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual \
> -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wno-uninitialized -c \
> /usr/src/lib/libpam/modules/pam_echo/pam_echo.c \
> /usr/src/lib/libpam/modules/pam_echo/pam_echo.c: In function `_pam_echo':
> /usr/src/lib/libpam/modules/pam_echo/pam_echo.c:92: warning:
> dereferencing type-punned pointer will break strict-aliasing rules
> *** Error code 1
The code seems to violate strict aliasing rules.
Somehow gcc only warns when optimizing.
There is a qr about it
http://www.freebsd.org/cgi/query-pr.cgi?pr=55774
but it was closed by DES saying "Not a problem report".
I don't understand why, but i want my system compiled -Os,
so I have a local patch that uses some more variables and casts.
Andreas Jäger also produced a patch for GNU libc using unions:
http://sources.redhat.com/ml/libc-hacker/2002-12/msg00071.html
Andy
More information about the freebsd-current
mailing list