Hi ports --

Attached is an update for dmd. It also enables a dmd package for i386.
Tests good on my i386 netbook.

The new bootstrap should hopefully be more resilient against libc and
other library bumps.

Additionally, dmd should no longer need any hacks for nobtcfi. But as my
laptop doesn't support it, I can't test directly. Reports welcome.

OK?

~Brian
Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/dmd/Makefile,v
retrieving revision 1.16
diff -u -p -r1.16 Makefile
--- Makefile    19 Dec 2023 22:34:04 -0000      1.16
+++ Makefile    4 Jan 2024 23:19:47 -0000
@@ -1,10 +1,6 @@
-# i386 forthcoming
-ONLY_FOR_ARCHS =       amd64
+ONLY_FOR_ARCHS =       amd64 i386
 
-# No BT CFI yet.
-USE_NOBTCFI =  Yes
-
-V =            2.106.0
+V =            2.106.1
 COMMENT =      reference compiler for the D programming language
 DISTFILES =            dmd-${V}{v${V}}.tar.gz
 DISTFILES.boot=        dmd-${V}-bootstrap.tar.gz
@@ -26,8 +22,7 @@ SITES.phobos =        https://github.com/dlang/
 
 USE_GMAKE =    Yes
 MAKE_ENV =     HOST_CXX="${CXX}" \
-               HOST_DMD="${WRKDIR}/dmd-bootstrap/openbsd/bin${MODEL}/dmd" \
-               LD_LIBRARY_PATH="${WRKSRC}/dmd-bootstrap/openbsd/bin${MODEL}"
+               HOST_DMD="${WRKDIR}/dmd-bootstrap/openbsd/bin${MODEL}/dmd"
 MAKE_FILE =    posix.mak
 
 NO_TEST =      Yes
@@ -43,8 +38,6 @@ MODEL = 32
 post-extract:
        mv ${WRKSRC}/dmd-${V} ${WRKSRC}/dmd
        mv ${WRKSRC}/phobos-${V} ${WRKSRC}/phobos
-       chmod 644 ${WRKDIR}/dmd-bootstrap/openbsd/bin64/lib*.so* # XXX
-       cp /usr/lib/libc.so.98.* ${WRKDIR}/dmd-bootstrap/openbsd/bin64/ # XXX
 
 # We need to do this manually.
 # Yes, this is all really correct.
