pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Import wig/ghc as lang/ghc7 (Re: Removing packages without DESTDIR support)



Hi,

On Fri, 25 Oct 2013 16:30:42 +0900, Jonathan Perkin 
<jperkin%joyent.com@localhost> wrote:

FWIW we are using wip/ghc in our official builds now, with a few diffs:

  
https://github.com/joyent/pkgsrc-wip/compare/master...joyent#diff-6fd4e83bc04fcaecd4db8649edc3a8e9L3

It would be great for *BSD folks to bring their bootstraps up to date
so we can merge this.

I've modified as followings and created bootstrap binary packages for
NetBSD-6.1.2-i386 and NetBSD-6.1.2-x86_64.

I know it is less platform support than lang/ghc
(and less bootstrap support than current wip/ghc),
so I would like to imported as lang/ghc7 tomorrow
with commented out currently unsupported platform parts.

Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc-wip/wip/ghc/Makefile,v
retrieving revision 1.35
diff -u -r1.35 Makefile
--- Makefile    23 Feb 2013 12:24:06 -0000      1.35
+++ Makefile    11 Dec 2013 12:52:24 -0000
@@ -3,7 +3,7 @@
 # Package metadata
 #
 DISTNAME=      ghc-${VERSION}
-VERSION=       7.6.2
+VERSION=       7.6.3
 CATEGORIES=    lang
 MASTER_SITES=  http://www.haskell.org/ghc/dist/${VERSION}/
 MAINTAINER=    pho%cielonero.org@localhost
@@ -22,18 +22,25 @@
        FreeBSD-*-i386 \
        Linux-*-x86_64 \
        NetBSD-*-i386 \
-       NetBSD-*-x86_64
+       NetBSD-*-x86_64 \
+       SunOS-5.11-*


 # -----------------------------------------------------------------------------
 # Distfiles
 #
 DISTFILES=     ${DISTNAME}-src.tar.bz2
+.if make(distinfo)
 DISTFILES+=    ${DISTNAME}-boot-i386-unknown-freebsd.tar.xz
 DISTFILES+=    ${DISTNAME}-boot-i386-unknown-netbsd.tar.xz
 DISTFILES+=    ${DISTNAME}-boot-powerpc-apple-darwin.tar.xz
 DISTFILES+=    ${DISTNAME}-boot-x86_64-unknown-linux.tar.xz
 DISTFILES+=    ${DISTNAME}-boot-x86_64-unknown-netbsd.tar.xz
+DISTFILES+=    ${DISTNAME}-boot-i386-unknown-solaris2.tar.gz
+DISTFILES+=    ${DISTNAME}-boot-x86_64-unknown-solaris2.tar.xz
+.else
+DISTFILES+=    ${BOOT_ARCHIVE}
+.endif

 .for i in ${DISTFILES:M*-boot-*}
 SITES.${i}=    http://static.cielonegro.org/archive/
@@ -50,25 +57,23 @@
 GNU_CONFIGURE=                 yes
 USE_GNU_CONFIGURE_HOST=        no

-# We must provide the real path to gcc to the ./configure script,
-# because GHC has a runtime dependency on it. Aren't there any ways
-# better than this?
-.include "../../mk/compiler.mk"
-.if empty(CCPATH)
-CCPATH=        /usr/bin/gcc
-WARNINGS+="This package depends on pkgsrc's undocumented variable\
-CCPATH but it disappeared somehow."
-WARNINGS+="Using hard-coded ${CCPATH:Q} as the C compiler..."
-.endif
-
 CONFIGURE_ARGS+= \
-       --with-gcc=${CCPATH:Q} \
-       --with-gmp-includes=${PREFIX:Q}/include \
-       --with-gmp-libraries=${PREFIX:Q}/lib \
-       --with-iconv-includes=${PREFIX:Q}/include \
-       --with-iconv-libraries=${PREFIX:Q}/lib
+       --with-gcc=${CC:Q} \
+       --with-gmp-includes=${BUILDLINK_PREFIX.gmp:Q}/include \
+       --with-gmp-libraries=${BUILDLINK_PREFIX.gmp:Q}/lib \
+       --with-iconv-includes=${BUILDLINK_PREFIX.iconv:Q}/include \
+       --with-iconv-libraries=${BUILDLINK_PREFIX.iconv:Q}/lib

 CONFIGURE_ENV+= \
