# /site/etc/make.conf.README # Installed by /site/etc/Makefile to # http://www.berklix.com/~jhs/src/bsd/fixes/FreeBSD/src/jhs/etc/ # See also ./make.conf 2017Q2 ports: USE_OPENSSL removed Support for 9.3, 10.1 and 10.2 was removed, so the ports tree now requires defining ALLOW_UNSUPPORTED_SYSTEM on unsupported FreeBSD releases to ... Mk/bsd.port.mk Syntax example: .if ${.CURDIR:M/usr/ports*} CFLAGS= -O -pipe -DBERKLIX_SUBDIR=yes .endif To: hackers@freebsd._ERASE_.org Subject: COPTFLAGS without -O in /etc/make.conf breaks kernel make Here's a weirdness in 4.2-RELEASE kernel generation: - Compiling a GENERIC kernel _Without -O optimiser causes a broken make ! - Compiling a GENERIC kernel _With_ -O optimiser compiles OK. Seems weird - perhaps indicative of a problem elsewhere in FreeBSD ? (Optimisers occasionally break things, but don't normally _fix_ things !) Can anyone confirm the observation / comment / explain please ? If you wonder why you haven't seen this so far: - Default 4.2 systems compile kernel with -O - I noticed it while experimentally adding "-pipe" to make variables. How to test: Breaks: echo "COPTFLAGS= -DHalloFromMakeDotConf" >> /etc/make.conf Breaks: echo "COPTFLAGS=" >> /etc/make.conf OK: echo "COPTFLAGS= -DHalloFromMakeDotConf -O" >> /etc/make.conf OK: echo "COPTFLAGS=-O" >> /etc/make.conf OK: grep -v COPTFLAGS /etc/make.conf > /tmp/co;cp /tmp/co /etc/make.conf Followed By: cd /sys/i386/conf;config -r GENERIC cd /sys/compile/GENERIC;make depend;make atomic.o # atomic.o for faster test Breakage: cc -c -DHalloFromMakeDotConf -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -ansi -nostdinc -I- -I. -I../.. -I../../../include -I/usr/include -D_KERNEL -include opt_global.h -elf -mpreferred-stack-boundary=2 -fomit-frame-pointer ../../i386/i386/atomic.c In file included from ../../i386/i386/atomic.c:47: machine/atomic.h: In function `atomic_set_char': machine/atomic.h:106: inconsistent operand constraints in an `asm' machine/atomic.h: In function `atomic_clear_char': machine/atomic.h:107: inconsistent operand constraints in an `asm' ---------- WRKDIRPREFIX="/usr/obj/ports" # To allow a quicker clean.