Index: distinfo
===================================================================
RCS file: /cvs/ports/lang/dmd/distinfo,v
retrieving revision 1.11
diff -u -p -r1.11 distinfo
--- distinfo    18 Dec 2023 22:20:58 -0000      1.11
+++ distinfo    4 Jan 2024 23:19:47 -0000
@@ -1,6 +1,6 @@
-SHA256 (dmd-2.106.0-bootstrap.tar.gz) = 
lSsGN+CaT80zcTbEuUQHbFV0wL5DXikDGWFepL7/nbY=
-SHA256 (dmd-2.106.0.tar.gz) = EHlknEGpuODT6BxXPILYTNaHOzr8lbN9b1IGhCztx8k=
-SHA256 (phobos-2.106.0.tar.gz) = P5Ju4mkFwvb+RX560v5P6sjK2DxXGnCt6jC2zUpDZrY=
-SIZE (dmd-2.106.0-bootstrap.tar.gz) = 10233808
-SIZE (dmd-2.106.0.tar.gz) = 5936389
-SIZE (phobos-2.106.0.tar.gz) = 2761012
+SHA256 (dmd-2.106.1-bootstrap.tar.gz) = 
kTaydzarj0/h54XfnTYRJ8G11ukH/DCilVEPc6EYcJw=
+SHA256 (dmd-2.106.1.tar.gz) = KY4pM6TPh5M/c+jO1Sw09L6X6ISky2+V4xdU5iuhD8s=
+SHA256 (phobos-2.106.1.tar.gz) = rPKie7N/GK/zALXziHXCrx27cgPe3cp/hws9aaeR8zM=
+SIZE (dmd-2.106.1-bootstrap.tar.gz) = 19821871
+SIZE (dmd-2.106.1.tar.gz) = 5932908
+SIZE (phobos-2.106.1.tar.gz) = 2760300
Index: patches/patch-dmd-bootstrap_openbsd_bin32_dmd_conf
===================================================================
RCS file: patches/patch-dmd-bootstrap_openbsd_bin32_dmd_conf
diff -N patches/patch-dmd-bootstrap_openbsd_bin32_dmd_conf
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-dmd-bootstrap_openbsd_bin32_dmd_conf  4 Jan 2024 23:19:47 
-0000
@@ -0,0 +1,12 @@
+Use the bootstrap libphobos2.a when linking the initially built dmd.
+
+Index: dmd-bootstrap/openbsd/bin32/dmd.conf
+--- dmd-bootstrap/openbsd/bin32/dmd.conf.orig
++++ dmd-bootstrap/openbsd/bin32/dmd.conf
+@@ -1,5 +1,5 @@
+ [Environment32]
+-DFLAGS=-I${TRUEPREFIX}/include/dmd/phobos 
-I${TRUEPREFIX}/include/dmd/druntime/import -L-L/usr/lib -L-L${TRUEPREFIX}/lib 
-L--export-dynamic -fPIC
++DFLAGS=-I%@P%/../../../dmd/druntime/src -I%@P%/../../../phobos 
-L-L%@P%/../../../phobos/generated/openbsd/release/32 -L--export-dynamic -fPIC 
-L-L%@P%/../../../dmd-bootstrap/openbsd/lib32
+ 
+ [Environment64]
+ DFLAGS=-I${TRUEPREFIX}/include/dmd/phobos 
-I${TRUEPREFIX}/include/dmd/druntime/import -L-L/usr/lib -L-L${TRUEPREFIX}/lib 
-L--export-dynamic -fPIC
Index: patches/patch-dmd_compiler_src_dmd_libmach_d
===================================================================
RCS file: patches/patch-dmd_compiler_src_dmd_libmach_d
diff -N patches/patch-dmd_compiler_src_dmd_libmach_d
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-dmd_compiler_src_dmd_libmach_d        4 Jan 2024 23:19:47 
-0000
@@ -0,0 +1,20 @@
+This is always 64-bit.
+
+Index: dmd/compiler/src/dmd/libmach.d
+--- dmd/compiler/src/dmd/libmach.d.orig
++++ dmd/compiler/src/dmd/libmach.d
+@@ -484,7 +484,14 @@ struct MachObjModule
+     uint length; // in bytes
+     uint offset; // offset from start of library
+     const(char)[] name; // module name (file name) with terminating 0
++version (OpenBSD)
++{
++    long file_time; // file time
++}
++else
++{
+     c_long file_time; // file time
++}
+     uint user_id;
+     uint group_id;
+     uint file_mode;
Index: patches/patch-dmd_compiler_src_dmd_link_d
===================================================================
RCS file: patches/patch-dmd_compiler_src_dmd_link_d
diff -N patches/patch-dmd_compiler_src_dmd_link_d
--- patches/patch-dmd_compiler_src_dmd_link_d   18 Dec 2023 22:20:58 -0000      
1.2
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
-Index: dmd/compiler/src/dmd/link.d
---- dmd/compiler/src/dmd/link.d.orig
-+++ dmd/compiler/src/dmd/link.d
-@@ -519,6 +519,12 @@ public int runLINK()
-             if (driverParams.dll)
-                 argv.push("-shared");
-         }
-+        // No BT CFI
-+        version (OpenBSD)
-+        {
-+            argv.push("-Wl,--no-execute-only");
-+            argv.push("-Wl,-z,nobtcfi");
-+        }
-         // None of that a.out stuff. Use explicit exe file name, or
-         // generate one from name of first source file.
-         argv.push("-o");

Reply via email to