Subject: kern/1199: kernel build dies if () in CFLAGS
To: None <gnats-admin@sun-lamp.pc.cs.cmu.edu>
From: Simon J. Gerraty <sjg@hobbit.dn.itg.telecom.com.au>
List: netbsd-bugs
Date: 07/06/1995 01:50:04
>Number: 1199
>Category: kern
>Synopsis: compile of lib{kern,compat} breaks if CFLAGS contains ().
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people (Kernel Bug People)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Jul 6 01:50:03 1995
>Originator: Simon J. Gerraty
>Organization:
>Release: NetBSD-950627
>Environment:
System: NetBSD hobbit 1.0A NetBSD 1.0A (HOBBIT) #0: Thu Jul 6 15:59:00 EST 1995 root@hobbit:/usr/bsd_src/usr.src/sys/arch/sparc/compile/HOBBIT sparc
>Description:
The assignments *FLAGS="${CFLAGS}" results in a syntax error if CFLAGS contains
() inside quotes.
I broke it by having -DCHILD_MAX="(maxproc / 2)" in CFLAGS but other
cases could easily be contrived.
The above results in:
root:380# make
making sure the kern library is up to date...
Syntax error: "(" unexpected (expecting ")")
*** Error code 2
>How-To-Repeat:
See above.
>Fix:
Given that several things in kernel config files put "" around options etc,
using
*FLAGS='${CFLAGS}' seems prudent.
The following patch takes care of sys/lib/libkern and sys/compat/common
Index: sys/lib/libkern/Makefile.inc
===================================================================
RCS file: /prod/cvsroot/usr.src/sys/lib/libkern/Makefile.inc,v
retrieving revision 1.1.1.2
diff -c -b -r1.1.1.2 Makefile.inc
*** /tmp/T0a20702 Thu Jul 6 15:16:26 1995
--- Makefile.inc Thu Jul 6 15:02:31 1995
***************
*** 13,19 ****
@echo making sure the kern library is up to date...
@(cd ${KERNDST} && ${MAKE} -f ${KERNREL}${KERNDIR}/Makefile \
KERNCC="${CC}" \
! KERNCFLAGS="${CFLAGS}" \
KERNREL="${KERNREL}" \
KERNDIR="${KERNDIR}" libkern.a)
--- 13,19 ----
@echo making sure the kern library is up to date...
@(cd ${KERNDST} && ${MAKE} -f ${KERNREL}${KERNDIR}/Makefile \
KERNCC="${CC}" \
! KERNCFLAGS='${CFLAGS}' \
KERNREL="${KERNREL}" \
KERNDIR="${KERNDIR}" libkern.a)
***************
*** 21,27 ****
@echo making sure the profiled kern library is up to date...
@(cd ${KERNDST} && ${MAKE} -f ${KERNREL}${KERNDIR}/Makefile \
KERNCC="${CC}" \
! KERNCFLAGS="${CFLAGS}" \
KERNREL="${KERNREL}" \
KERNDIR="${KERNDIR}" libkern_p.a)
--- 21,27 ----
@echo making sure the profiled kern library is up to date...
@(cd ${KERNDST} && ${MAKE} -f ${KERNREL}${KERNDIR}/Makefile \
KERNCC="${CC}" \
! KERNCFLAGS='${CFLAGS}' \
KERNREL="${KERNREL}" \
KERNDIR="${KERNDIR}" libkern_p.a)
***************
*** 29,35 ****
@echo cleaning the kern library objects
@(cd ${KERNDST} && ${MAKE} -f ${KERNREL}${KERNDIR}/Makefile \
KERNCC="${CC}" \
! KERNCFLAGS="${CFLAGS}" \
KERNREL="${KERNREL}" \
KERNDIR="${KERNDIR}" clean)
--- 29,35 ----
@echo cleaning the kern library objects
@(cd ${KERNDST} && ${MAKE} -f ${KERNREL}${KERNDIR}/Makefile \
KERNCC="${CC}" \
! KERNCFLAGS='${CFLAGS}' \
KERNREL="${KERNREL}" \
KERNDIR="${KERNDIR}" clean)
Index: sys/compat/common/Makefile.inc
===================================================================
RCS file: /prod/cvsroot/usr.src/sys/compat/common/Makefile.inc,v
retrieving revision 1.1.1.1
diff -c -b -r1.1.1.1 Makefile.inc
*** /tmp/T0a20706 Thu Jul 6 15:16:26 1995
--- Makefile.inc Thu Jul 6 15:09:26 1995
***************
*** 13,19 ****
@echo making sure the compat library is up to date...
@(cd ${COMPATDST} && ${MAKE} -f ${COMPATREL}${COMPATDIR}/Makefile \
COMPATCC="${CC}" \
! COMPATCFLAGS="${CFLAGS}" \
COMPATREL="${COMPATREL}" \
COMPATDIR="${COMPATDIR}" libcompat.a)
--- 13,19 ----
@echo making sure the compat library is up to date...
@(cd ${COMPATDST} && ${MAKE} -f ${COMPATREL}${COMPATDIR}/Makefile \
COMPATCC="${CC}" \
! COMPATCFLAGS='${CFLAGS}' \
COMPATREL="${COMPATREL}" \
COMPATDIR="${COMPATDIR}" libcompat.a)
***************
*** 21,27 ****
@echo making sure the profiled compat library is up to date...
@(cd ${COMPATDST} && ${MAKE} -f ${COMPATREL}${COMPATDIR}/Makefile \
COMPATCC="${CC}" \
! COMPATCFLAGS="${CFLAGS}" \
COMPATREL="${COMPATREL}" \
COMPATDIR="${COMPATDIR}" libcompat_p.a)
--- 21,27 ----
@echo making sure the profiled compat library is up to date...
@(cd ${COMPATDST} && ${MAKE} -f ${COMPATREL}${COMPATDIR}/Makefile \
COMPATCC="${CC}" \
! COMPATCFLAGS='${CFLAGS}' \
COMPATREL="${COMPATREL}" \
COMPATDIR="${COMPATDIR}" libcompat_p.a)
***************
*** 29,35 ****
@echo cleaning the compat library objects
@(cd ${COMPATDST} && ${MAKE} -f ${COMPATREL}${COMPATDIR}/Makefile \
COMPATCC="${CC}" \
! COMPATCFLAGS="${CFLAGS}" \
COMPATREL="${COMPATREL}" \
COMPATDIR="${COMPATDIR}" clean)
--- 29,35 ----
@echo cleaning the compat library objects
@(cd ${COMPATDST} && ${MAKE} -f ${COMPATREL}${COMPATDIR}/Makefile \
COMPATCC="${CC}" \
! COMPATCFLAGS='${CFLAGS}' \
COMPATREL="${COMPATREL}" \
COMPATDIR="${COMPATDIR}" clean)
>Audit-Trail:
>Unformatted: