conf/118823: Remove -pipe from sys.mk it cripples small machines

Julian H. Stacey jhs at berklix.org
Tue Dec 18 07:00:12 PST 2007


>Number:         118823
>Category:       conf
>Synopsis:       Remove -pipe from sys.mk it cripples small machines
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Dec 18 15:00:11 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator:     Julian H. Stacey <jhs at 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 at 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:
>Unformatted:


More information about the freebsd-bugs mailing list