diff --git c/lang/ldc/Makefile i/lang/ldc/Makefile index 30101e86f365..acbe4c625ae4 100644 --- c/lang/ldc/Makefile +++ i/lang/ldc/Makefile @@ -1,7 +1,7 @@ # $FreeBSD$ PORTNAME= ldc -PORTVERSION= 1.14.0 +PORTVERSION= 1.15.0 DISTVERSIONPREFIX= v CATEGORIES= lang @@ -10,11 +10,11 @@ COMMENT= The LLVM-based D compiler LICENSE= BSD3CLAUSE -BUILD_DEPENDS= llvm70>0:devel/llvm70 -RUN_DEPENDS= llvm70>0:devel/llvm70 +BUILD_DEPENDS= llvm80>0:devel/llvm80 \ + ninja:devel/ninja +RUN_DEPENDS= llvm80>0:devel/llvm80 LIB_DEPENDS= libconfig.so:devel/libconfig -BROKEN_aarch64= fails to compile: Error: undefined identifier _jmp_buf, did you mean alias jmp_buf? BROKEN_armv6= fails to compile: Error: undefined identifier _jmp_buf, did you mean alias jmp_buf? BROKEN_armv7= fails to compile: Error: undefined identifier _jmp_buf, did you mean alias jmp_buf? BROKEN_powerpc64= fails to compile: cc1plus: error: unrecognized command line option "-std=c++11" @@ -23,25 +23,25 @@ USES= cmake:insource USE_GITHUB= yes GH_ACCOUNT= ldc-developers GH_PROJECT= ldc -GH_TUPLE= ldc-developers:ldc:911589c:tree/ltsmaster \ - ldc-developers:druntime:694089c:druntimelts/ltsmaster/runtime/druntime \ +GH_TUPLE= ldc-developers:ldc:d442f9f:tree/ltsmaster \ + ldc-developers:druntime:13b1ccf:druntimelts/ltsmaster/runtime/druntime \ ldc-developers:phobos:1d758b2:phoboslts/ltsmaster/runtime/phobos \ - ldc-developers:druntime:54cb25c:druntime/runtime/druntime \ - ldc-developers:phobos:71cf74f:phobos/runtime/phobos + ldc-developers:druntime:8a85f37:druntime/runtime/druntime \ + ldc-developers:phobos:981412b:phobos/runtime/phobos CMAKE_ARGS+= -DD_COMPILER:STRING="${WRKSRC}/ltsmaster/bin/ldmd2" \ -DBUILD_SHARED_LIBS:STRING="BOTH" -CC= clang70 -CXX= clang++70 +CC= clang80 +CXX= clang++80 BOOTVER= 0.17.6 -LLVM_CONFIG= llvm-config70 +LLVM_CONFIG= llvm-config80 LDCVER= ${PORTVERSION} .include -.if ${ARCH} == "amd64" +.if ${ARCH} == "amd64" || ${ARCH} == "aarch64" CFLAGS+= -fPIC .endif @@ -56,8 +56,8 @@ post-patch: pre-configure: @cd ${WRKSRC}/ltsmaster && \ - ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} . + ${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} -GNinja . @cd ${WRKSRC}/ltsmaster && \ - ${SETENV} ${MAKE_ENV} ${MAKE} + ${SETENV} ${MAKE_ENV} ninja .include diff --git c/lang/ldc/distinfo i/lang/ldc/distinfo index 88aab07c8ab5..2a2f4ef9455b 100644 --- c/lang/ldc/distinfo +++ i/lang/ldc/distinfo @@ -1,13 +1,13 @@ -TIMESTAMP = 1551800863 -SHA256 (ldc-developers-ldc-v1.14.0_GH0.tar.gz) = daa7876ce846861cd9feb92f35dc0ca537a845492ca8a3eebecc9d166bc324b3 -SIZE (ldc-developers-ldc-v1.14.0_GH0.tar.gz) = 1664660 -SHA256 (ldc-developers-ldc-911589c_GH0.tar.gz) = c10ee47d857358ea97eccd14b49b4152c7b2621c0129eee1e8f98988f1d13f5e -SIZE (ldc-developers-ldc-911589c_GH0.tar.gz) = 1231073 -SHA256 (ldc-developers-druntime-694089c_GH0.tar.gz) = 29b1a27f767ac9c8a0c30926991d9abcda119aaf923b05caa686a6c396ac0a83 -SIZE (ldc-developers-druntime-694089c_GH0.tar.gz) = 953726 +TIMESTAMP = 1555631456 +SHA256 (ldc-developers-ldc-v1.15.0_GH0.tar.gz) = ccf4f11b1c841b48abf39d6160cdf42424ad30ed18d51e5114080d82cdca8c94 +SIZE (ldc-developers-ldc-v1.15.0_GH0.tar.gz) = 1701470 +SHA256 (ldc-developers-ldc-d442f9f_GH0.tar.gz) = a74e55ef567209600fd5fe54f927df2db1540037ba2612ead55862bdf408ed79 +SIZE (ldc-developers-ldc-d442f9f_GH0.tar.gz) = 1231193 +SHA256 (ldc-developers-druntime-13b1ccf_GH0.tar.gz) = 0be26cb90b540e972eae3660e1b865f97d5b1cb6c7ffe76e2ec4eae89ed63f4a +SIZE (ldc-developers-druntime-13b1ccf_GH0.tar.gz) = 953762 SHA256 (ldc-developers-phobos-1d758b2_GH0.tar.gz) = af70f2d4b09e0062ba986e215677f484c1cec2977a74ca1a73d3534a120992e9 SIZE (ldc-developers-phobos-1d758b2_GH0.tar.gz) = 1923043 -SHA256 (ldc-developers-druntime-54cb25c_GH0.tar.gz) = 47a71942f9f6d4c36d867eb2526a72aece36fb959cf99619e525cacb4951e864 -SIZE (ldc-developers-druntime-54cb25c_GH0.tar.gz) = 1665530 -SHA256 (ldc-developers-phobos-71cf74f_GH0.tar.gz) = fe01cb3decccde3c5aa0defcba715c283a1f11bf2bed6aedd0e33e43030c9c72 -SIZE (ldc-developers-phobos-71cf74f_GH0.tar.gz) = 2355367 +SHA256 (ldc-developers-druntime-8a85f37_GH0.tar.gz) = 966c0ea5b99e56e834eed00f038bd77040898b23dc19e978189deaabe41a8ea7 +SIZE (ldc-developers-druntime-8a85f37_GH0.tar.gz) = 1699161 +SHA256 (ldc-developers-phobos-981412b_GH0.tar.gz) = 2bafb346226e68a9739bd0e65f20f1c176fa51b800b738469b73599e2f3c68b7 +SIZE (ldc-developers-phobos-981412b_GH0.tar.gz) = 2358879 diff --git c/lang/ldc/files/fbsd12-runtime-druntime-src-core-sys-posix_dirent.d i/lang/ldc/files/fbsd12-runtime-druntime-src-core-sys-posix_dirent.d index b6fbf9947824..073a6e299c3e 100644 --- c/lang/ldc/files/fbsd12-runtime-druntime-src-core-sys-posix_dirent.d +++ i/lang/ldc/files/fbsd12-runtime-druntime-src-core-sys-posix_dirent.d @@ -1,21 +1,19 @@ ---- runtime/druntime/src/core/sys/posix/dirent.d 2019-03-05 17:39:54.822687000 +0000 -+++ runtime/druntime/src/core/sys/posix/dirent.d 2019-03-05 17:41:19.267583000 +0000 +--- runtime/druntime/src/core/sys/posix/dirent.d.orig 2019-04-06 12:24:12.000000000 +0000 ++++ runtime/druntime/src/core/sys/posix/dirent.d 2019-04-21 14:13:39.676998000 +0000 @@ -152,11 +152,13 @@ align(4) struct dirent { - uint d_fileno; -- ushort d_reclen; -- ubyte d_type; ++ ino_t d_fileno; ++ off_t d_off; + ushort d_reclen; + ubyte d_type; - ubyte d_namlen; -- char[256] d_name; -+ ino_t d_fileno; -+ off_t d_off; -+ ushort d_reclen; -+ ubyte d_type; -+ ushort d_namlen; -+ ushort d_pad1; -+ char[256] d_name; +- char[256] d_name = 0; ++ ushort d_namlen; ++ ushort d_pad1; ++ char[256] d_name; } alias void* DIR; diff --git c/lang/ldc/files/patch-aarch64 i/lang/ldc/files/patch-aarch64 new file mode 100644 index 000000000000..a7e4dd2d3174 --- /dev/null +++ i/lang/ldc/files/patch-aarch64 @@ -0,0 +1,82 @@ +- Upstreamed aarch64 support patch (but not merged into ldc's fork): + https://github.com/dlang/druntime/pull/2269 +- Remove failing (on aarch64) static assert in bootstrap compiler's math function + +--- ltsmaster/runtime/druntime/src/core/sys/posix/setjmp.d.orig 2018-12-15 16:48:11 UTC ++++ ltsmaster/runtime/druntime/src/core/sys/posix/setjmp.d +@@ -163,6 +163,12 @@ else version( FreeBSD ) + enum _JBLEN = 5; + struct _jmp_buf { c_long[_JBLEN + 1] _jb; } + } ++ else version( AArch64 ) ++ { ++ enum _JBLEN = 31; ++ // __int128_t ++ struct _jmp_buf { long[2][_JBLEN + 1] _jb; }; ++ } + else + static assert(0); + alias _jmp_buf[1] jmp_buf; +@@ -249,6 +255,11 @@ else version( FreeBSD ) + enum _JB_SIGMASK = 3; + enum _JB_SIGFLAG = 5; + struct _sigjmp_buf { c_long[_JBLEN + 1] _sjb; } ++ } ++ else version( AArch64 ) ++ { ++ // __int128_t ++ struct _sigjmp_buf { long[2][_JBLEN + 1] _jb; }; + } + else + static assert(0); +--- ltsmaster/runtime/druntime/src/core/sys/posix/ucontext.d.orig 2018-12-15 16:48:11 UTC ++++ ltsmaster/runtime/druntime/src/core/sys/posix/ucontext.d +@@ -686,6 +686,38 @@ else version( FreeBSD ) + int[6] mc_spare2; + } + } ++ else version( AArch64 ) ++ { ++ alias __register_t = long; ++ ++ struct gpregs ++ { ++ __register_t[30] gp_x; ++ __register_t gp_lr; ++ __register_t gp_sp; ++ __register_t gp_elr; ++ uint gp_spsr; ++ int gp_pad; ++ } ++ ++ struct fpregs ++ { ++ ulong[2][32] fp_q; // __uint128_t ++ uint fp_sr; ++ uint fp_cr; ++ int fp_flags; ++ int fp_pad; ++ } ++ ++ struct mcontext_t ++ { ++ gpregs mc_gpregs; ++ fpregs mc_fpregs; ++ int mc_flags; ++ int mc_pad; ++ ulong[8] mc_spare; ++ } ++ } + + // + enum UCF_SWAPPED = 0x00000001; +--- ltsmaster/runtime/phobos/std/internal/math/gammafunction.d.orig 2019-04-20 23:21:36 UTC ++++ ltsmaster/runtime/phobos/std/internal/math/gammafunction.d +@@ -1654,7 +1654,6 @@ real logmdigammaInverse(real y) + { + import std.numeric: findRoot; + enum maxY = logmdigamma(real.min_normal); +- static assert(maxY > 0 && maxY <= real.max); + + if (y >= maxY) + { diff --git c/lang/ldc/pkg-plist i/lang/ldc/pkg-plist index b3cc42ec5630..50c299bb27e5 100644 --- c/lang/ldc/pkg-plist +++ i/lang/ldc/pkg-plist @@ -14,12 +14,14 @@ include/d/core/exception.d include/d/core/internal/abort.d include/d/core/internal/arrayop.d include/d/core/internal/convert.d +include/d/core/internal/dassert.d include/d/core/internal/hash.d include/d/core/internal/parseoptions.d include/d/core/internal/spinlock.d include/d/core/internal/string.d include/d/core/internal/traits.d include/d/core/internal/utf.d +include/d/core/lifetime.d include/d/core/math.d include/d/core/memory.d include/d/core/runtime.d @@ -46,9 +48,12 @@ include/d/core/stdc/tgmath.d include/d/core/stdc/time.d include/d/core/stdc/wchar_.d include/d/core/stdc/wctype.d +include/d/core/stdcpp/allocator.d include/d/core/stdcpp/array.d include/d/core/stdcpp/exception.d +include/d/core/stdcpp/new_.d include/d/core/stdcpp/string_view.d +include/d/core/stdcpp/type_traits.d include/d/core/stdcpp/typeinfo.d include/d/core/stdcpp/xutility.d include/d/core/sync/barrier.d @@ -554,23 +559,23 @@ include/d/std/xml.d include/d/std/zip.d include/d/std/zlib.d lib/libdruntime-ldc-debug-shared.so -lib/libdruntime-ldc-debug-shared.so.2.0.84 -lib/libdruntime-ldc-debug-shared.so.84 +lib/libdruntime-ldc-debug-shared.so.2.0.85 +lib/libdruntime-ldc-debug-shared.so.85 lib/libdruntime-ldc-debug.a lib/libdruntime-ldc-shared.so -lib/libdruntime-ldc-shared.so.2.0.84 -lib/libdruntime-ldc-shared.so.84 +lib/libdruntime-ldc-shared.so.2.0.85 +lib/libdruntime-ldc-shared.so.85 lib/libdruntime-ldc.a lib/libldc-jit-rt.a lib/libldc-jit.so -lib/libldc-jit.so.2.0.84 -lib/libldc-jit.so.84 +lib/libldc-jit.so.2.0.85 +lib/libldc-jit.so.85 lib/libphobos2-ldc-debug-shared.so -lib/libphobos2-ldc-debug-shared.so.2.0.84 -lib/libphobos2-ldc-debug-shared.so.84 +lib/libphobos2-ldc-debug-shared.so.2.0.85 +lib/libphobos2-ldc-debug-shared.so.85 lib/libphobos2-ldc-debug.a lib/libphobos2-ldc-shared.so -lib/libphobos2-ldc-shared.so.2.0.84 -lib/libphobos2-ldc-shared.so.84 +lib/libphobos2-ldc-shared.so.2.0.85 +lib/libphobos2-ldc-shared.so.85 lib/libphobos2-ldc.a @dir include/d/etc/c/zlib