diff --git a/lang/smalltalk/Makefile b/lang/smalltalk/Makefile index 591a27d6302b..64a6dfd1f13d 100644 --- a/lang/smalltalk/Makefile +++ b/lang/smalltalk/Makefile @@ -1,82 +1,79 @@ PORTNAME= smalltalk PORTVERSION= 3.2.5 -PORTREVISION= 17 +PORTREVISION= 18 CATEGORIES= lang MASTER_SITES= GNU MAINTAINER= danfe@FreeBSD.org COMMENT= GNU Smalltalk WWW= https://smalltalk.gnu.org/ LICENSE= GPLv2+ -BROKEN_aarch64= Fails to link: undefined reference to sbrk BROKEN_powerpc64= Fails to build: gst-package: did not understand #~ -BROKEN_riscv64= Fails to link: undefined reference to sbrk -BROKEN_sparc64= Fails to install BUILD_DEPENDS= zip:archivers/zip \ gawk:lang/gawk LIB_DEPENDS= libgdbm.so:databases/gdbm \ libffi.so:devel/libffi \ libltdl.so:devel/libltdl \ libcairo.so:graphics/cairo \ libexpat.so:textproc/expat2 USES= gl gmake gnome iconv libtool makeinfo pathfix pkgconfig \ readline shebangfix sqlite tar:xz xorg USE_GL= gl glu glut USE_GNOME= pango USE_XORG= ice sm x11 xi xmu GNU_CONFIGURE= yes CONFIGURE_ENV= ac_cv_prog_EMACS=no ac_cv_prog_AWK=gawk CONFIGURE_ARGS= --enable-generational-gc=no \ --enable-gtk=no \ --localstatedir="${PREFIX}/var" \ --with-emacs=no \ --with-gmp=no USE_LDCONFIG= yes SHEBANG_LANG= sed sed_OLD_CMD= /bin/sed sed_CMD= ${SED} SHEBANG_FILES= packages/vfs/deb packages/vfs/mailfs \ examples/pepe.sed examples/xml.sed TEST_TARGET= check PLIST_SUB= VERSION="${PORTVERSION}" PORTDATA= * INFO= gst gst-base gst-libs OPTIONS_DEFINE= PGSQL SDL OPTIONS_DEFAULT= PGSQL SDL OPTIONS_SUB= yes PGSQL_USES= pgsql SDL_USES= sdl SDL_USE= SDL=image,mixer,sdl,sound,ttf post-patch: @${REINPLACE_CMD} -e 's/ia64-\*-\* /&|amd64-*-* /' \ ${WRKSRC}/configure @${REINPLACE_CMD} -e 's/lrintl (truncl/lroundl (truncl/' \ ${WRKSRC}/libgst/prims.def \ ${WRKSRC}/libgst/prims.inl @${REINPLACE_CMD} -e '/^gst_SkippedEntityHandler/,+1s/)/, int)/' \ ${WRKSRC}/packages/xml/expat/expat.c @${REINPLACE_CMD} -e '/^ac_include/s/\\$$/#include \\/' \ ${WRKSRC}/snprintfv/configure post-build: @${SED} -e 's|@bindir@|${PREFIX}/bin|g' \ ${WRKSRC}/gst-mode.el.in > ${WRKSRC}/gst-mode.el post-install: @${LN} -sf gst-load.1 ${STAGEDIR}${MANPREFIX}/man/man1/gst-reload.1 @${MKDIR} ${STAGEDIR}${DATADIR}/gtk ${INSTALL_DATA} ${WRKSRC}/*.el ${STAGEDIR}${PREFIX}/share/emacs/site-lisp @${LS} -1 ${STAGEDIR}${PREFIX}/bin/gst* |grep -v config|${XARGS} ${STRIP_CMD} @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/smalltalk/*.so @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libgst.so .include diff --git a/lang/smalltalk/files/patch-libgst_sysdep_posix_mem.c b/lang/smalltalk/files/patch-libgst_sysdep_posix_mem.c new file mode 100644 index 000000000000..a9514dea3ca0 --- /dev/null +++ b/lang/smalltalk/files/patch-libgst_sysdep_posix_mem.c @@ -0,0 +1,59 @@ +--- libgst/sysdep/posix/mem.c.orig ++++ libgst/sysdep/posix/mem.c +@@ -92,20 +92,27 @@ + #if defined MAP_AUTORESRV && !defined MAP_NORESERVE + # define MAP_NORESERVE MAP_AUTORESRV + #endif ++#if !defined(MAP_NORESERVE) && defined(__FreeBSD__) ++#define MAP_NORESERVE 0 /* always true */ ++#endif + #ifdef MAP_NORESERVE + static PTR noreserve_reserve (PTR, size_t); + static void noreserve_decommit (PTR, size_t); + #endif ++#ifndef __FreeBSD__ + static mst_Boolean anon_mmap_check (void); + static PTR anon_mmap_reserve (PTR, size_t); + static void anon_mmap_release (PTR, size_t); ++#endif + static PTR anon_mmap_commit (PTR, size_t); + + struct heap_implementation heap_impl_tab[] = { + #ifdef MAP_NORESERVE + { NULL, noreserve_reserve, _gst_osmem_free, anon_mmap_commit, noreserve_decommit }, + #endif ++#ifndef __FreeBSD__ + { anon_mmap_check, anon_mmap_reserve, anon_mmap_release, anon_mmap_commit, _gst_osmem_free }, ++#endif + { NULL, NULL, NULL, NULL, NULL } + }; + +@@ -195,6 +202,7 @@ + + static char *baseaddr; + ++#ifndef __FreeBSD__ + PTR + anon_mmap_reserve (PTR address, size_t size) + { +@@ -220,6 +228,7 @@ + if ((char *) baseaddr == (char *) base + size) + baseaddr = base; + } ++#endif + + PTR + anon_mmap_commit (PTR base, size_t size) +@@ -231,6 +240,7 @@ + return UNCOMMON (result == MAP_FAILED) ? NULL : result; + } + ++#ifndef __FreeBSD__ + /* This is hairy and a hack. We have to find a place for our heaps... */ + + /* This signal handler is used if it is the only means to decide if +@@ -360,3 +370,4 @@ + return (true); + } + } ++#endif