+       CONF_CC_OPTS_STAGE0=${CFLAGS:Q} \
+       CONF_GCC_LINKER_OPTS_STAGE0=${LDFLAGS:Q} \
+       CONF_LD_LINKER_OPTS_STAGE0=${LDFLAGS:Q} \
+       CONF_CC_OPTS_STAGE1=${CFLAGS:Q} \
+       CONF_GCC_LINKER_OPTS_STAGE1=${LDFLAGS:Q} \
+       CONF_LD_LINKER_OPTS_STAGE1=${LDFLAGS:Q} \
+       CONF_CC_OPTS_STAGE2=${CFLAGS:Q} \
+       CONF_GCC_LINKER_OPTS_STAGE2=${LDFLAGS:Q} \
+       CONF_LD_LINKER_OPTS_STAGE2=${LDFLAGS:Q} \
        PerlCmd=${PERL5:Q}


@@ -99,8 +104,8 @@
 # in a non-standard path. Without that, the resulting GHC tries to
 # link programs by executing ld(1) without passing it -L${PREFIX:Q}/lib.
        ${RUN} ${ECHO} "libraries/terminfo_CONFIGURE_OPTS += \
-               --configure-option=--with-curses-includes=${PREFIX:Q}/include \
-               --configure-option=--with-curses-libraries=${PREFIX:Q}/lib" >> 
${WRKSRC:Q}/mk/build.mk
+               
--configure-option=--with-curses-includes=${BUILDLINK_PREFIX.ncurses:Q}/include 
\
+               
--configure-option=--with-curses-libraries=${BUILDLINK_PREFIX.ncurses:Q}/lib" 
>> ${WRKSRC:Q}/mk/build.mk

 # The ghc compiler does normally split the generated asm files into small
 # parts before sending them to gcc, to enable the linker to eliminate
@@ -151,7 +156,7 @@
 .else
 GENERATE_PLIST+= \
        cd ${DESTDIR:Q}${PREFIX:Q} && \
-               ${FIND} * \( -type f -or -type l \) | ${SORT} -d;
+               ${FIND} * \( -type f -o -type l \) | ${SORT} -d;
 .endif


@@ -165,7 +170,7 @@
 # GHC currently *requires* ${PREFIX}/lib to be in
 # "/etc/ld-elf.so.conf". See
 # http://hackage.haskell.org/trac/ghc/ticket/2933
-CHECK_SHLIBS_SUPPORTED=        no
+#CHECK_SHLIBS_SUPPORTED=       no


 # -----------------------------------------------------------------------------
@@ -175,14 +180,11 @@
 # I guess pdcurses works well but not tested.
 USE_NCURSES=   yes

-BUILDLINK_DEPMETHOD.docbook-xsl=       build
-BUILDLINK_DEPMETHOD.libxslt=           build
-BUILDLINK_DEPMETHOD.xz=                build
-.include "../../archivers/xz/buildlink3.mk"
+BUILD_DEPENDS+=        libxslt-[0-9]*:../../textproc/libxslt
+BUILD_DEPENDS+=        docbook-xsl-[0-9]*:../../textproc/docbook-xsl
+
 .include "../../converters/libiconv/buildlink3.mk"
 .include "../../devel/gmp/buildlink3.mk"
 .include "../../devel/ncurses/buildlink3.mk"
-.include "../../textproc/libxslt/buildlink3.mk"
-.include "../../textproc/docbook-xsl/buildlink3.mk"
 .include "../../mk/pthread.buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"
Index: bootstrap.mk
===================================================================
RCS file: /cvsroot/pkgsrc-wip/wip/ghc/bootstrap.mk,v
retrieving revision 1.3
diff -u -r1.3 bootstrap.mk
--- bootstrap.mk        23 Feb 2013 12:24:07 -0000      1.3
+++ bootstrap.mk        11 Dec 2013 12:52:24 -0000
@@ -30,6 +30,12 @@
 .elif ${MACHINE_ARCH} == "x86_64" && ${OPSYS} == "NetBSD"
 BOOT_ARCHIVE=  ${DISTNAME}-boot-x86_64-unknown-netbsd.tar.xz

+.elif !empty(MACHINE_PLATFORM:MSunOS-5.11-i386)
+BOOT_ARCHIVE=  ${DISTNAME}-boot-i386-unknown-solaris2.tar.gz
+
+.elif !empty(MACHINE_PLATFORM:MSunOS-5.11-x86_64)
+BOOT_ARCHIVE=  ${DISTNAME}-boot-x86_64-unknown-solaris2.tar.xz
+
 .else
 PKG_FAIL_REASON+=      "internal error: unsupported platform"
 .endif
