From jhs@berklix.org  Tue Dec 18 14:50:40 2007
Return-Path: <jhs@berklix.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8E19E16A418
	for <FreeBSD-gnats-submit@freebsd.org>; Tue, 18 Dec 2007 14:50:40 +0000 (UTC)
	(envelope-from jhs@berklix.org)
Received: from tower.berklix.org (tower.berklix.org [83.236.223.114])
	by mx1.freebsd.org (Postfix) with ESMTP id 00ADE13C459
	for <FreeBSD-gnats-submit@freebsd.org>; Tue, 18 Dec 2007 14:50:39 +0000 (UTC)
	(envelope-from jhs@berklix.org)
Received: from js.berklix.net (p549A7965.dip.t-dialin.net [84.154.121.101])
	(authenticated bits=0)
	by tower.berklix.org (8.13.6/8.13.6) with ESMTP id lBIEobtk092381;
	Tue, 18 Dec 2007 14:50:38 GMT
	(envelope-from jhs@berklix.org)
Received: from fire.js.berklix.net (fire.js.berklix.net [192.168.91.41])
	by js.berklix.net (8.13.8/8.13.8) with ESMTP id lBIEpKlH048233;
	Tue, 18 Dec 2007 15:51:20 +0100 (CET)
	(envelope-from jhs@berklix.org)
Received: from fire.js.berklix.net (localhost.js.berklix.net [127.0.0.1])
	by fire.js.berklix.net (8.13.8/8.13.8) with ESMTP id lBIEpABv095992;
	Tue, 18 Dec 2007 15:51:15 +0100 (CET)
	(envelope-from jhs@fire.js.berklix.net)
Received: (from jhs@localhost)
	by fire.js.berklix.net (8.13.8/8.13.8/Submit) id lBIEp015095991;
	Tue, 18 Dec 2007 15:51:00 +0100 (CET)
	(envelope-from jhs)
Message-Id: <200712181451.lBIEp015095991@fire.js.berklix.net>
Date: Tue, 18 Dec 2007 15:51:00 +0100 (CET)
From: "Julian H. Stacey" <jhs@berklix.org>
Reply-To: "Julian H. Stacey" <jhs@berklix.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc: jhs@berklix.com
Subject: Remove -pipe from sys.mk it cripples small machines
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         118823
>Category:       kern
>Synopsis:       [patch] Remove -pipe from sys.mk it cripples small machines
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Dec 18 15:00:11 UTC 2007
>Closed-Date:    Tue Dec 25 13:51:11 UTC 2007
>Last-Modified:  Tue Dec 25 13:51:11 UTC 2007
>Originator:     Julian H. Stacey <jhs@berklix.com>
>Release:        FreeBSD 6.2-RELEASE amd64 & 7.0BETA4-i386
>Organization:
http://berklix.com
>Environment:
System: FreeBSD fire.js.berklix.net 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Mon Sep 17 23:01:21 CEST 2007 jhs@fire.js.berklix.net:/usr1/src/sys/amd64/compile/FIRE64.small amd64


	
		FreeBSD 6.2-RELEASE amd64 & 7.0BETA4-i386
>Description:
	Remove -pipe from /usr/share/mk/sys.mk it cripples small machines
>How-To-Repeat:
	
	Any older machine with not much RAM or swap
	cd /usr/src/gnu/usr.bin/cc/cc_int ; make
	Watch it eat swap on eg
		cc -O2 -fno-strict-aliasing -Dzonk=bla  -DIN_GCC -DHAVE_CONFIG_H -DPREFIX=\"/usr\" -I/usr/obj/usr/src/gnu/usr.bin/cc/cc_int/../cc_tools -I/usr/src/gnu/usr.bin/cc/cc_int/../cc_tools -I/usr/src/gnu/usr.bin/cc/cc_int/../../../../contrib/gcc -I/usr/src/gnu/usr.bin/cc/cc_int/../../../../contrib/gcc/config -I/usr/src/gnu/usr.bin/cc/cc_int/../../../../contrib/gcclibs/include -I/usr/src/gnu/usr.bin/cc/cc_int/../../../../contrib/gcclibs/libcpp/include -I/usr/src/gnu/usr.bin/cc/cc_int/../../../../contrib/gcclibs/libdecnumber  -c ../cc_tools/insn-attrtab.c
		OK im not sure thats the right proof, but thats how I found this bug.

