From nobody@FreeBSD.org  Mon Aug 16 18:05:12 2010
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6E1DE10656A6
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 16 Aug 2010 18:05:12 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 5CAB78FC18
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 16 Aug 2010 18:05:12 +0000 (UTC)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.3/8.14.3) with ESMTP id o7GI5Cfv072483
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 16 Aug 2010 18:05:12 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.3/8.14.3/Submit) id o7GI5CmD072482;
	Mon, 16 Aug 2010 18:05:12 GMT
	(envelope-from nobody)
Message-Id: <201008161805.o7GI5CmD072482@www.freebsd.org>
Date: Mon, 16 Aug 2010 18:05:12 GMT
From: Alexander Best <arundel@FreeBSD.org>
To: freebsd-gnats-submit@FreeBSD.org
Subject: [build] [make.conf] -fno-builtin in CFLAGS will cause gcc to segfault
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         149712
>Category:       gnu
>Synopsis:       [build] -fno-builtin in CFLAGS will cause gcc(1) to segfault
>Confidential:   no
>Severity:       serious
>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:  Sun Aug 29 13:19:18 UTC 2010
>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@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:


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
>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:
