gnu/149712: [build] [make.conf] -fno-builtin in CFLAGS will cause
gcc to segfault
Alexander Best
arundel at FreeBSD.org
Mon Aug 16 18:10:04 UTC 2010
>Number: 149712
>Category: gnu
>Synopsis: [build] [make.conf] -fno-builtin in CFLAGS will cause gcc to segfault
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Aug 16 18:10:04 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator: Alexander Best
>Release: 9.0-CURRENT
>Organization:
>Environment:
FreeBSD otaku 9.0-CURRENT FreeBSD 9.0-CURRENT #1 r211163M: Wed Aug 11 11:34:06 CEST 2010 root at otaku:/usr/obj/usr/src/sys/ARUNDEL amd64
>Description:
with the following in my make.conf
CPUTYPE = native
COPTFLAGS = -O0 -pipe -fno-builtin -fno-strict-aliasing -funroll-loops
CFLAGS = -O2 -pipe -fno-strict-aliasing -funroll-loops -fno-builtin
CXXFLAGS += -fconserve-space
buildworld will fail:
--------------------------------------------------------------
>How-To-Repeat:
cd /usr/src && make buildworld
(with CFLAGS = -O2 -pipe -fno-strict-aliasing -funroll-loops -fno-builtin)
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>>> stage 4.2: building libraries
--------------------------------------------------------------
cd /usr/src; MAKEOBJDIRPREFIX=/usr/obj MACHINE_ARCH=amd64 MACHINE=amd64 CPUTYPE=native GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/ usr/share/tmac _SHLIBDIRPREFIX=/usr/obj/usr/src/tmp VERSION="FreeBSD 9.0-CURRENT amd64 900016" INSTALL="sh /usr/src/tools/install.sh" PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games: /usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/bin:/usr/obj/usr/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin NO_CTF=1 /usr/obj/usr/src/make.amd64/make -f Makefile.inc1 DESTDIR=/usr/obj/usr/src/tmp -DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_ LINT -DWITHOUT_MAN -DWITHOUT_PROFILE libraries
cd /usr/src; /usr/obj/usr/src/make.amd64/make -f Makefile.inc1 _prereq_libs; /usr/obj/usr/src/make.amd64/make -f Makefile.inc1 _startup_libs; /usr/obj/usr/src/make.amd64/make -f Makefile.inc1 _prebuild_libs; /usr/obj/usr/src/make.amd64/make -f Makefi le.inc1 _generic_libs;
===> gnu/lib/libssp/libssp_nonshared (obj,depend,all,install)
rm -f .depend
mkdep -f .depend -a -DHAVE_CONFIG_H -I/usr/src/gnu/lib/libssp/libssp_nonshared/.. -I/usr/src/gnu/lib/libssp/libssp_nonshared/../../../../contrib/gcclibs/libssp -I/usr/src/gnu/lib/libssp/libssp_nonshared/../../../../contrib/gcclibs/include -DPIC /usr/s rc/gnu/lib/libssp/libssp_nonshared/../../../../contrib/gcclibs/libssp/ssp-local.c
cc -O2 -pipe -fno-strict-aliasing -funroll-loops -fno-builtin -march=native -DHAVE_CONFIG_H -I/usr/src/gnu/lib/libssp/libssp_nonshared/.. -I/usr/src/gnu/lib/libssp/libssp_nonshared/../../../../contrib/gcclibs/libssp -I/usr/src/gnu/lib/libssp/libssp_non shared/../../../../contrib/gcclibs/include -fPIC -DPIC -fvisibility=hidden -g -std=gnu99 -fstack-protector -c /usr/src/gnu/lib/libssp/libssp_nonshared/../../../../contrib/gcclibs/libssp/ssp-local.c
*** Signal 11
Stop in /usr/src/gnu/lib/libssp/libssp_nonshared.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
with the following changes to make.conf buildworld succeeds:
--- make.conf-failure 2010-08-16 14:55:31.000000000 +0200
+++ make.conf 2010-08-16 16:04:21.000000000 +0200
@@ -17,7 +17,7 @@
# compiler flags
CPUTYPE = native
COPTFLAGS = -O0 -pipe -fno-builtin -fno-strict-aliasing -funroll-loops
-CFLAGS = -O2 -pipe -fno-strict-aliasing -funroll-loops -fno-builtin
+CFLAGS = -O2 -pipe -fno-strict-aliasing -funroll-loops #-fno-builtin
CXXFLAGS += -fconserve-space
this issue has been discussed beforehand in [1].
cheers.
alex
[1] http://www.mail-archive.com/freebsd-current@freebsd.org/msg67668.html
More information about the freebsd-bugs
mailing list