git: 87ab6d409fe6 - main - lang/ldc: Update to 1.30.0

From: Jose Alonso Cardenas Marquez <acm_at_FreeBSD.org>
Date: Tue, 15 Nov 2022 00:12:02 UTC
The branch main has been updated by acm:

URL: https://cgit.FreeBSD.org/ports/commit/?id=87ab6d409fe6e8988872b18a4128713fe0e3d9eb

commit 87ab6d409fe6e8988872b18a4128713fe0e3d9eb
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2022-11-15 00:10:00 +0000
Commit:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
CommitDate: 2022-11-15 00:10:00 +0000

    lang/ldc: Update to 1.30.0
    
    ChangeLog at: https://github.com/ldc-developers/ldc/releases/tag/v1.30.0
    PR:             266828
---
 ...ntime-druntime-src-core-sys-freebsd-sys_event.d | 14 -----
 ...-runtime-druntime-src-core-sys-posix-sys_stat.d | 59 ----------------------
 ...runtime-druntime-src-core-sys-posix-sys_types.d | 19 -------
 ...er-runtime-druntime-src-core-sys-posix_dirent.d | 17 -------
 lang/ldc/files/patch-cmake_Modules_FindLLVM.cmake  | 11 ----
 lang/ldc/files/patch-driver_linker-gcc.cpp         |  2 +-
 lang/ldc/files/patch-driver_targetmachine.cpp      |  2 +-
 .../patch-ltsmaster_cmake_Modules_FindLLVM.cmake   | 12 -----
 .../files/patch-ltsmaster_driver_targetmachine.cpp | 27 ----------
 ...er_runtime_druntime_src_core_sys_posix_setjmp.d | 27 ----------
 ..._runtime_druntime_src_core_sys_posix_ucontext.d | 41 ---------------
 ...untime_phobos_std_internal_math_gammafunction.d | 22 --------
 lang/ldc/files/patch-runtime_CMakeLists.txt        | 22 ++++----
 13 files changed, 13 insertions(+), 262 deletions(-)