>Fix:

	Patch appended.

To: stable@@freebsd.org
Fcc: sent
In-reply-to: <200712181108.lBIB8rAL090380@@fire.js.berklix.net> 
References: <200712181108.lBIB8rAL090380@@fire.js.berklix.net>
Comments: In-reply-to "Julian Stacey" <jhs@@berklix.org>
   message dated "Tue, 18 Dec 2007 12:08:53 +0100."

> Has 7.0-BETA4 perhaps wrongly got a -pipe in the .mk macros ?
> Please someone with generic 7.0BETA4 check with eg:
> 	A single line /etc/make.conf
> 		CFLAGS += -Dzonk=bla
> 	~/tmp/Makefile
> 		tst:
>         		@echo "XX ${CFLAGS} YY"
> 	make tst
> 		XX -O2 -fno-strict-aliasing -pipe -Dzonk=bla  YY
> Is pipe coming from generic mk/ ?
> Or from my local hacked version  ?
> Could someone test please:
> 	My /usr/src is no longer generic, on a very slow CPU, SLIP
> 	linked, building rest of src/ & I'm about to go away, &
> 	will miss the 7-RELEASE date, but -pipe should not be in
> 	generic, needs to be a host dependent choice. )

Error found. I will send-pr.  Patch below stored in :
http://berklix.com/~jhs/src/bsd/fixes/FreeBSD/src/gen/share/mk/sys.mk.REL=ALL.diff

pipe should not be on by default as
- It cripples machines with limited memory.
- Pipe can be enabled by any memory rich host in /etc/make.conf with:
	CFLAGS += -pipe
- Man cc lists how to turn it on but not off.
- Man cc also notes assembler problems 

*** -current/src/share/mk/sys.mk.orig	Tue Dec 18 15:11:26 2007
--- -current/src/share/mk/sys.mk	Tue Dec 18 15:12:23 2007
***************
*** 36,44 ****
  .else
  CC		?=	cc
  .if ${MACHINE_ARCH} == "arm"
! CFLAGS		?=	-O -fno-strict-aliasing -pipe
  .else
! CFLAGS		?=	-O2 -fno-strict-aliasing -pipe
  .endif
  .if defined(NO_STRICT_ALIASING)
  CFLAGS		+=	-fno-strict-aliasing
--- 36,44 ----
  .else
  CC		?=	cc
  .if ${MACHINE_ARCH} == "arm"
! CFLAGS		?=	-O -fno-strict-aliasing
  .else
! CFLAGS		?=	-O2 -fno-strict-aliasing
  .endif
  .if defined(NO_STRICT_ALIASING)
  CFLAGS		+=	-fno-strict-aliasing

*** 6.2-RELEASE/src/share/mk/sys.mk.orig	Tue Sep 18 09:32:40 2007
--- 6.2-RELEASE/src/share/mk/sys.mk	Tue Dec 18 15:21:09 2007
***************
*** 35,41 ****
  CFLAGS		?=	-O
  .else
  CC		?=	cc
! CFLAGS		?=	-O2 -fno-strict-aliasing -pipe
  .endif
  
  CXX		?=	c++
--- 35,41 ----
  CFLAGS		?=	-O
  .else
  CC		?=	cc
! CFLAGS		?=	-O2 -fno-strict-aliasing
  .endif
  
  CXX		?=	c++

-- 
Julian Stacey. Munich Computer Consultant, BSD Unix C Linux. http://berklix.com
	Ihr Rauch = mein allergischer Kopfschmerz. Dump cigs 4 snuff.
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: kris 
State-Changed-When: Tue Dec 25 13:32:11 UTC 2007 
State-Changed-Why:  
The default of -pipe is appropriate for modern systems since it 
improves compiler performance.  It can trivially be tuned on smaller 
systems by editing /etc/make.conf, so this change is not necessary. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=118823 
>Unformatted:
