From owner-svn-ports-head@FreeBSD.ORG Sun May 31 23:58:13 2015 Return-Path: Delivered-To: svn-ports-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E8030DBB; Sun, 31 May 2015 23:58:13 +0000 (UTC) (envelope-from marino@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C908A1BDE; Sun, 31 May 2015 23:58:13 +0000 (UTC) (envelope-from marino@FreeBSD.org) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t4VNwDXi071400; Sun, 31 May 2015 23:58:13 GMT (envelope-from marino@FreeBSD.org) Received: (from marino@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t4VNwDSm071397; Sun, 31 May 2015 23:58:13 GMT (envelope-from marino@FreeBSD.org) Message-Id: <201505312358.t4VNwDSm071397@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: marino set sender to marino@FreeBSD.org using -f From: John Marino Date: Sun, 31 May 2015 23:58:13 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r388183 - in head/cad/ghdl: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 31 May 2015 23:58:14 -0000 Author: marino Date: Sun May 31 23:58:12 2015 New Revision: 388183 URL: https://svnweb.freebsd.org/changeset/ports/388183 Log: cad/ghdl: Add option to use experimental LLVM backend The LLVM backend builds much faster assuming clang35 and llvm35 are already available. It probably builds on FreeBSD's base clang but not ports llvm36. In any case, the alternative backend does not pass the testsuite on FreeBSD (fails at test 825). The LLVM back is the default backend for DragonFly which allows the port to build, but it fails the very first test (fails to lock mutex). There's no need to bump -- for FreeBSD this should package the same as it did before. Added: head/cad/ghdl/files/patch-src_grt_config_linux.c (contents, props changed) head/cad/ghdl/llvm-plist (contents, props changed) Modified: head/cad/ghdl/Makefile Modified: head/cad/ghdl/Makefile ============================================================================== --- head/cad/ghdl/Makefile Sun May 31 22:56:44 2015 (r388182) +++ head/cad/ghdl/Makefile Sun May 31 23:58:12 2015 (r388183) @@ -16,10 +16,7 @@ LIB_DEPENDS= libgmp.so:${PORTSDIR}/math/ libmpfr.so:${PORTSDIR}/math/mpfr \ libmpc.so:${PORTSDIR}/math/mpc -USES= ada gmake iconv libtool perl5 -USE_PERL5= build -INFO= ghdl - +USES= ada gmake USE_GITHUB= yes GH_ACCOUNT= hanzer GH_PROJECT= GHDL @@ -27,17 +24,14 @@ GH_TAGNAME= a88ac1c GNU_CONFIGURE= yes GCCVER= 4.9.2 +LLVMVER= 35 SRCDISTFILE= hanzer-GHDL-${PORTVERSION}-${GH_TAGNAME}_GH0.tar.gz -GCCDISTFILE= gcc-${GCCVER}.tar.bz2 BLD_TARGET= ${ARCH:S/amd64/x86_64/}-portbld-${OPSYS:tl}${OSREL:R} BUILDDIR= ${WRKDIR}/build GCCSRCDIR= ${WRKDIR}/gcc-${GCCVER} CFG_SCRIPT= ${GCCSRCDIR}/configure PKG_PREFIX= ${PREFIX}/ghdl LINKER_COMMAND= ${LOCALBASE}/gcc-aux/bin/gcc -PLIST_SUB= GLEX=ghdl/libexec/gcc/${BLD_TARGET}/${GCCVER} \ - GLIB=ghdl/lib/gcc/${BLD_TARGET}/${GCCVER} \ - TARGET=${BLD_TARGET} GHDL_ARGS= --enable-languages="c,vhdl" \ --build=${BLD_TARGET} \ @@ -56,16 +50,27 @@ GHDL_ARGS= --enable-languages="c,vhdl" \ --enable-threads=posix \ ${ICONV_CONFIGURE_ARG} ${EXTRA_CONFIG} -.include +OPTIONS_SINGLE= BACKEND +OPTIONS_SINGLE_BACKEND= GCC LLVM + +GCC_DESC= Code generator is GCC (mature) +LLVM_DESC= Code generator is LLVM (experimental) + +.if exists (/sbin/hammer) +OPTIONS_DEFAULT= LLVM +PLIST_SUB= DRAGONFLY="" FREEBSD="@comment " +.else +OPTIONS_DEFAULT= GCC +PLIST_SUB= DRAGONFLY="@comment " FREEBSD="" +.endif + +.include .if ${OPSYS} == FreeBSD MODERN_BINUTILS= yes -PLIST_SUB+= FREEBSD="" . if ${OSREL:R} == 8 && ${ARCH} == i386 BROKEN= get_pc_thunk.cx errors . endif -.else -PLIST_SUB+= FREEBSD="@comment " .endif .if ${ARCH:S/amd64/x86_64/} == x86_64 @@ -74,10 +79,6 @@ PLIST_SUB+= X86_64="" PLIST_SUB+= X86_64="@comment " .endif -.if ${OPSYS} == DragonFly -IGNORE= Not supported yet -.endif - .if defined(MODERN_BINUTILS) # Apparently gcc 4.9 needs binutils 2.23 or greater to link Ada correctly USE_BINUTILS= yes @@ -90,12 +91,42 @@ EXTRA_CONFIG+= --with-ld=/usr/bin/ld .endif EXTRA_CONFIG+= --with-as=${AS_COMMAND} +.if ${PORT_OPTIONS:MGCC} +GCCDISTFILE= gcc-${GCCVER}.tar.bz2 +USES+= iconv libtool perl5 +USE_PERL5= build +INFO= ghdl +PLIST_SUB+= GLEX=ghdl/libexec/gcc/${BLD_TARGET}/${GCCVER} \ + GLIB=ghdl/lib/gcc/${BLD_TARGET}/${GCCVER} \ + TARGET=${BLD_TARGET} +. if ${OPSYS} == DragonFly +IGNORE= Not supported by GCC backend +. endif +.endif + +.if ${PORT_OPTIONS:MLLVM} +BUILD_DEPENDS+= llvm-config${LLVMVER}:${PORTSDIR}/devel/llvm${LLVMVER} \ + clang++${LLVMVER}:${PORTSDIR}/lang/clang${LLVMVER} +RUN_DEPENDS+= llc${LLVMVER}:${PORTSDIR}/devel/llvm${LLVMVER} +PLIST= ${.CURDIR}/llvm-plist +PLIST_SUB+= GLIB=ghdl/lib/ghdl/ +MAKE_JOBS_UNSAFE= yes +.endif + post-patch: - ${REINPLACE_CMD} \ + @${REINPLACE_CMD} \ -e 's|\@AS_COMMAND\@|${AS_COMMAND}|' \ -e 's|\@LINKER_COMMAND\@|${LINKER_COMMAND}|' \ ${WRKSRC}/src/ghdldrv/ghdldrv.adb + @${REINPLACE_CMD} \ + -e 's|llvm-config|llvm-config${LLVMVER}|' \ + -e 's|(INSTALL_PROGRAM)|(BSD_INSTALL_PROGRAM)|' \ + -e 's|(INSTALL_DATA)|(BSD_INSTALL_DATA)|' \ + ${WRKSRC}/configure ${WRKSRC}/Makefile.in + @${REINPLACE_CMD} -e 's|clang++|clang++${LLVMVER}|' \ + ${WRKSRC}/src/ortho/llvm/Makefile +.if ${PORT_OPTIONS:MGCC} do-configure: ${MKDIR} ${BUILDDIR} (cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./configure \ @@ -117,8 +148,16 @@ do-install: ${STAGEDIR}${PREFIX}/info ${RM} -r ${STAGEDIR}${PREFIX}/ghdl/share +.endif # TAIL: GCC + +.if ${PORT_OPTIONS:MLLVM} +do-configure: + (cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./configure \ + --with-llvm=${LOCALBASE} --prefix=${PKG_PREFIX:Q}) +.endif # TAIL: LLVM + check: (cd ${WRKSRC}/testsuite && ${SETENV} ${MAKE_ENV} \ GHDL=${STAGEDIR}${PREFIX}/ghdl/bin/ghdl ${SH} testsuite.sh) -.include +.include Added: head/cad/ghdl/files/patch-src_grt_config_linux.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/cad/ghdl/files/patch-src_grt_config_linux.c Sun May 31 23:58:12 2015 (r388183) @@ -0,0 +1,11 @@ +--- src/grt/config/linux.c.orig 2015-05-27 18:49:40 UTC ++++ src/grt/config/linux.c +@@ -44,7 +44,7 @@ + #define EXTEND_STACK 1 + #define STACK_SIGNAL SIGSEGV + #endif +-#ifdef __FreeBSD__ ++#if defined (__FreeBSD__) || defined (__DragonFly__) + /* If set, SIGSEGV is caught in order to automatically grow the stacks. */ + #define EXTEND_STACK 1 + #define STACK_SIGNAL SIGSEGV Added: head/cad/ghdl/llvm-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/cad/ghdl/llvm-plist Sun May 31 23:58:12 2015 (r388183) @@ -0,0 +1,197 @@ +ghdl/bin/ghdl +ghdl/bin/ghdl1-llvm +%%GLIB%%grt.lst +%%GLIB%%grt.ver +%%GLIB%%libgrt.a +%%GLIB%%src/ieee/math_complex-body.vhdl +%%GLIB%%src/ieee/math_complex.vhdl +%%GLIB%%src/ieee/math_real-body.vhdl +%%GLIB%%src/ieee/math_real.vhdl +%%GLIB%%src/ieee/numeric_bit-body.v87 +%%GLIB%%src/ieee/numeric_bit-body.v93 +%%GLIB%%src/ieee/numeric_bit.v87 +%%GLIB%%src/ieee/numeric_bit.v93 +%%GLIB%%src/ieee/numeric_std-body.v87 +%%GLIB%%src/ieee/numeric_std-body.v93 +%%GLIB%%src/ieee/numeric_std.v87 +%%GLIB%%src/ieee/numeric_std.v93 +%%GLIB%%src/ieee/std_logic_1164.v87 +%%GLIB%%src/ieee/std_logic_1164.v93 +%%GLIB%%src/ieee/std_logic_1164_body.v87 +%%GLIB%%src/ieee/std_logic_1164_body.v93 +%%GLIB%%src/ieee2008/fixed_float_types.vhdl +%%GLIB%%src/ieee2008/fixed_generic_pkg-body.vhdl +%%GLIB%%src/ieee2008/fixed_generic_pkg.vhdl +%%GLIB%%src/ieee2008/fixed_pkg.vhdl +%%GLIB%%src/ieee2008/float_generic_pkg-body.vhdl +%%GLIB%%src/ieee2008/float_generic_pkg.vhdl +%%GLIB%%src/ieee2008/float_pkg.vhdl +%%GLIB%%src/ieee2008/ieee_bit_context.vhdl +%%GLIB%%src/ieee2008/ieee_std_context.vhdl +%%GLIB%%src/ieee2008/math_complex-body.vhdl +%%GLIB%%src/ieee2008/math_complex.vhdl +%%GLIB%%src/ieee2008/math_real-body.vhdl +%%GLIB%%src/ieee2008/math_real.vhdl +%%GLIB%%src/ieee2008/numeric_bit-body.vhdl +%%GLIB%%src/ieee2008/numeric_bit.vhdl +%%GLIB%%src/ieee2008/numeric_bit_unsigned-body.vhdl +%%GLIB%%src/ieee2008/numeric_bit_unsigned.vhdl +%%GLIB%%src/ieee2008/numeric_std-body.vhdl +%%GLIB%%src/ieee2008/numeric_std.vhdl +%%GLIB%%src/ieee2008/numeric_std_unsigned-body.vhdl +%%GLIB%%src/ieee2008/numeric_std_unsigned.vhdl +%%GLIB%%src/ieee2008/std_logic_1164-body.vhdl +%%GLIB%%src/ieee2008/std_logic_1164.vhdl +%%GLIB%%src/ieee2008/std_logic_textio.vhdl +%%GLIB%%src/mentor/std_logic_arith.vhdl +%%GLIB%%src/mentor/std_logic_arith_body.vhdl +%%GLIB%%src/std/env.vhdl +%%GLIB%%src/std/env_body.vhdl +%%GLIB%%src/std/textio.v08 +%%GLIB%%src/std/textio.v87 +%%GLIB%%src/std/textio.v93 +%%GLIB%%src/std/textio_body.v08 +%%GLIB%%src/std/textio_body.v87 +%%GLIB%%src/std/textio_body.v93 +%%GLIB%%src/synopsys/std_logic_arith.vhdl +%%GLIB%%src/synopsys/std_logic_misc-body.vhdl +%%GLIB%%src/synopsys/std_logic_misc.vhdl +%%GLIB%%src/synopsys/std_logic_signed.vhdl +%%GLIB%%src/synopsys/std_logic_textio.vhdl +%%GLIB%%src/synopsys/std_logic_unsigned.vhdl +%%GLIB%%src/vital2000/memory_b.vhdl +%%GLIB%%src/vital2000/memory_p.vhdl +%%GLIB%%src/vital2000/prmtvs_b.vhdl +%%GLIB%%src/vital2000/prmtvs_p.vhdl +%%GLIB%%src/vital2000/timing_b.vhdl +%%GLIB%%src/vital2000/timing_p.vhdl +%%GLIB%%src/vital95/vital_primitives.vhdl +%%GLIB%%src/vital95/vital_primitives_body.vhdl +%%GLIB%%src/vital95/vital_timing.vhdl +%%GLIB%%src/vital95/vital_timing_body.vhdl +%%GLIB%%v08/ieee/fixed_float_types.o +%%GLIB%%v08/ieee/fixed_generic_pkg-body.o +%%GLIB%%v08/ieee/fixed_generic_pkg.o +%%GLIB%%v08/ieee/fixed_pkg.o +%%GLIB%%v08/ieee/float_generic_pkg-body.o +%%GLIB%%v08/ieee/float_generic_pkg.o +%%GLIB%%v08/ieee/float_pkg.o +%%GLIB%%v08/ieee/ieee-obj08.cf +%%GLIB%%v08/ieee/ieee_bit_context.o +%%GLIB%%v08/ieee/ieee_std_context.o +%%GLIB%%v08/ieee/math_complex-body.o +%%GLIB%%v08/ieee/math_complex.o +%%GLIB%%v08/ieee/math_real-body.o +%%GLIB%%v08/ieee/math_real.o +%%GLIB%%v08/ieee/numeric_bit-body.o +%%GLIB%%v08/ieee/numeric_bit.o +%%GLIB%%v08/ieee/numeric_bit_unsigned-body.o +%%GLIB%%v08/ieee/numeric_bit_unsigned.o +%%GLIB%%v08/ieee/numeric_std-body.o +%%GLIB%%v08/ieee/numeric_std.o +%%GLIB%%v08/ieee/numeric_std_unsigned-body.o +%%GLIB%%v08/ieee/numeric_std_unsigned.o +%%GLIB%%v08/ieee/std_logic_1164-body.o +%%GLIB%%v08/ieee/std_logic_1164.o +%%GLIB%%v08/ieee/std_logic_textio.o +%%GLIB%%v08/std/env.o +%%GLIB%%v08/std/env_body.o +%%GLIB%%v08/std/std-obj08.cf +%%GLIB%%v08/std/std_standard.o +%%GLIB%%v08/std/textio.o +%%GLIB%%v08/std/textio_body.o +%%GLIB%%v87/ieee/ieee-obj87.cf +%%GLIB%%v87/ieee/numeric_bit-body.o +%%GLIB%%v87/ieee/numeric_bit.o +%%GLIB%%v87/ieee/numeric_std-body.o +%%GLIB%%v87/ieee/numeric_std.o +%%GLIB%%v87/ieee/std_logic_1164.o +%%GLIB%%v87/ieee/std_logic_1164_body.o +%%GLIB%%v87/ieee/vital_primitives.o +%%GLIB%%v87/ieee/vital_primitives_body.o +%%GLIB%%v87/ieee/vital_timing.o +%%GLIB%%v87/ieee/vital_timing_body.o +%%GLIB%%v87/std/std-obj87.cf +%%GLIB%%v87/std/std_standard.o +%%GLIB%%v87/std/textio.o +%%GLIB%%v87/std/textio_body.o +%%GLIB%%v87/synopsys/ieee-obj87.cf +%%GLIB%%v87/synopsys/numeric_bit-body.o +%%GLIB%%v87/synopsys/numeric_bit.o +%%GLIB%%v87/synopsys/numeric_std-body.o +%%GLIB%%v87/synopsys/numeric_std.o +%%GLIB%%v87/synopsys/std_logic_1164.o +%%GLIB%%v87/synopsys/std_logic_1164_body.o +%%GLIB%%v87/synopsys/std_logic_arith.o +%%GLIB%%v87/synopsys/std_logic_misc-body.o +%%GLIB%%v87/synopsys/std_logic_misc.o +%%GLIB%%v87/synopsys/std_logic_signed.o +%%GLIB%%v87/synopsys/std_logic_textio.o +%%GLIB%%v87/synopsys/std_logic_unsigned.o +%%GLIB%%v87/synopsys/vital_primitives.o +%%GLIB%%v87/synopsys/vital_primitives_body.o +%%GLIB%%v87/synopsys/vital_timing.o +%%GLIB%%v87/synopsys/vital_timing_body.o +%%GLIB%%v93/ieee/ieee-obj93.cf +%%GLIB%%v93/ieee/math_complex-body.o +%%GLIB%%v93/ieee/math_complex.o +%%GLIB%%v93/ieee/math_real-body.o +%%GLIB%%v93/ieee/math_real.o +%%GLIB%%v93/ieee/memory_b.o +%%GLIB%%v93/ieee/memory_p.o +%%GLIB%%v93/ieee/numeric_bit-body.o +%%GLIB%%v93/ieee/numeric_bit.o +%%GLIB%%v93/ieee/numeric_std-body.o +%%GLIB%%v93/ieee/numeric_std.o +%%GLIB%%v93/ieee/prmtvs_b.o +%%GLIB%%v93/ieee/prmtvs_p.o +%%GLIB%%v93/ieee/std_logic_1164.o +%%GLIB%%v93/ieee/std_logic_1164_body.o +%%GLIB%%v93/ieee/timing_b.o +%%GLIB%%v93/ieee/timing_p.o +%%GLIB%%v93/mentor/ieee-obj93.cf +%%GLIB%%v93/mentor/math_complex-body.o +%%GLIB%%v93/mentor/math_complex.o +%%GLIB%%v93/mentor/math_real-body.o +%%GLIB%%v93/mentor/math_real.o +%%GLIB%%v93/mentor/memory_b.o +%%GLIB%%v93/mentor/memory_p.o +%%GLIB%%v93/mentor/numeric_bit-body.o +%%GLIB%%v93/mentor/numeric_bit.o +%%GLIB%%v93/mentor/numeric_std-body.o +%%GLIB%%v93/mentor/numeric_std.o +%%GLIB%%v93/mentor/prmtvs_b.o +%%GLIB%%v93/mentor/prmtvs_p.o +%%GLIB%%v93/mentor/std_logic_1164.o +%%GLIB%%v93/mentor/std_logic_1164_body.o +%%GLIB%%v93/mentor/std_logic_arith.o +%%GLIB%%v93/mentor/std_logic_arith_body.o +%%GLIB%%v93/mentor/timing_b.o +%%GLIB%%v93/mentor/timing_p.o +%%GLIB%%v93/std/std-obj93.cf +%%GLIB%%v93/std/std_standard.o +%%GLIB%%v93/std/textio.o +%%GLIB%%v93/std/textio_body.o +%%GLIB%%v93/synopsys/ieee-obj93.cf +%%GLIB%%v93/synopsys/math_complex-body.o +%%GLIB%%v93/synopsys/math_complex.o +%%GLIB%%v93/synopsys/math_real-body.o +%%GLIB%%v93/synopsys/math_real.o +%%GLIB%%v93/synopsys/memory_b.o +%%GLIB%%v93/synopsys/memory_p.o +%%GLIB%%v93/synopsys/numeric_bit-body.o +%%GLIB%%v93/synopsys/numeric_bit.o +%%GLIB%%v93/synopsys/numeric_std-body.o +%%GLIB%%v93/synopsys/numeric_std.o +%%GLIB%%v93/synopsys/prmtvs_b.o +%%GLIB%%v93/synopsys/prmtvs_p.o +%%GLIB%%v93/synopsys/std_logic_1164.o +%%GLIB%%v93/synopsys/std_logic_1164_body.o +%%GLIB%%v93/synopsys/std_logic_arith.o +%%GLIB%%v93/synopsys/std_logic_misc-body.o +%%GLIB%%v93/synopsys/std_logic_misc.o +%%GLIB%%v93/synopsys/std_logic_signed.o +%%GLIB%%v93/synopsys/std_logic_textio.o +%%GLIB%%v93/synopsys/std_logic_unsigned.o +%%GLIB%%v93/synopsys/timing_b.o +%%GLIB%%v93/synopsys/timing_p.o