diff --git a/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-freebsd-sys_event.d b/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-freebsd-sys_event.d
deleted file mode 100644
index 761a66631ae9..000000000000
--- a/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-freebsd-sys_event.d
+++ /dev/null
@@ -1,14 +0,0 @@
---- ltsmaster/runtime/druntime/src/core/sys/freebsd/sys/event.d	2018-08-21 18:55:47.000000000 +0000
-+++ ltsmaster/runtime/druntime/src/core/sys/freebsd/sys/event.d	2019-03-06 04:06:16.750660000 +0000
-@@ -46,8 +46,9 @@
-     short       filter; /* filter for event */
-     ushort       flags;
-     uint        fflags;
--    intptr_t      data;
--    void        *udata; /* opaque user data identifier */
-+    long      data;
-+    void*        udata; /* opaque user data identifier */
-+    ulong[4]        ext;
- }
- 
- enum
diff --git a/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-posix-sys_stat.d b/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-posix-sys_stat.d
deleted file mode 100644
index 03fb304eabda..000000000000
--- a/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-posix-sys_stat.d
+++ /dev/null
@@ -1,59 +0,0 @@
---- ltsmaster/runtime/druntime/src/core/sys/posix/sys/stat.d	2018-08-21 18:55:47.000000000 +0000
-+++ ltsmaster/runtime/druntime/src/core/sys/posix/sys/stat.d	2019-03-06 04:13:18.999142000 +0000
-@@ -714,32 +714,42 @@
- {
-     struct stat_t
-     {
--        dev_t       st_dev;
--        ino_t       st_ino;
--        mode_t      st_mode;
--        nlink_t     st_nlink;
--        uid_t       st_uid;
--        gid_t       st_gid;
--        dev_t       st_rdev;
-+        dev_t     st_dev;
-+        ino_t     st_ino;
-+        nlink_t   st_nlink;
-+        mode_t    st_mode;
-+        short st_padding0;
-+        uid_t     st_uid;
-+        gid_t     st_gid;
-+        int st_padding1;
-+        dev_t     st_rdev;
- 
-+        version(X86) int st_atim_ext;
-+
-         time_t      st_atime;
-         c_long      __st_atimensec;
-+
-+        version(X86) int st_mtim_ext;
-+
-         time_t      st_mtime;
-         c_long      __st_mtimensec;
-+
-+        version(X86) int st_ctim_ext;
-+
-         time_t      st_ctime;
-         c_long      __st_ctimensec;
- 
--        off_t       st_size;
--        blkcnt_t    st_blocks;
--        blksize_t   st_blksize;
--        fflags_t    st_flags;
--        uint        st_gen;
--        int         st_lspare;
-+        version(X86) int st_btim_ext;
- 
-         time_t      st_birthtime;
-         c_long      st_birthtimensec;
- 
--        ubyte[16 - timespec.sizeof] padding;
-+	off_t     st_size;
-+        blkcnt_t st_blocks;
-+        blksize_t st_blksize;
-+        fflags_t  st_flags;
-+        ulong st_gen;
-+        ulong[10] st_spare;
-     }
- 
-     enum S_IRUSR    = 0x100; // octal 0000400
diff --git a/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-posix-sys_types.d b/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-posix-sys_types.d
deleted file mode 100644
index e4036fc44b5c..000000000000
--- a/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-posix-sys_types.d
+++ /dev/null
@@ -1,19 +0,0 @@
---- ltsmaster/runtime/druntime/src/core/sys/posix/sys/types.d	2019-03-06 04:17:35.909692000 +0000
-+++ ltsmaster/runtime/druntime/src/core/sys/posix/sys/types.d	2019-03-06 04:18:41.162430000 +0000
-@@ -124,12 +124,12 @@
- else version( FreeBSD )
- {
-     alias long      blkcnt_t;
--    alias uint      blksize_t;
--    alias uint      dev_t;
-+    alias ulong      blksize_t;
-+    alias ulong      dev_t;
-     alias uint      gid_t;
--    alias uint      ino_t;
-+    alias ulong      ino_t;
-     alias ushort    mode_t;
--    alias ushort    nlink_t;
-+    alias ulong    nlink_t;
-     alias long      off_t;
-     alias int       pid_t;
-     //size_t (defined in core.stdc.stddef)
diff --git a/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-posix_dirent.d b/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-posix_dirent.d
deleted file mode 100644
index 8387f06a18d2..000000000000
--- a/lang/ldc/files/fbsd12-ltsmaster-runtime-druntime-src-core-sys-posix_dirent.d
+++ /dev/null
@@ -1,17 +0,0 @@
---- ltsmaster/runtime/druntime/src/core/sys/posix/dirent.d	2019-03-06 04:07:06.836421000 +0000
-+++ ltsmaster/runtime/druntime/src/core/sys/posix/dirent.d	2019-03-06 04:08:34.306001000 +0000
-@@ -131,10 +131,12 @@
-     align(4)
-     struct dirent
-     {
--        uint      d_fileno;
-+        ino_t     d_fileno;
-+        off_t     d_off;
-         ushort    d_reclen;
-         ubyte     d_type;
--        ubyte     d_namlen;
-+        ushort    d_namlen;
-+        ushort    d_pad1;
-         char[256] d_name;
-     }
- 
diff --git a/lang/ldc/files/patch-cmake_Modules_FindLLVM.cmake b/lang/ldc/files/patch-cmake_Modules_FindLLVM.cmake
deleted file mode 100644
index 2bb6e4eb3ef3..000000000000
--- a/lang/ldc/files/patch-cmake_Modules_FindLLVM.cmake
+++ /dev/null
@@ -1,11 +0,0 @@
---- cmake/Modules/FindLLVM.cmake.orig	2020-07-15 20:25:23 UTC
-+++ cmake/Modules/FindLLVM.cmake
-@@ -30,7 +30,7 @@
- # We also want an user-specified LLVM_ROOT_DIR to take precedence over the
- # system default locations such as /usr/local/bin. Executing find_program()
- # multiples times is the approach recommended in the docs.
--set(llvm_config_names llvm-config-10.0 llvm-config100 llvm-config-10
-+set(llvm_config_names llvm-config-10.0 llvm-config100 llvm-config-10 llvm-config10
-                       llvm-config-9.0 llvm-config90 llvm-config-9
-                       llvm-config-8.0 llvm-config80 llvm-config-8
-                       llvm-config-7.0 llvm-config70 llvm-config-7
diff --git a/lang/ldc/files/patch-driver_linker-gcc.cpp b/lang/ldc/files/patch-driver_linker-gcc.cpp
index 2a0e64d83526..563392761cad 100644
--- a/lang/ldc/files/patch-driver_linker-gcc.cpp
+++ b/lang/ldc/files/patch-driver_linker-gcc.cpp
@@ -1,4 +1,4 @@
---- driver/linker-gcc.cpp.orig	2020-06-16 16:15:55 UTC
+--- driver/linker-gcc.cpp	2020-06-16 16:15:55 UTC
 +++ driver/linker-gcc.cpp
 @@ -647,6 +647,8 @@ void ArgsBuilder::addDefaultPlatformLibs() {
      args.push_back("-ldl");
diff --git a/lang/ldc/files/patch-driver_targetmachine.cpp b/lang/ldc/files/patch-driver_targetmachine.cpp
index 1ef456ed1715..daeba1879579 100644
--- a/lang/ldc/files/patch-driver_targetmachine.cpp
+++ b/lang/ldc/files/patch-driver_targetmachine.cpp
@@ -1,4 +1,4 @@
---- driver/targetmachine.cpp.orig	2020-06-16 18:15:55 UTC
+--- driver/targetmachine.cpp	2020-06-16 18:15:55 UTC
 +++ driver/targetmachine.cpp
 @@ -444,6 +444,10 @@ createTargetMachine(const std::string targetTriple, co
        // these OSes.
diff --git a/lang/ldc/files/patch-ltsmaster_cmake_Modules_FindLLVM.cmake b/lang/ldc/files/patch-ltsmaster_cmake_Modules_FindLLVM.cmake
deleted file mode 100644
index 879d88cf16c5..000000000000
--- a/lang/ldc/files/patch-ltsmaster_cmake_Modules_FindLLVM.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
---- ltsmaster/cmake/Modules/FindLLVM.cmake.orig	2020-07-13 18:03:33 UTC
-+++ ltsmaster/cmake/Modules/FindLLVM.cmake
-@@ -27,7 +27,8 @@
- # We also want an user-specified LLVM_ROOT_DIR to take precedence over the
- # system default locations such as /usr/local/bin. Executing find_program()
- # multiples times is the approach recommended in the docs.
--set(llvm_config_names llvm-config-6.0 llvm-config60
-+set(llvm_config_names llvm-config-7.0 llvm-config70
-+                      llvm-config-6.0 llvm-config60
-                       llvm-config-5.0 llvm-config50
-                       llvm-config-4.0 llvm-config40
-                       llvm-config-3.9 llvm-config39
diff --git a/lang/ldc/files/patch-ltsmaster_driver_targetmachine.cpp b/lang/ldc/files/patch-ltsmaster_driver_targetmachine.cpp
deleted file mode 100644
index 411937b81102..000000000000
--- a/lang/ldc/files/patch-ltsmaster_driver_targetmachine.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
---- ltsmaster/driver/targetmachine.cpp 2018-08-24 00:55:46 UTC
-+++ ltsmaster/driver/targetmachine.cpp
-@@ -587,6 +587,23 @@
-     break;
-   }
- 
-+  // Taken from clang's lib/Driver/ToolChains/Gnu.cpp
-+  if (triple.getArch() == llvm::Triple::aarch64 ||
-+      triple.getArch() == llvm::Triple::aarch64_be ||
-+      (triple.getOS() == llvm::Triple::FreeBSD &&
-+       triple.getOSMajorVersion() >= 12) ||
-+      triple.getOS() == llvm::Triple::NaCl ||
-+      (triple.getVendor() == llvm::Triple::MipsTechnologies &&
-+       !triple.hasEnvironment()) ||
-+      triple.getOS() == llvm::Triple::Solaris
-+#if LDC_LLVM_VER >= 400
-+      || triple.getArch() == llvm::Triple::riscv32
-+      || triple.getArch() == llvm::Triple::riscv64
-+#endif
-+      ) {
-+    targetOptions.UseInitArray = true;
-+  }
-+
-   // Right now, we only support linker-level dead code elimination on Linux
-   // using the GNU toolchain (based on ld's --gc-sections flag). The Apple ld
-   // on OS X supports a similar flag (-dead_strip) that doesn't require
-
diff --git a/lang/ldc/files/patch-ltsmaster_runtime_druntime_src_core_sys_posix_setjmp.d b/lang/ldc/files/patch-ltsmaster_runtime_druntime_src_core_sys_posix_setjmp.d
deleted file mode 100644
index 6fb3a8e8aeb0..000000000000
--- a/lang/ldc/files/patch-ltsmaster_runtime_druntime_src_core_sys_posix_setjmp.d
+++ /dev/null
@@ -1,27 +0,0 @@
---- ltsmaster/runtime/druntime/src/core/sys/posix/setjmp.d.orig	2020-11-14 19:34:19 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;
-@@ -250,6 +256,11 @@ else version( FreeBSD )
-         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);
-     alias _sigjmp_buf[1] sigjmp_buf;
diff --git a/lang/ldc/files/patch-ltsmaster_runtime_druntime_src_core_sys_posix_ucontext.d b/lang/ldc/files/patch-ltsmaster_runtime_druntime_src_core_sys_posix_ucontext.d
deleted file mode 100644
index 25263385e821..000000000000
--- a/lang/ldc/files/patch-ltsmaster_runtime_druntime_src_core_sys_posix_ucontext.d
+++ /dev/null
@@ -1,41 +0,0 @@
---- ltsmaster/runtime/druntime/src/core/sys/posix/ucontext.d.orig	2020-11-14 19:35:48 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;
-+        }
-+    }
- 
-     // <ucontext.h>
-     enum UCF_SWAPPED = 0x00000001;
diff --git a/lang/ldc/files/patch-ltsmaster_runtime_phobos_std_internal_math_gammafunction.d b/lang/ldc/files/patch-ltsmaster_runtime_phobos_std_internal_math_gammafunction.d
deleted file mode 100644
index 36d264443380..000000000000
--- a/lang/ldc/files/patch-ltsmaster_runtime_phobos_std_internal_math_gammafunction.d
+++ /dev/null
@@ -1,22 +0,0 @@
-https://github.com/ldc-developers/phobos/commit/65b103fc08c5a58f3b0c2b56ac8650ca8e678109.patch
-
-From 65b103fc08c5a58f3b0c2b56ac8650ca8e678109 Mon Sep 17 00:00:00 2001
-From: Iain Buclaw <ibuclaw@gdcproject.org>
-Date: Sat, 23 May 2015 14:05:03 +0200
-Subject: [PATCH] Relax compile-time assertion in gammafunction to runtime
-
---- ltsmaster/runtime/phobos/std/internal/math/gammafunction.d.orig	2020-11-14 19:44:53 UTC
-+++ ltsmaster/runtime/phobos/std/internal/math/gammafunction.d
-@@ -1653,8 +1653,10 @@ unittest {
- real logmdigammaInverse(real y)
- {
-     import std.numeric: findRoot;
--    enum maxY = logmdigamma(real.min_normal);
--    static assert(maxY > 0 && maxY <= real.max);
-+    // FIXME: should be returned back to enum.
-+    // Fix requires CTFEable `log` on non-x86 targets (check both LDC and GDC).
-+    immutable maxY = logmdigamma(real.min_normal);
-+    assert(maxY > 0 && maxY <= real.max);
- 
-     if (y >= maxY)
-     {
diff --git a/lang/ldc/files/patch-runtime_CMakeLists.txt b/lang/ldc/files/patch-runtime_CMakeLists.txt
index d8268414ad69..2f7437b56157 100644
--- a/lang/ldc/files/patch-runtime_CMakeLists.txt
+++ b/lang/ldc/files/patch-runtime_CMakeLists.txt
@@ -1,11 +1,11 @@
---- runtime/CMakeLists.txt.orig	2020-07-13 17:43:03 UTC
-+++ runtime/CMakeLists.txt
-@@ -134,6 +134,8 @@ if("${C_SYSTEM_LIBS}" STREQUAL "AUTO")
-         set(C_SYSTEM_LIBS m c)
-     elseif("${TARGET_SYSTEM}" MATCHES "Linux")
-         set(C_SYSTEM_LIBS m pthread rt dl)
-+    elseif("${TARGET_SYSTEM}" MATCHES "FreeBSD")
-+        set(C_SYSTEM_LIBS m pthread execinfo)
-     else()
-         set(C_SYSTEM_LIBS m pthread)
-     endif()
+--- runtime/CMakeLists.txt	2022-07-20 12:05:27.000000000 -0500
++++ runtime/CMakeLists.txt	2022-11-13 19:53:33.442980000 -0500
+@@ -123,6 +123,8 @@
+             set(C_SYSTEM_LIBS m c)
+         elseif("${TARGET_SYSTEM}" MATCHES "Linux")
+             set(C_SYSTEM_LIBS m pthread rt dl)
++	elseif("${TARGET_SYSTEM}" MATCHES "FreeBSD")
++            set(C_SYSTEM_LIBS m pthread execinfo z)
+         else()
+             set(C_SYSTEM_LIBS m pthread)
+         endif()