@@ -43,7 +49,7 @@
 # Install a bootstrapping compiler directly into TOOLS_DIR so that
 # ./configure can find it.
 #
-USE_TOOLS+=    gmake xzcat
+USE_TOOLS+=    gmake xzcat xz

 pre-configure:
        @${PHASE_MSG} "Extracting bootstrapping compiler for ${PKGNAME}"
@@ -54,8 +60,7 @@
        @${PHASE_MSG} "Preparing bootstrapping compiler for ${PKGNAME}"
        ${RUN} cd ${WRKDIR:Q}/build-extract/${DISTNAME}-boot && \
                ${SH} ./configure \
-                       --prefix=${TOOLS_DIR:Q} \
-                       --with-gcc=${CCPATH:Q} && \
+                       --prefix=${TOOLS_DIR:Q} && \
                ${MAKE_PROGRAM} install


@@ -70,6 +75,8 @@
 #
 .PHONY: bootstrap

+#BUILDLINK_PASSTHRU_DIRS=      ${PREFIX}/lib/ghc-7.6.3
+
 .if exists(${WRKDIR}/${DISTNAME}/mk/config.mk)
 bootstrap:
        @${ERROR_MSG} "You have already configured the package in a way\
@@ -87,7 +94,7 @@
 ${WRKDIR}/lndir:
        @${PHASE_MSG} "Building lndir(1) to duplicate the source tree."
        cd ${WRKSRC:Q}/utils/lndir && \
-               ${CCPATH:Q} lndir.c -o ${.TARGET}
+               ${CC:Q} lndir.c -o ${.TARGET}

 ${WRKDIR}/stamp-lndir-boot: ${WRKDIR}/lndir
        @${PHASE_MSG} "Duplicating the source tree for bootstrapping 
${DISTNAME}"
@@ -100,8 +107,18 @@
        @${PHASE_MSG} "Configuring bootstrapping compiler ${DISTNAME}"
        ${MKDIR} ${WRKDIR:Q}/build-boot
        cd ${WRKDIR:Q}/build-boot && \
-               ${SH} ./configure --with-gcc=${CCPATH:Q} && \
-               ${LN} -f ${FILESDIR:Q}/bootstrap.build.mk mk/build.mk
+               ${PKGSRC_SETENV} PATH=${PATH} \
+               CONF_CC_OPTS_STAGE0=${CFLAGS:Q} \
+               CONF_GCC_LINKER_OPTS_STAGE0="-L${PREFIX}/lib 
${COMPILER_RPATH_FLAG}${PREFIX}/lib" \
+               CONF_LD_LINKER_OPTS_STAGE0="-L${PREFIX}/lib 
${LINKER_RPATH_FLAG}${PREFIX}/lib" \
+               CONF_CC_OPTS_STAGE1=${CFLAGS:Q} \
+               CONF_GCC_LINKER_OPTS_STAGE1="-L${PREFIX}/lib 
${COMPILER_RPATH_FLAG}${PREFIX}/lib" \
+               CONF_LD_LINKER_OPTS_STAGE1="-L${PREFIX}/lib 
${LINKER_RPATH_FLAG}${PREFIX}/lib" \
+               CONF_CC_OPTS_STAGE2=${CFLAGS:Q} \
+               CONF_GCC_LINKER_OPTS_STAGE2="-L${PREFIX}/lib 
${COMPILER_RPATH_FLAG}${PREFIX}/lib" \
+               CONF_LD_LINKER_OPTS_STAGE2="-L${PREFIX}/lib 
${LINKER_RPATH_FLAG}${PREFIX}/lib" \
+               ${SH} ./configure && \
+               ${SED} -e "s,@PREFIX@,${BUILDLINK_PREFIX.ncurses:Q},g" 
/${FILESDIR:Q}/bootstrap.build.mk > mk/build.mk
        ${TOUCH} ${.TARGET}

 ${WRKDIR}/stamp-build-boot: ${WRKDIR}/stamp-configure-boot
@@ -117,5 +134,5 @@
 # This can take up half an hour. Memory usage is also very high, about 680 MiB.
 ${WRKDIR}/${BOOT_ARCHIVE}: ${WRKDIR}/${BOOT_TARBALL}
        @${PHASE_MSG} "Compressing binary distribution of bootstrapping 
${DISTNAME}"
-       ${PREFIX:Q}/bin/xz --verbose -9 --extreme ${WRKDIR:Q}/${BOOT_TARBALL}
+       ${XZ} --verbose -9 --extreme ${WRKDIR:Q}/${BOOT_TARBALL}
 .endif
