Subject: pkg/29608: gcc options not always passed to imake on Solaris
To: None <tech-pkg@NetBSD.org>
From: grant beattie <grant@NetBSD.org>
List: tech-pkg
Date: 03/06/2005 14:33:57
--/e2eDi0V/xtL+Mc8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

I have narrowed this down, and the following patch fixes it, however,
I suspect that there may be a simpler way to fix this that I have
overlooked.

comments?

grant.


Index: bsd.wrapper.mk
===================================================================
RCS file: /cvsroot/pkgsrc/mk/wrapper/bsd.wrapper.mk,v
retrieving revision 1.24
diff -u -r1.24 bsd.wrapper.mk
--- bsd.wrapper.mk	19 Feb 2005 04:19:59 -0000	1.24
+++ bsd.wrapper.mk	6 Mar 2005 03:19:48 -0000
@@ -326,6 +326,15 @@
 _WRAP_TRANSFORM.CXX=	${_WRAP_TRANSFORM.CC}
 .endif
 
+.if ${OPSYS} == "SunOS" && !empty(PKGSRC_COMPILER:Mgcc)
+_WRAP_CACHE_BODY.CC=	${WRAPPER_TMPDIR}/cache-body-solaris-gcc
+_WRAP_TRANSFORM.CC=	${WRAPPER_TMPDIR}/transform-solaris-gcc
+_WRAP_CACHE_BODY.CXX=	${_WRAP_CACHE_BODY.CC}
+_WRAP_TRANSFORM.CXX=	${_WRAP_TRANSFORM.CC}
+_WRAP_CMD_SINK.IMAKE=	${WRAPPER_TMPDIR}/cmd-sink-solaris-imake
+_WRAP_CACHE_BODY.IMAKE=	${WRAPPER_TMPDIR}/cache-body-solaris-imake
+.endif
+
 # Filter to scrunch shell scripts by removing comments and empty lines.
 _WRAP_SH_CRUNCH_FILTER=							\
 	${GREP} -v "^\#[^!]" | ${GREP} -v "^[ 	][ 	]*\#" |		\
@@ -446,6 +455,18 @@
 do-wrapper: ${_target_}
 .endfor
 
+${WRAPPER_TMPDIR}/transform-solaris-gcc:				\
+		${WRAPPER_SRCDIR}/transform-solaris-gcc
+	${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H}
+	${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC}			\
+		| ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET}
+
+${WRAPPER_TMPDIR}/cmd-sink-solaris-imake:				\
+		${WRAPPER_SRCDIR}/cmd-sink-solaris-imake
+	${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H}
+	${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC}			\
+		| ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET}
+
 ${WRAPPER_TMPDIR}/arg-pp-darwin-gcc:					\
 		${WRAPPER_SRCDIR}/arg-pp-darwin-gcc
 	${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H}

--/e2eDi0V/xtL+Mc8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=cmd-sink-solaris-imake

arg=-DHasGcc2=YES
$debug_log $wrapperlog "    (cmd-sink-solaris-imake) pop:  $arg"
. $buildcmd

arg=-DHasGcc2ForCplusplus=YES
$debug_log $wrapperlog "    (cmd-sink-solaris-imake) pop:  $arg"
. $buildcmd

while ! queue_is_empty cmdbuf; do
	pop_queue cmdbuf arg
	$debug_log $wrapperlog "    (cmd-sink-solaris-imake) pop:  $arg"
	. $buildcmd
done

--/e2eDi0V/xtL+Mc8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=transform-solaris-gcc

case $arg in
# the imake config templates on Solaris 8 pass -Kpic to build PIC, even
# when -DHasGcc2=YES -DHasGcc2ForCplusplus=YES is passed, so transform
# -Kpic to -fPIC.
-Kpic|-KPIC)
	arg=-fPIC
	msg_log $wrapperlog "   (transform-solaris-gcc) to: $arg"
	addtocache=yes
	;;
esac

--/e2eDi0V/xtL+Mc8--