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