Index: buildlink3.mk
===================================================================
RCS file: /cvsroot/pkgsrc-wip/wip/ghc/buildlink3.mk,v
retrieving revision 1.13
diff -u -r1.13 buildlink3.mk
--- buildlink3.mk       23 Feb 2013 12:24:07 -0000      1.13
+++ buildlink3.mk       11 Dec 2013 12:52:24 -0000
@@ -5,7 +5,7 @@
 .if !defined(GHC_BUILDLINK3_MK)
 GHC_BUILDLINK3_MK:=

-BUILDLINK_API_DEPENDS.ghc+=    ghc>=7.6.2
+BUILDLINK_API_DEPENDS.ghc+=    ghc>=7.6.3
 BUILDLINK_PKGSRCDIR.ghc?=      ../../wip/ghc

 .include "../../converters/libiconv/buildlink3.mk"
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc-wip/wip/ghc/distinfo,v
retrieving revision 1.18
diff -u -r1.18 distinfo
--- distinfo    23 Feb 2013 12:24:07 -0000      1.18
+++ distinfo    11 Dec 2013 12:52:24 -0000
@@ -1,27 +1,19 @@
 $NetBSD$

-SHA1 (ghc-7.6.2-boot-i386-unknown-freebsd.tar.xz) = 
b7a286b89ffd39dde789776fd925efb452e75233
-RMD160 (ghc-7.6.2-boot-i386-unknown-freebsd.tar.xz) = 
707ad61207e8caad6d06a65fbe87447798d153f6
-Size (ghc-7.6.2-boot-i386-unknown-freebsd.tar.xz) = 27926040 bytes
-SHA1 (ghc-7.6.2-boot-i386-unknown-netbsd.tar.xz) = 
0786ea45e68a9aecc46799c893aa666eb02f5878
-RMD160 (ghc-7.6.2-boot-i386-unknown-netbsd.tar.xz) = 
57db9cc16ff78c7e410d653b74d885bf2c69e13d
-Size (ghc-7.6.2-boot-i386-unknown-netbsd.tar.xz) = 28261476 bytes
-SHA1 (ghc-7.6.2-boot-powerpc-apple-darwin.tar.xz) = 
90a4e64842426dd956650e8ef2e17e9ef0b9a69b
-RMD160 (ghc-7.6.2-boot-powerpc-apple-darwin.tar.xz) = 
fb1b85b25195846f260b4f8082908e80bc7a6d0f
-Size (ghc-7.6.2-boot-powerpc-apple-darwin.tar.xz) = 33635664 bytes
-SHA1 (ghc-7.6.2-boot-x86_64-unknown-linux.tar.xz) = 
3cb91c05cd1c0f12e3420d466636e110934a11ac
-RMD160 (ghc-7.6.2-boot-x86_64-unknown-linux.tar.xz) = 
4a57fcbe2c7b99371f61e3a8f4bfdc4e9aae4339
-Size (ghc-7.6.2-boot-x86_64-unknown-linux.tar.xz) = 28837552 bytes
-SHA1 (ghc-7.6.2-boot-x86_64-unknown-netbsd.tar.xz) = 
3d3e29ea427c9b26760fb232b77772bc63dd8938
-RMD160 (ghc-7.6.2-boot-x86_64-unknown-netbsd.tar.xz) = 
b1325b7ae4d39362073c24a226b6bd86d124569e
-Size (ghc-7.6.2-boot-x86_64-unknown-netbsd.tar.xz) = 28778048 bytes
-SHA1 (ghc-7.6.2-src.tar.bz2) = 17329b0f1a401f3402cce13ba5e4cf8fbfa41a1d
-RMD160 (ghc-7.6.2-src.tar.bz2) = 3aa6cc4daaba1f14f28a7720d6d39cf1d9f982f2
-Size (ghc-7.6.2-src.tar.bz2) = 110778081 bytes
+SHA1 (ghc-7.6.3-boot-i386-unknown-netbsd.tar.xz) = 
9fc2f538da69ede96f0754e0cf5d376280c5f2ee
+RMD160 (ghc-7.6.3-boot-i386-unknown-netbsd.tar.xz) = 
4f188f1b7ba992cc1a1436aac68d11ef78f7714c
+Size (ghc-7.6.3-boot-i386-unknown-netbsd.tar.xz) = 28258276 bytes
+SHA1 (ghc-7.6.3-boot-x86_64-unknown-netbsd.tar.xz) = 
0d6da7f192a25d154f46554777909f19002a48a3
+RMD160 (ghc-7.6.3-boot-x86_64-unknown-netbsd.tar.xz) = 
9995bf052e5737074692a107d5210663759d796c
+Size (ghc-7.6.3-boot-x86_64-unknown-netbsd.tar.xz) = 28766012 bytes
+SHA1 (ghc-7.6.3-src.tar.bz2) = 8938e1ef08b37a4caa071fa169e79a3001d065ff
+RMD160 (ghc-7.6.3-src.tar.bz2) = 82a673ed38b7cf9a59afeb01057625fc761a822b
+Size (ghc-7.6.3-src.tar.bz2) = 110763823 bytes
 SHA1 (patch-Makefile) = a6692a4a90b8003a8719c51d82d15f5af0ba1907
 SHA1 (patch-ghc.mk) = c4210aaa3e2b4a319b0b70da375ac89fddde5cb7
 SHA1 (patch-libraries_integer-gmp_configure.ac) = 
