mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-07-07 13:24:06 +02:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e5b92baa27 | |||
| 0c53e15628 | |||
| 35d6a5d3fa | |||
| 413d01aaf2 |
@@ -1199,6 +1199,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/directfb-davinci-glibc-228-compat.patch \
|
||||
%D%/packages/patches/django-compressor-build-with-beautifulsoup-4.14+.patch \
|
||||
%D%/packages/patches/dkimproxy-add-ipv6-support.patch \
|
||||
%D%/packages/patches/dmd-hurd.patch \
|
||||
%D%/packages/patches/doc++-gcc-14.patch \
|
||||
%D%/packages/patches/docbook-utils-documentation-edits.patch \
|
||||
%D%/packages/patches/docbook-utils-escape-characters.patch \
|
||||
@@ -1375,6 +1376,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/ganeti-template-haskell-2.17.patch \
|
||||
%D%/packages/patches/ganeti-template-haskell-2.18.patch \
|
||||
%D%/packages/patches/gawk-shell.patch \
|
||||
%D%/packages/patches/gdc-11-druntime-hurd.patch \
|
||||
%D%/packages/patches/gdc-14-druntime-hurd.patch \
|
||||
%D%/packages/patches/gcc-arm-bug-71399.patch \
|
||||
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
|
||||
%D%/packages/patches/gcc-asan-missing-include.patch \
|
||||
@@ -1424,6 +1427,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/gcc-11-libstdc++-hurd-libpthread.patch \
|
||||
%D%/packages/patches/gcc-12-cross-environment-variables.patch \
|
||||
%D%/packages/patches/gcc-11-libstdc++-powerpc.patch \
|
||||
%D%/packages/patches/gcc-11-x86_64-gnu.patch \
|
||||
%D%/packages/patches/gcc-13-cross-system-header-dir.patch \
|
||||
%D%/packages/patches/gcc-12-libsanitizer-no-crypt.patch \
|
||||
%D%/packages/patches/gcc-13-libsanitizer-no-crypt.patch \
|
||||
@@ -2098,6 +2102,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/pdl-2.100-reproducibility.patch \
|
||||
%D%/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch \
|
||||
%D%/packages/patches/pharo-vm-cmake.patch \
|
||||
%D%/packages/patches/phobos-hurd.patch \
|
||||
%D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
|
||||
%D%/packages/patches/plasp-fix-normalization.patch \
|
||||
%D%/packages/patches/plasp-include-iostream.patch \
|
||||
|
||||
+47
-17
@@ -342,7 +342,7 @@ integration tests...\n")
|
||||
;; and their names must have the same length to avoid corrupting the
|
||||
;; binary.
|
||||
(name "dmd")
|
||||
(version "2.111.0")
|
||||
(version "2.112.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@@ -351,7 +351,9 @@ integration tests...\n")
|
||||
(file-name (git-file-name "dmd" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0cz5qdd1j89w2s7nzw9ahzwsqiraidg4ajy7syy7qkk7mwcyrf6r"))))
|
||||
"0qvg2fb73kyng8k1wj482g07ar2qw5laa5fynwx7pdd610n0pjpc"))
|
||||
(patches
|
||||
(search-patches "dmd-hurd.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -372,7 +374,16 @@ integration tests...\n")
|
||||
;; Do not build the shared libphobos2.so library, to avoid
|
||||
;; retaining a reference to gcc:lib.
|
||||
"SHARED=0"
|
||||
"DIFFABLE=1" ;constant timestamp
|
||||
#$@(if (target-hurd?)
|
||||
(list (string-append "DISABLED_TESTS=core/thread/osthread "
|
||||
"std/parallelism " ;; pthread stubs
|
||||
"std/file " ;; rename (NULL, "")
|
||||
"std/socket " ;; ENOPROTOOPT
|
||||
"std/datetime/systime "
|
||||
"std/datetime/timezone " ;; TZDIR
|
||||
"std/net/curl ")) ;; dlopen curl
|
||||
'())
|
||||
"DIFFABLE=1" ;constant timestamp
|
||||
"VERBOSE=1")
|
||||
#:modules
|
||||
`(,@%default-gnu-modules
|
||||
@@ -470,7 +481,19 @@ integration tests...\n")
|
||||
"long_backtrace_trunc rt_trap_exceptions "))
|
||||
""))
|
||||
(substitute* "dmd/druntime/test/gc/Makefile"
|
||||
((" invariant ") " "))))
|
||||
((" invariant ") " "))
|
||||
|
||||
#$@(if (target-hurd?)
|
||||
'((for-each
|
||||
delete-file
|
||||
;; environment differs in LD_ORIGIN_PATH
|
||||
'("dmd/compiler/test/dshell/sameenv.d"
|
||||
;; Non _GLIBCXX_USE_CXX98_ABI version prints a warning
|
||||
"dmd/compiler/test/runnable_cxx/cppa.d"))
|
||||
;; Segfault
|
||||
(substitute* "dmd/druntime/test/shared/Makefile"
|
||||
(("loadDR host ") "")))
|
||||
'())))
|
||||
(delete 'bootstrap)
|
||||
(delete 'configure)
|
||||
(replace 'build
|
||||
@@ -492,7 +515,8 @@ integration tests...\n")
|
||||
(phase-in-sub-dir 'check "phobos"))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((platform (cond (#$(target-linux?) "linux")))
|
||||
(let* ((platform (cond (#$(target-linux?) "linux")
|
||||
(#$(target-hurd?) "hurd")))
|
||||
(bits (if #$(target-64bit?) 64 32))
|
||||
(build-sub-dir (format #f "generated/~a/release/~a"
|
||||
platform bits))
|
||||
@@ -536,17 +560,22 @@ integration tests...\n")
|
||||
(inputs
|
||||
(list bash-minimal))
|
||||
(native-inputs
|
||||
(list gdmd which
|
||||
gdb/pinned ; for tests
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dlang/phobos")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name "phobos" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ydls3ar6d3f7ffqvidr46x3zrz3wlzjln5qa0nbz843ndjr4g7n")))))
|
||||
(append
|
||||
(if (target-linux?)
|
||||
;; gdb tests only on on linux
|
||||
(list gdb/pinned)
|
||||
'())
|
||||
(list gdmd which
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dlang/phobos")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name "phobos" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0afi5glnf96242cbnr10ccjvfsgkh4k5y7qnmxv4ph5g0izvi1dc"))
|
||||
(patches (search-patches "phobos-hurd.patch"))))))
|
||||
(outputs '("out" "lib" "debug"))
|
||||
(synopsis "Reference D Programming Language compiler")
|
||||
(description "@acronym{DMD, Digital Mars D compiler} is the reference
|
||||
@@ -555,7 +584,8 @@ compiler for the D programming language.")
|
||||
(home-page "https://github.com/dlang/dmd")
|
||||
;; As reported by upstream:
|
||||
;; https://wiki.dlang.org/Compilers#Comparison
|
||||
(supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux"))
|
||||
(supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux"
|
||||
"i586-gnu" "x86_64-gnu"))
|
||||
|
||||
;; This variant exists only for bootstrapping purposes.
|
||||
(properties '((hidden? . #t)))))
|
||||
|
||||
+15
-1
@@ -928,7 +928,8 @@ It also includes runtime support libraries for these languages.")
|
||||
"gcc-5.0-libvtv-runpath.patch"
|
||||
"gcc-10-libsanitizer-no-crypt.patch"
|
||||
"gcc-11-libstdc++-hurd-libpthread.patch"
|
||||
"gcc-libstdc++-newer-gcc.patch"))
|
||||
"gcc-libstdc++-newer-gcc.patch"
|
||||
"gcc-11-x86_64-gnu.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet gcc-canadian-cross-objdump-snippet)))
|
||||
(properties
|
||||
@@ -1408,8 +1409,21 @@ as the 'native-search-paths' field."
|
||||
(define version (package-version gdc))
|
||||
(define (since-version? since) (version>=? version since))
|
||||
(define (until-version? until) (version>? until version))
|
||||
(define patches (cond ((and (since-version? "11")
|
||||
(until-version? "12"))
|
||||
(search-patches "gdc-11-druntime-hurd.patch"))
|
||||
((and (since-version? "14")
|
||||
(until-version? "15"))
|
||||
(search-patches "gdc-14-druntime-hurd.patch"))
|
||||
(else '())))
|
||||
(package
|
||||
(inherit gdc)
|
||||
(source
|
||||
(origin
|
||||
(inherit (package-source gdc))
|
||||
(patches
|
||||
(append (origin-patches (package-source gdc))
|
||||
patches))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments arguments
|
||||
((#:modules modules)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,173 @@
|
||||
For bootstrapping gdc.
|
||||
|
||||
The change for gcc/config/i386/t-linux is to fix the libdir on
|
||||
x86_64-gnu. It is based on the 'pre-x86-configure phase for gcc-14.
|
||||
|
||||
The main part is gcc commit 5f8950b403f6351f125d8281d2e7430a43e7d125
|
||||
rebased for gcc 11.5.
|
||||
|
||||
From 5f8950b403f6351f125d8281d2e7430a43e7d125 Mon Sep 17 00:00:00 2001
|
||||
From: Flavio Cruz <flaviocruz@gmail.com>
|
||||
Date: Thu, 26 Jan 2023 22:45:27 -0500
|
||||
Subject: [PATCH] Add support for x86_64-*-gnu-* targets to build x86_64
|
||||
gnumach/hurd
|
||||
|
||||
Tested by building a toolchain and compiling gnumach for x86_64 [1].
|
||||
This is the basic version without unwind support which I think is only
|
||||
required to implement exceptions.
|
||||
|
||||
[1]
|
||||
https://github.com/flavioc/cross-hurd/blob/master/bootstrap-kernel.sh.
|
||||
|
||||
gcc/ChangeLog:
|
||||
* config.gcc: Recognize x86_64-*-gnu* targets and include
|
||||
i386/gnu64.h.
|
||||
* config/i386/gnu64.h: Define configuration for new target
|
||||
including ld.so location.
|
||||
|
||||
libgcc/ChangeLog:
|
||||
* config.host: Recognize x86_64-*-gnu* targets.
|
||||
* config/i386/gnu-unwind.h: Update to handle __x86_64__ with a
|
||||
TODO for now.
|
||||
|
||||
Signed-off-by: Flavio Cruz <flaviocruz@gmail.com>
|
||||
---
|
||||
gcc/config.gcc | 5 ++++-
|
||||
gcc/config/i386/gnu64.h | 40 +++++++++++++++++++++++++++++++++
|
||||
libgcc/config.host | 8 ++++++-
|
||||
libgcc/config/i386/gnu-unwind.h | 10 +++++++++
|
||||
4 files changed, 61 insertions(+), 2 deletions(-)
|
||||
create mode 100644 gcc/config/i386/gnu64.h
|
||||
|
||||
Index: gcc-11.5.0/gcc/config.gcc
|
||||
===================================================================
|
||||
--- gcc-11.5.0.orig/gcc/config.gcc
|
||||
+++ gcc-11.5.0/gcc/config.gcc
|
||||
@@ -2020,7 +2020,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfree
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
|
||||
+x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-gnu*)
|
||||
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
|
||||
i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
|
||||
case ${target} in
|
||||
@@ -2031,6 +2031,9 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu
|
||||
x86_64-*-kfreebsd*-gnu)
|
||||
tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
|
||||
;;
|
||||
+ x86_64-*-gnu*)
|
||||
+ tm_file="${tm_file} gnu.h i386/gnu64.h"
|
||||
+ ;;
|
||||
esac
|
||||
tmake_file="${tmake_file} i386/t-linux64"
|
||||
x86_multilibs="${with_multilib_list}"
|
||||
Index: gcc-11.5.0/gcc/config/i386/gnu64.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ gcc-11.5.0/gcc/config/i386/gnu64.h
|
||||
@@ -0,0 +1,40 @@
|
||||
+/* Configuration for an x86_64 running GNU with ELF as the target machine. */
|
||||
+
|
||||
+/*
|
||||
+Copyright (C) 2023 Free Software Foundation, Inc.
|
||||
+
|
||||
+This file is part of GCC.
|
||||
+
|
||||
+GCC is free software: you can redistribute it and/or modify
|
||||
+it under the terms of the GNU General Public License as published by
|
||||
+the Free Software Foundation, either version 3 of the License, or
|
||||
+(at your option) any later version.
|
||||
+
|
||||
+GCC is distributed in the hope that it will be useful,
|
||||
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+GNU General Public License for more details.
|
||||
+
|
||||
+You should have received a copy of the GNU General Public License
|
||||
+along with GCC. If not, see <http://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#define GNU_USER_LINK_EMULATION32 "elf_i386"
|
||||
+#define GNU_USER_LINK_EMULATION64 "elf_x86_64"
|
||||
+#define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
|
||||
+
|
||||
+#undef GNU_USER_DYNAMIC_LINKER
|
||||
+#define GNU_USER_DYNAMIC_LINKER32 "/lib/ld.so.1"
|
||||
+#define GNU_USER_DYNAMIC_LINKER64 "/lib/ld-x86-64.so.1"
|
||||
+#define GNU_USER_DYNAMIC_LINKERX32 "/lib/ld-x32.so.1"
|
||||
+
|
||||
+#undef STARTFILE_SPEC
|
||||
+#if defined HAVE_LD_PIE
|
||||
+#define STARTFILE_SPEC \
|
||||
+ "%{!shared: %{pg|p|profile:%{static:gcrt0.o%s;:gcrt1.o%s};pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \
|
||||
+ crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
|
||||
+#else
|
||||
+#define STARTFILE_SPEC \
|
||||
+ "%{!shared: %{pg|p|profile:%{static:gcrt0.o%s;:gcrt1.o%s};static:crt0.o%s;:crt1.o%s}} \
|
||||
+ crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
|
||||
+#endif
|
||||
Index: gcc-11.5.0/libgcc/config.host
|
||||
===================================================================
|
||||
--- gcc-11.5.0.orig/libgcc/config.host
|
||||
+++ gcc-11.5.0/libgcc/config.host
|
||||
@@ -788,6 +788,12 @@ x86_64-*-kfreebsd*-gnu)
|
||||
tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
|
||||
tm_file="${tm_file} i386/elf-lib.h"
|
||||
;;
|
||||
+x86_64-*-gnu*)
|
||||
+ extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
|
||||
+ tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
|
||||
+ tm_file="${tm_file} i386/elf-lib.h"
|
||||
+ md_unwind_header=i386/gnu-unwind.h
|
||||
+ ;;
|
||||
i[34567]86-pc-msdosdjgpp*)
|
||||
;;
|
||||
i[34567]86-*-lynxos*)
|
||||
@@ -1561,7 +1567,7 @@ esac
|
||||
case ${host} in
|
||||
i[34567]86-*-linux* | x86_64-*-linux* | \
|
||||
i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
|
||||
- i[34567]86-*-gnu*)
|
||||
+ i[34567]86-*-gnu* | x86_64-*-gnu*)
|
||||
tmake_file="${tmake_file} t-tls i386/t-linux i386/t-msabi t-slibgcc-libgcc"
|
||||
if test "$libgcc_cv_cfi" = "yes"; then
|
||||
tmake_file="${tmake_file} t-stack i386/t-stack-i386"
|
||||
Index: gcc-11.5.0/libgcc/config/i386/gnu-unwind.h
|
||||
===================================================================
|
||||
--- gcc-11.5.0.orig/libgcc/config/i386/gnu-unwind.h
|
||||
+++ gcc-11.5.0/libgcc/config/i386/gnu-unwind.h
|
||||
@@ -30,6 +30,14 @@ see the files COPYING3 and COPYING.RUNTI
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
+#ifdef __x86_64__
|
||||
+
|
||||
+/*
|
||||
+ * TODO: support for 64 bits needs to be implemented.
|
||||
+ */
|
||||
+
|
||||
+#else /* ifdef __x86_64__ */
|
||||
+
|
||||
#define MD_FALLBACK_FRAME_STATE_FOR x86_gnu_fallback_frame_state
|
||||
|
||||
static _Unwind_Reason_Code
|
||||
@@ -138,4 +146,6 @@ x86_gnu_fallback_frame_state
|
||||
return _URC_NO_REASON;
|
||||
}
|
||||
|
||||
+#endif /* ifdef __x86_64__ */
|
||||
+
|
||||
#endif /* ifndef inhibit_libc */
|
||||
Index: gcc-11.5.0/gcc/config/i386/t-linux64
|
||||
===================================================================
|
||||
--- gcc-11.5.0.orig/gcc/config/i386/t-linux64
|
||||
+++ gcc-11.5.0/gcc/config/i386/t-linux64
|
||||
@@ -33,6 +33,6 @@
|
||||
comma=,
|
||||
MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
|
||||
MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
|
||||
-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
|
||||
+MULTILIB_OSDIRNAMES = m64=../lib$(call if_multiarch,:x86_64-linux-gnu)
|
||||
MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
|
||||
MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,64 @@
|
||||
From e2d65597896089a8bd06992a4b83e3d14176b02c Mon Sep 17 00:00:00 2001
|
||||
From: Yelninei <yelninei@tutamail.com>
|
||||
Date: Tue, 24 Mar 2026 19:46:30 +0000
|
||||
Subject: [PATCH] phobos: Fixes for GNU/Hurd.
|
||||
|
||||
---
|
||||
Makefile | 2 +-
|
||||
std/datetime/timezone.d | 1 +
|
||||
std/math/algebraic.d | 1 +
|
||||
std/process.d | 2 ++
|
||||
4 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 4fa51299e..a9d4789f6 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -305,7 +305,7 @@ else
|
||||
endif
|
||||
|
||||
# build with shared library support (defaults to true on supported platforms)
|
||||
-SHARED=$(if $(findstring $(OS),linux freebsd),1,)
|
||||
+SHARED=$(if $(findstring $(OS),linux freebsd hurd),1,)
|
||||
|
||||
TESTS_EXTRACTOR=$(ROOT)/tests_extractor$(DOTEXE)
|
||||
PUBLICTESTS_DIR=$(ROOT)/publictests
|
||||
diff --git a/std/datetime/timezone.d b/std/datetime/timezone.d
|
||||
index 7461fcaa3..05c2999d3 100644
|
||||
--- a/std/datetime/timezone.d
|
||||
+++ b/std/datetime/timezone.d
|
||||
@@ -338,6 +338,7 @@ public:
|
||||
else version (linux) enum utcZone = "UTC";
|
||||
else version (Darwin) enum utcZone = "UTC";
|
||||
else version (Solaris) enum utcZone = "UTC";
|
||||
+ else version (Hurd) enum utcZone = "UTC";
|
||||
else static assert(0, "The location of the UTC timezone file on this Posix platform must be set.");
|
||||
|
||||
auto tzs = [testTZ("America/Los_Angeles", "PST", "PDT", dur!"hours"(-8), dur!"hours"(1)),
|
||||
diff --git a/std/math/algebraic.d b/std/math/algebraic.d
|
||||
index f96f24f15..05bf08b9c 100644
|
||||
--- a/std/math/algebraic.d
|
||||
+++ b/std/math/algebraic.d
|
||||
@@ -631,6 +631,7 @@ else version (FreeBSD) version = GenericPosixVersion;
|
||||
else version (OpenBSD) version = GenericPosixVersion;
|
||||
else version (Solaris) version = GenericPosixVersion;
|
||||
else version (DragonFlyBSD) version = GenericPosixVersion;
|
||||
+else version (Hurd) version = GenericPosixVersion;
|
||||
|
||||
private real polyImpl(real x, in real[] A) @trusted pure nothrow @nogc
|
||||
{
|
||||
diff --git a/std/process.d b/std/process.d
|
||||
index d359ca0ba..dc981c5e5 100644
|
||||
--- a/std/process.d
|
||||
+++ b/std/process.d
|
||||
@@ -1031,6 +1031,8 @@ private Pid spawnProcessPosix(scope const(char[])[] args,
|
||||
import core.sys.freebsd.unistd : closefrom;
|
||||
else version (OpenBSD)
|
||||
import core.sys.openbsd.unistd : closefrom;
|
||||
+ else version (Hurd)
|
||||
+ import core.sys.hurd.unistd : closefrom;
|
||||
|
||||
static if (!__traits(compiles, closefrom))
|
||||
{
|
||||
--
|
||||
2.52.0
|
||||
Reference in New Issue
Block a user