Date: Tue, 21 Aug 2007 20:52:20 GMT From: Coleman Kane <cokane@FreeBSD.org> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/115694: devel/gccxml won't compile on 7.0 due to new restrictions on casting lvalues Message-ID: <200708212052.l7LKqKbf077006@www.freebsd.org> Resent-Message-ID: <200708212100.l7LL03RG020016@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 115694 >Category: ports >Synopsis: devel/gccxml won't compile on 7.0 due to new restrictions on casting lvalues >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Aug 21 21:00:03 GMT 2007 >Closed-Date: >Last-Modified: >Originator: Coleman Kane >Release: 7.0-CURRENT >Organization: >Environment: FreeBSD erwin 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Tue Aug 21 15:50:58 EDT 2007 root@erwin:/usr/obj/usr/src/sys/ERWIN amd64 >Description: When FreeBSD 7.0 was moved to GCC 4.2.0, the port devel/gccxml was broken. This was due to a compiler restriction that no longer allows the following constructs: *((int*)not_int_array_ptr)++; The new compiler rules do not allow for casted types to be lvalues. Rather, you must cast the rvalue to the type of the lvalue to get it to compile. In addition, as added severity, the WITH_PYSTE option to devel/boost depends upon devel/gccxml. >How-To-Repeat: cd /usr/ports/devel/gccxml && make >Fix: Attached patch that forces the compiler to be GCC 3.4 where OSVERSION >= 700000, rather than BROKENing it on that arch. Patch attached with submission follows: --- Makefile.orig 2007-08-21 16:50:27.000000000 -0400 +++ Makefile 2007-08-21 16:42:09.000000000 -0400 @@ -31,6 +31,7 @@ ${REINPLACE_CMD} -e "s,x86_64,amd64," \ ${WRKSRC}/../gccxml-0.6.0/GCC/gcc/config.gcc cd ${WRKSRC} && \ + ${SETENV} ${CONFIGURE_ENV} \ ${LOCALBASE}/bin/cmake ../${DISTNAME} -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX} \ -DGCCXML_MAN_DIR:PATH="/man" @@ -39,7 +40,16 @@ .if ${ARCH} == "alpha" BROKEN= Build fails on alpha .elif ${OSVERSION} >= 700000 -BROKEN= Does not compile +# GCC-XML has some constructs that GCC 4.2 does not like. Namely, +# the use of casted-pointer-dereferences as an lvalue to post-increment +# operations. +USE_GCC= 3.4 +CONFIGURE_ENV+= CC=${LOCALBASE}/bin/gcc34 \ + CPP="${CC} -E" \ + CXX=${LOCALBASE}/bin/g++34 +MAKE_ENV+= CC=${LOCALBASE}/bin/gcc34 \ + CPP="${CC} -E" \ + CXX=${LOCALBASE}/bin/g++34 .endif .include <bsd.port.post.mk> >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200708212052.l7LKqKbf077006>