Fwd: xfig build failure on amd64 with clang, possibly imake problem?

Jan Beich jbeich at tormail.org
Mon Dec 31 18:47:51 UTC 2012


Matthias Andree <mandree at FreeBSD.org> writes:

> I can confirm that on FreeBSD 9.1-RELEASE amd64, imake does not work
> properly if compiled with Clang (instead of GCC).
>
> Can we please either have this debugged and fixed,
> or can someone from x11@ set USE_GCC=any in devel/imake's Makefile?

Why not use GNU cpp just for imake? It's not like imake uses cpp for
anything other than generating makefiles. For example, Xaw3d and NAS
build just fine with clang this way. While xfig fails due to other errors.

http://paste.debian.net/220640 # Xaw3d-1.5E_4.log
http://paste.debian.net/220639 # xfig-3.2.5b_1.log
http://pastebin.com/Mk9GKgXV   # nas-1.9.3.log

Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk	(revision 309596)
+++ Mk/bsd.port.mk	(working copy)
@@ -1953,8 +1964,15 @@ X_FONTS_TYPE1_PORT=	${PORTSDIR}/x11-fonts/xorg-fon
 X_FONTS_ALIAS_PORT=	${PORTSDIR}/x11-fonts/font-alias
 
 .if defined(USE_IMAKE)
+.if ${CC:T:M*clang*} == "clang" || ${OSVERSION} >= 1000024
+BUILD_DEPENDS+=		cpp46:${PORTSDIR}/lang/gcc
+# don't set CPP to allow non-imake users to use non-gnu cpp
+CONFIGURE_ENV+=		IMAKECPP="cpp46"
+MAKE_ENV+=			IMAKECPP="cpp46"
+.else
 CONFIGURE_ENV+=		IMAKECPP="${CPP}"
-MAKE_ENV+=		IMAKECPP="${CPP}"
+MAKE_ENV+=			IMAKECPP="${CPP}"
+.endif
 MAKE_FLAGS?=		CC="${CC}" CXX="${CXX}"
 BUILD_DEPENDS+=		imake:${X_IMAKE_PORT}
 .endif
Index: devel/gccmakedep/Makefile
===================================================================
--- devel/gccmakedep/Makefile	(revision 309596)
+++ devel/gccmakedep/Makefile	(working copy)
@@ -14,12 +14,8 @@ MAN1=		gccmakedep.1
 
 PLIST_FILES=	bin/gccmakedep
 
-.include <bsd.port.pre.mk>
+post-patch:
+	@${REINPLACE_CMD} -e 's/test.*-traditional.*;/true;/' \
+		${WRKSRC}/configure
 
-.if defined(CC) && ${CC:T:M*clang*} == "clang" || ${OSVERSION} >= 1000024
-BUILD_DEPENDS+=	ucpp:${PORTSDIR}/devel/ucpp
-RUN_DEPENDS+=	ucpp:${PORTSDIR}/devel/ucpp
-CONFIGURE_ENV+=	ac_cv_path_RAWCPP="ucpp -s"
-.endif
-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
Index: devel/gccmakedep/files/patch-Makefile.in
===================================================================
--- devel/gccmakedep/files/patch-Makefile.in	(revision 0)
+++ devel/gccmakedep/files/patch-Makefile.in	(working copy)
@@ -0,0 +1,11 @@
+--- Makefile.in~
++++ Makefile.in
+@@ -211,7 +211,7 @@
+ # output lines with trailing backslashes.
+ # Allow XHASH to always be substituted, even in cases where XCOMM isn't.
+ CPP_SED_MAGIC = $(SED) -e '/^\#  *[0-9][0-9]*  *.*$$/d' \
+-                       -e '/^\#line  *[0-9][0-9]*  *.*$$/d' \
++                       -e '/^$$/d' \
+                        -e '/^[         ]*XCOMM$$/s/XCOMM/\#/' \
+                        -e '/^[         ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \
+                        -e '/^[         ]*XHASH/s/XHASH/\#/' \
Index: devel/imake/Makefile
===================================================================
--- devel/imake/Makefile	(revision 309596)
+++ devel/imake/Makefile	(working copy)
@@ -33,17 +33,9 @@ MAN1=		ccmakedep.1 \
 		xmkmf.1
 
 post-patch:
-	@${PERL} -pi -e 's,^#!/usr/bin/perl,#!${PERL},' ${WRKSRC}/mkhtmlindex.pl
+	@${REINPLACE_CMD} -e 's,^#!/usr/bin/perl,#!${PERL},' \
+		${WRKSRC}/mkhtmlindex.pl
+	@${REINPLACE_CMD} -e 's/test.*-traditional.*;/true;/' \
+		${WRKSRC}/configure
 
-.include <bsd.port.pre.mk>
-
-.if defined(CC) && ${CC:T:M*clang*} == "clang" || ${OSVERSION} >= 1000024
-BUILD_DEPENDS+=	ucpp:${PORTSDIR}/devel/ucpp
-RUN_DEPENDS+=	ucpp:${PORTSDIR}/devel/ucpp
-CONFIGURE_ENV+=	ac_cv_path_RAWCPP="ucpp -s"
-
-post-build:
-	${REINPLACE_CMD} -e 's|^configdirspec= *|configdirspec=|' ${WRKSRC}/xmkmf
-.endif
-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
Index: devel/imake/files/patch-Makefile.in
===================================================================
--- devel/imake/files/patch-Makefile.in	(revision 0)
+++ devel/imake/files/patch-Makefile.in	(working copy)
@@ -0,0 +1,19 @@
+--- Makefile.in~
++++ Makefile.in
+@@ -845,13 +845,13 @@ uninstall-am: uninstall-appmanDATA unins
+ 
+ 
+ xmkmf: xmkmf.cpp
+-	$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) -DCONFIGDIRSPEC='"-I$(XCONFDIR)"' < $(srcdir)/xmkmf.cpp | $(SED) -e /^\#/d | $(SED) -e s/XCOMM/\#/ > $@
++	$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) -DCONFIGDIRSPEC='"-I$(XCONFDIR)"' < $(srcdir)/xmkmf.cpp | $(SED) -e '/^$$/d' -e /^\#/d | $(SED) -e s/XCOMM/\#/ > $@
+ 
+ ccmakedep: mdepend.cpp
+-	$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) -DPREPROC='"$(PREPROCESSCMD_MKDEPEND)"' < $(srcdir)/mdepend.cpp | $(SED) -e /^\#/d | $(SED) -e s/XCOMM/\#/ > $@
++	$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) -DPREPROC='"$(PREPROCESSCMD_MKDEPEND)"' < $(srcdir)/mdepend.cpp | $(SED) -e '/^$$/d' -e /^\#/d | $(SED) -e s/XCOMM/\#/ > $@
+ 
+ mergelib: mergelib.cpp
+-	$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) -DARCMD="$(ARCMD)" -DRANLIB="$(RANLIB)" < $(srcdir)/mergelib.cpp | $(SED) -e /^\#/d | $(SED) -e s/XCOMM/\#/ > $@
++	$(AM_V_GEN)$(RAWCPP) $(RAWCPPFLAGS) -DARCMD="$(ARCMD)" -DRANLIB="$(RANLIB)" < $(srcdir)/mergelib.cpp | $(SED) -e '/^$$/d' -e /^\#/d | $(SED) -e s/XCOMM/\#/ > $@
+ 
+ mkhtmlindex: $(MKHTMLINDEX_SCRIPT)
+ 	$(AM_V_GEN)cp $(MKHTMLINDEX_SCRIPT) $@


More information about the freebsd-x11 mailing list