Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 May 2017 12:09:22 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r441844 - in head/lang/ghc: . files
Message-ID:  <201705271209.v4RC9MUr084534@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib (src committer)
Date: Sat May 27 12:09:22 2017
New Revision: 441844
URL: https://svnweb.freebsd.org/changeset/ports/441844

Log:
  Fix lang/ghc after ino64 src commit.
  
  Approved by:  bapt, pgj
  Sponsored by:	The FreeBSD Foundation
  Differential revision:	https://reviews.freebsd.org/D10798

Added:
  head/lang/ghc/files/wrap.c   (contents, props changed)
Modified:
  head/lang/ghc/Makefile

Modified: head/lang/ghc/Makefile
==============================================================================
--- head/lang/ghc/Makefile	Sat May 27 12:06:40 2017	(r441843)
+++ head/lang/ghc/Makefile	Sat May 27 12:09:22 2017	(r441844)
@@ -239,6 +239,9 @@ post-extract:
 	@${REINPLACE_CMD} -e 's|@SettingsCCompilerFlags@|& -Qunused-arguments|' ${BOOT_DIR}/settings.in
 .endif
 .endif
+.if empty(PORT_OPTIONS:MBOOT) && ${OPSYS} == FreeBSD && ${OSVERSION} >= 1200031
+	@${REINPLACE_CMD} -e 's|@SettingsCCompilerLinkFlags@|& -Wl,--wrap=readdir_r,--wrap=stat,--wrap=lstat,--wrap=fstat,--wrap=mknod|' ${BOOT_DIR}/settings.in
+.endif
 
 post-install-script:
 	@${FIND} -ds ${GHC_LIBDIR} -type f -print | ${SED} -E -e \
@@ -269,6 +272,14 @@ post-patch:
 
 pre-configure:
 	@${MKDIR} ${TMPDIR}
+.if empty(PORT_OPTIONS:MBOOTH) && ${OPSYS} == FreeBSD && \
+    ${OSVERSION} >= 1200031
+	${CC} ${CFLAGS} -c -o ${BOOT_DIR}/wrap.o ${PATCHDIR}/wrap.c
+	for x in ${BOOT_DIR}/rts/dist/build/libCffi*.a; do \
+	    ${AR} q $$x ${BOOT_DIR}/wrap.o; ${RANLIB} $$x; \
+	done
+	rm ${BOOT_DIR}/wrap.o
+.endif # Do not merge, prev condition need to grow OSVER check.
 .if empty(PORT_OPTIONS:MBOOT)
 	@(cd ${BOOT_DIR} && ${CONFIGURE_ENV} ${CONFIGURE_CMD} ${CONFIGURE_ARGS_BOOT})
 	@(cd ${BOOT_DIR} && PACKAGES='' ${MAKE_CMD} install)

Added: head/lang/ghc/files/wrap.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/ghc/files/wrap.c	Sat May 27 12:09:22 2017	(r441844)
@@ -0,0 +1,55 @@
+/* -*- ugly-hack-mode -*- */
+/* $FreeBSD$ */
+
+#include <sys/stat.h>
+
+struct old_dirent;
+struct old_stat;
+
+__asm(".symver	old_readdir_r, readdir_r@FBSD_1.0");
+int old_readdir_r(void *dirp, struct old_dirent *entry,
+    struct old_dirent **result);
+__asm(".symver	old_stat, stat@FBSD_1.0");
+int old_stat(const char * restrict path, struct old_stat * restrict sb);
+__asm(".symver	old_lstat, lstat@FBSD_1.0");
+int old_lstat(const char * restrict path, struct old_stat * restrict sb);
+__asm(".symver	old_fstat, fstat@FBSD_1.0");
+int old_fstat(int fd, struct old_stat *sb);
+__asm(".symver	old_mknod, mknod@FBSD_1.0");
+int old_mknod(const char *path, mode_t mode, uint32_t dev);
+
+int
+__wrap_readdir_r(void *dirp, struct old_dirent *entry,
+    struct old_dirent **result)
+{
+
+	return (old_readdir_r(dirp, entry, result));
+}
+
+int
+__wrap_stat(const char * restrict path, struct old_stat * restrict sb)
+{
+
+	return (old_stat(path, sb));
+}
+
+int
+__wrap_lstat(const char * restrict path, struct old_stat * restrict sb)
+{
+
+	return (old_lstat(path, sb));
+}
+
+int
+__wrap_fstat(int fd, struct old_stat *sb)
+{
+
+	return (old_fstat(fd, sb));
+}
+
+int
+__wrap_mknod(const char *path, mode_t mode, uint32_t dev)
+{
+
+	return (old_mknod(path, mode, dev));
+}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705271209.v4RC9MUr084534>