bc5ce3a6c39d681c413eb08b66e7287e39406fe0
 SHA1 (patch-libraries_integer-simple_GHC_Integer.hs) = 
f079285bc489c194959b9bee2aa5c977ec77ae1e
 SHA1 (patch-libraries_integer-simple_GHC_Integer_Type.hs) = 
b3140e169726f78f6d3b4edcd4cc119b6f767bfa
+SHA1 (patch-rts_Linker.c) = e38e3035ffdf7a46bf681e7220704ba617f3f627
 SHA1 (patch-rts_StgCRun.c) = dcbc883cb4826aeccac0be09647b7889c7809271
 SHA1 (patch-rts_ghc.mk) = 4dd33c5ac593736a9fa0fdbdd65df90549fac771
Index: files/bootstrap.build.mk
===================================================================
RCS file: /cvsroot/pkgsrc-wip/wip/ghc/files/bootstrap.build.mk,v
retrieving revision 1.1
diff -u -r1.1 bootstrap.build.mk
--- files/bootstrap.build.mk    23 Feb 2013 12:24:07 -0000      1.1
+++ files/bootstrap.build.mk    11 Dec 2013 12:52:24 -0000
@@ -29,3 +29,7 @@

 # We'd like to distinguish bootstrapping bindists from normal ones.
 BIN_DIST_NAME      = ghc-$(ProjectVersion)-boot
+
+libraries/terminfo_CONFIGURE_OPTS += \
+         --configure-option=--with-curses-includes=@PREFIX@/include \
+         --configure-option=--with-curses-libraries=@PREFIX@/lib
Index: patches/patch-rts_Linker.c
===================================================================
RCS file: patches/patch-rts_Linker.c
diff -N patches/patch-rts_Linker.c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-rts_Linker.c  11 Dec 2013 12:52:24 -0000
@@ -0,0 +1,26 @@
+$NetBSD$
+
+Support 64-bit x86 SunOS.
+
+--- rts/Linker.c.orig  2013-04-18 21:22:46.000000000 +0000
++++ rts/Linker.c
+@@ -75,7 +75,8 @@
+     (   defined(linux_HOST_OS)     || defined(freebsd_HOST_OS) || \
+         defined(dragonfly_HOST_OS) || defined(netbsd_HOST_OS ) || \
+         defined(openbsd_HOST_OS  ) || defined(darwin_HOST_OS ) || \
+-        defined(kfreebsdgnu_HOST_OS) || defined(gnu_HOST_OS)))
++        defined(kfreebsdgnu_HOST_OS) || defined(gnu_HOST_OS) || \
++      defined(solari2_HOST_OS)))
+ /* Don't use mmap on powerpc_HOST_ARCH as mmap doesn't support
+  * reallocating but we need to allocate jump islands just after each
+  * object images. Otherwise relative branches to jump islands can fail
+@@ -4014,6 +4015,9 @@ ocResolve_PEi386 ( ObjectCode* oc )
+ #  define ELF_TARGET_386    /* Used inside <elf.h> */
+ #elif defined(x86_64_HOST_ARCH)
+ #  define ELF_TARGET_X64_64
++#  if defined(solaris2_HOST_OS)
++#    define ELF_TARGET_AMD64
++#  endif
+ #  define ELF_64BIT
+ #endif
+

--
OBATA Akio / obache%NetBSD.org@localhost


Home | Main Index | Thread Index | Old Index