Bug 230517 - lang/dmd2: compile error: "[-Wc++11-narrowing]"
Summary: lang/dmd2: compile error: "[-Wc++11-narrowing]"
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Cy Schubert
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-08-10 23:48 UTC by Katsuya Higuchi
Modified: 2019-08-11 22:26 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (cy)


Attachments
lang/dmd2 patch (66.12 KB, patch)
2019-06-18 14:47 UTC, Diederik de Groot
no flags Details | Diff
Mk/Uses/dcompile.mk script (1.99 KB, patch)
2019-06-18 14:48 UTC, Diederik de Groot
no flags Details | Diff
Line missing from pkg-plist (66.14 KB, patch)
2019-06-18 15:05 UTC, Diederik de Groot
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Katsuya Higuchi 2018-08-10 23:48:07 UTC
* Problem 1

clang++ stops at "[-Wc++11-narrowing]" error.

(I think this is a bad behavior of clang++. I want report only.)

Log
========
c++ -m64 -c -Wno-deprecated -Wstrict-aliasing -fno-exceptions -fno-rtti -D__pasc
al= -DMARS=1 -DTARGET_FREEBSD=1 -DDM_TARGET_CPU_X86=1 -DDMDV2=1  -O2 -DDMDV2=1 -
Iroot -Itk -Ibackend -I. -MMD -MF go.deps backend/go.c
backend/go.c:80:11: error: constant expression evaluates to -1 which cannot be
      narrowed to type 'mftype' (aka 'unsigned int') [-Wc++11-narrowing]
    {   0,MFall,MFcnp,MFcp,MFcse,MFda,MFdc,MFdv,MFli,MFliv,MFlocal,MFloop,
          ^~~~~
backend/go.h:39:17: note: expanded from macro 'MFall'
#define MFall   (~0)            // do everything
                ^~~~
backend/go.c:80:11: note: insert an explicit cast to silence this issue
    {   0,MFall,MFcnp,MFcp,MFcse,MFda,MFdc,MFdv,MFli,MFliv,MFlocal,MFloop,
          ^~~~~
          static_cast<mftype>( )
backend/go.h:39:17: note: expanded from macro 'MFall'
#define MFall   (~0)            // do everything
                ^~~~
backend/go.c:123:18: error: case value evaluates to -1, which cannot be narrowed
      to type 'unsigned int' [-Wc++11-narrowing]
            case -1:                    /* not in flagtab[]     */
                 ^
backend/go.c:157:18: error: case value evaluates to -1, which cannot be narrowed
      to type 'unsigned int' [-Wc++11-narrowing]
            case -1:                    /* not in flagtab[]     */
                 ^
3 errors generated.
gmake[3]: *** [posix.mak:384: go.o] Error 1
gmake[3]: Leaving directory '/usr/ports/lang/dmd2/work/.host_dmd-2.067.1/dmd2/sr
c/dmd'
*** Error code 2

Stop.
make[2]: stopped in /usr/ports/lang/dmd2
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/lang/dmd2
*** Error code 1

Stop.
make: stopped in /usr/ports/lang/dmd2
========

So, we have to add "-Wno-c++11-narrowing" to compile flags.


* Problem 2

Makefile replaces "g++" to "c++" too much.

lang/dmd2/Makefile
========
       @${REINPLACE_CMD} -e "s|g++|${CXX}|" \
                          -e "s|/etc|${PREFIX}/etc|" \
                ${WRKSRC}/dmd/src/posix.mak
========

This replaces "clang++" to "clanc++".

ifeq ($(HOST_CC), clang++)
|
v
ifeq ($(HOST_CC), clanc++)

We have to replace default compiler only.
========
       @${REINPLACE_CMD} -e "s|HOST_CC=g++|HOST_CC=${CXX}|" \
========


* Problem 3

After replacing, $(HOST_CC) is "c++", so this doesn't match to "clang++" 
This causes lack of compile option.
========
ifeq ($(HOST_CC), clang++)
========

But we know that c++ of FreeBSD (>=10) is always clang++.
So, we can replace "clang++" to "c++". (adhoc solution)

Importing determine compiler type from dmd/src/posix.mak to .host_dmd-2.067.1/dmd2/src/dmd/posix.mak is the best solution.
But it is too much code.
========
# determine whether CXX is gcc or clang based
CXX_VERSION:=$(shell $(CXX) --version)
ifneq (,$(findstring g++,$(CXX_VERSION))$(findstring gcc,$(CXX_VERSION))$(findstring GCC,$(CXX_VERSION)))
        CXX_KIND=g++
endif
ifneq (,$(findstring clang,$(CXX_VERSION)))
        CXX_KIND=clang++
endif
========


* Solution

========
diff -uprN dmd2.org/Makefile dmd2/Makefile
--- dmd2.org/Makefile   2017-11-30 15:13:34.000000000 +0900
+++ dmd2/Makefile       2018-08-11 04:18:33.133369000 +0900
@@ -60,7 +60,8 @@ MAKE_ARGS+=   DEBUG_FLAGS=-g\ -DDEBUG=1\ -
 MODULEDIR=     ${PREFIX}/include/d/phobos2

 post-patch:
-       @${REINPLACE_CMD} -e "s|g++|${CXX}|" \
+       @${REINPLACE_CMD} -e "s|HOST_CXX=g++|HOST_CXX=${CXX}|" \
+                         -e "s|-Wno-logical-op-parentheses|-Wno-logical-op-parentheses -Wno-c++11-narrowing|" \
                          -e "s|/etc|${PREFIX}/etc|" \
                ${WRKSRC}/dmd/src/posix.mak
        @${REINPLACE_CMD} -e "s|gcc|${CC}|" ${WRKSRC}/dmd/src/link.d
diff -uprN dmd2.org/Makefile.bootstrap dmd2/Makefile.bootstrap
--- dmd2.org/Makefile.bootstrap 2017-02-14 15:27:28.000000000 +0900
+++ dmd2/Makefile.bootstrap     2018-08-11 04:24:33.011166000 +0900
@@ -38,7 +38,10 @@ MODEL=               32
 MODULEDIR=     ${PREFIX}/include/d/phobos2

 post-patch:
-       @${REINPLACE_CMD} -e "s|g++|${CXX}|" ${WRKSRC}/posix.mak
+       @${REINPLACE_CMD} -e "s|HOST_CC=g++|HOST_CC=${CXX}|" \
+                         -e "s|clang++|c++|" \
+                         -e "s|-Wno-logical-op-parentheses|-Wno-logical-op-parentheses -Wno-c++11-narrowing|" \
+               ${WRKSRC}/posix.mak
        @${REINPLACE_CMD} -e "s|cc|${CC}|" ${WRKSRC}/../phobos/posix.mak
        @${REINPLACE_CMD} -e "s|/etc|${PREFIX}/etc|"    \
                          -e "s|\(dmd\)|\12|gI"         \
========
Comment 1 Diederik de Groot 2019-06-18 14:47:09 UTC
Created attachment 205203 [details]
lang/dmd2 patch

Update to v2.086.1
Add building of dlang/tools to provide rdmd/ddemange/etc.
Depend on Mk/Uses/dcompiler.mk (similar to go.mk/ada.mk/compiler.mk etc). See seperate patch.
Use ldc2 or gdc (or previously installed dmd) compiler to bootstrap
Remove bootstrap using dmd (which would have required two intermediate stages to be able to get to v2.086.1 and potentially more in the future).

(Note both lang/gdc and lang/ldc2 patches will be submitted separately), the current somewhat older lang/ldc2 will already work fine as a bootstrap.
Comment 2 Diederik de Groot 2019-06-18 14:48:38 UTC
Created attachment 205204 [details]
Mk/Uses/dcompile.mk script

Similar to compiler.mk/go.mk/ada.mk
Helps to find a bootstrap capable provider for compiling lang/dmd2
Can be used for other devel/dxxx projects like dub later on.
Comment 3 Diederik de Groot 2019-06-18 15:05:03 UTC
Created attachment 205205 [details]
Line missing from pkg-plist

Fix plist
Comment 4 Diederik de Groot 2019-06-18 15:05:59 UTC
(In reply to Diederik de Groot from comment #3)
Fix lang/dmd2 patch description:

Update to v2.086.1
Add building of dlang/tools to provide rdmd/ddemange/etc.
Depend on Mk/Uses/dcompiler.mk (similar to go.mk/ada.mk/compiler.mk etc). See seperate patch.
Use ldc2 or gdc (or previously installed dmd) compiler to bootstrap
Remove bootstrap using dmd (which would have required two intermediate stages to be able to get to v2.086.1 and potentially more in the future).

(Note both lang/gdc and lang/ldc2 patches will be submitted separately), the current somewhat older lang/ldc2 will already work fine as a bootstrap.
Comment 5 Diederik de Groot 2019-06-18 16:30:19 UTC
If accepting this patch: then please close these old patches:
- id=222635
- id=224111
Comment 6 Cy Schubert freebsd_committer 2019-06-18 19:39:13 UTC
Fails to build on 13-CURRENT.
slippy$ idprio 31 make check-orphans       
===>  License ART10 BSL accepted by the user
===>   dmd2-2.086.1 depends on file: /usr/local/sbin/pkg - found
=> dlang-dmd-v2.086.1_GH0.tar.gz doesn't seem to exist in /home/cy/freebsd/git/ports/distfiles/.
=> Attempting to fetch https://codeload.github.com/dlang/dmd/tar.gz/v2.086.1?dummy=/dlang-dmd-v2.086.1_GH0.tar.gz
fetch: https://codeload.github.com/dlang/dmd/tar.gz/v2.086.1?dummy=/dlang-dmd-v2.086.1_GH0.tar.gz: size unknown
fetch: https://codeload.github.com/dlang/dmd/tar.gz/v2.086.1?dummy=/dlang-dmd-v2.086.1_GH0.tar.gz: size of remote file is not known
dlang-dmd-v2.086.1_GH0.tar.gz                         3155 kB 2303 kBps    01s
=> dlang-druntime-v2.086.1_GH0.tar.gz doesn't seem to exist in /home/cy/freebsd/git/ports/distfiles/.
=> Attempting to fetch https://codeload.github.com/dlang/druntime/tar.gz/v2.086.1?dummy=/dlang-druntime-v2.086.1_GH0.tar.gz
fetch: https://codeload.github.com/dlang/druntime/tar.gz/v2.086.1?dummy=/dlang-druntime-v2.086.1_GH0.tar.gz: size unknown
fetch: https://codeload.github.com/dlang/druntime/tar.gz/v2.086.1?dummy=/dlang-druntime-v2.086.1_GH0.tar.gz: size of remote file is not known
dlang-druntime-v2.086.1_GH0.tar.gz                    1618 kB 1507 kBps    01s
=> dlang-phobos-v2.086.1_GH0.tar.gz doesn't seem to exist in /home/cy/freebsd/git/ports/distfiles/.
=> Attempting to fetch https://codeload.github.com/dlang/phobos/tar.gz/v2.086.1?dummy=/dlang-phobos-v2.086.1_GH0.tar.gz
fetch: https://codeload.github.com/dlang/phobos/tar.gz/v2.086.1?dummy=/dlang-phobos-v2.086.1_GH0.tar.gz: size unknown
fetch: https://codeload.github.com/dlang/phobos/tar.gz/v2.086.1?dummy=/dlang-phobos-v2.086.1_GH0.tar.gz: size of remote file is not known
dlang-phobos-v2.086.1_GH0.tar.gz                      2295 kB 2867 kBps    01s
=> dlang-dlang.org-v2.086.1_GH0.tar.gz doesn't seem to exist in /home/cy/freebsd/git/ports/distfiles/.
=> Attempting to fetch https://codeload.github.com/dlang/dlang.org/tar.gz/v2.086.1?dummy=/dlang-dlang.org-v2.086.1_GH0.tar.gz
fetch: https://codeload.github.com/dlang/dlang.org/tar.gz/v2.086.1?dummy=/dlang-dlang.org-v2.086.1_GH0.tar.gz: size unknown
fetch: https://codeload.github.com/dlang/dlang.org/tar.gz/v2.086.1?dummy=/dlang-dlang.org-v2.086.1_GH0.tar.gz: size of remote file is not known
dlang-dlang.org-v2.086.1_GH0.tar.gz                   3263 kB 2044 kBps    01s
=> dlang-tools-v2.086.1_GH0.tar.gz doesn't seem to exist in /home/cy/freebsd/git/ports/distfiles/.
=> Attempting to fetch https://codeload.github.com/dlang/tools/tar.gz/v2.086.1?dummy=/dlang-tools-v2.086.1_GH0.tar.gz
fetch: https://codeload.github.com/dlang/tools/tar.gz/v2.086.1?dummy=/dlang-tools-v2.086.1_GH0.tar.gz: size unknown
fetch: https://codeload.github.com/dlang/tools/tar.gz/v2.086.1?dummy=/dlang-tools-v2.086.1_GH0.tar.gz: size of remote file is not known
dlang-tools-v2.086.1_GH0.tar.gz                        113 kB  987 kBps    00s
===> Fetching all distfiles required by dmd2-2.086.1 for building
===>  Extracting for dmd2-2.086.1
=> SHA256 Checksum OK for dlang-dmd-v2.086.1_GH0.tar.gz.
=> SHA256 Checksum OK for dlang-druntime-v2.086.1_GH0.tar.gz.
=> SHA256 Checksum OK for dlang-phobos-v2.086.1_GH0.tar.gz.
=> SHA256 Checksum OK for dlang-dlang.org-v2.086.1_GH0.tar.gz.
=> SHA256 Checksum OK for dlang-tools-v2.086.1_GH0.tar.gz.
===>  Patching for dmd2-2.086.1
===>  Applying FreeBSD patches for dmd2-2.086.1
===>   Ignoring patchfile patch-freebsd__bin64__dmd.conf.orig
===>   dmd2-2.086.1 depends on executable: git - found
===>   dmd2-2.086.1 depends on executable: bash - found
===>   dmd2-2.086.1 depends on executable: gmake - found
===>   dmd2-2.086.1 depends on file: /usr/local/bin/ldc2 - found
===>  Configuring for dmd2-2.086.1
===>  Building for dmd2-2.086.1
cd /export/wrkdir/amd64/export/home/cy/freebsd/git/ports/lang/dmd2/work/dmd && XDG_DATA_HOME=/export/wrkdir/amd64/export/home/cy/freebsd/git/ports/lang/dmd2/work  XDG_CONFIG_HOME=/export/wrkdir/amd64/export/home/cy/freebsd/git/ports/lang/dmd2/work  HOME=/export/wrkdir/amd64/export/home/cy/freebsd/git/ports/lang/dmd2/work PATH=/export/wrkdir/amd64/export/home/cy/freebsd/git/ports/lang/dmd2/work/.bin:/bin:/usr/bin:/usr/local/bin:/usr/local/krb5/bin:/usr/local/krb5/sbin:/home/cy/bin:/usr/sbin:/sbin:/usr/local/sbin DONTSTRIP=yes NO_PIE=yes MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local  LOCALBASE=/usr/local  CC="cc" CFLAGS="-pipe -pipe  -g -fstack-protector-strong -fno-strict-aliasing "  CPP="cpp" CPPFLAGS=""  LDFLAGS=" -fstack-protector-strong " LIBS=""  CXX="c++" CXXFLAGS="-pipe -pipe -g -fstack-protector-strong -fno-strict-aliasing  "  MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install   -m 555"  BSD_INSTALL_LIB="install   -m 0644"  BSD_INSTALL_SCRIPT="install  -m 555"  BSD_INSTALL_DATA="install  -m 0644"  BSD_INSTALL_MAN="install  -m 444" gmake SHELL=/usr/local/bin/bash HOST_DMD=/usr/local/bin/ldmd2 MODEL=64 DEBUG_FLAGS=-g\ -DDEBUG=1\ -DUNITTEST BUILD=debug DESTDIR=/export/wrkdir/amd64/export/home/cy/freebsd/git/ports/lang/dmd2/work/stage -f posix.mak -j4 
gmake[2]: Entering directory '/export/wrkdir/amd64/export/home/cy/freebsd/git/ports/lang/dmd2/work/dmd'
gmake -C src -f posix.mak all
gmake[3]: Entering directory '/export/wrkdir/amd64/export/home/cy/freebsd/git/ports/lang/dmd2/work/dmd/src'
no cpu specified, assuming X86
/usr/local/bin/ldmd2 -of../generated/freebsd/debug/64/optabgen  -version=MARS -fPIC -J../generated/freebsd/debug/64 -w -de -g -debug -g -dip25 -m64 -mv=dmd.backend=dmd/backend dmd/backend/optabgen.d
ldc2: Unknown command line argument '-mv=dmd.backend=dmd/backend'.  Try: '/usr/local/bin/ldc2 -help'
ldc2: Did you mean '-v=dmd.backend=dmd/backend'?
  (HOST_DMD_RUN)  ../config.d  ../config.d
echo "$DEFAULT_DMD_CONF" > ../generated/freebsd/debug/64/dmd.conf
/usr/local/bin/ldmd2 ../config.d -of../generated/freebsd/debug/64/version_check
gmake[3]: *** [posix.mak:506: ../generated/freebsd/debug/64/optabgen] Error 1
gmake[3]: *** Waiting for unfinished jobs....
../config.d(56): Error: undefined identifier '__FILE_FULL_PATH__'
gmake[3]: *** [posix.mak:523: ../generated/freebsd/debug/64/version_check] Error 1
gmake[3]: Leaving directory '/export/wrkdir/amd64/export/home/cy/freebsd/git/ports/lang/dmd2/work/dmd/src'
gmake[2]: *** [posix.mak:8: all] Error 2
gmake[2]: Leaving directory '/export/wrkdir/amd64/export/home/cy/freebsd/git/ports/lang/dmd2/work/dmd'
*** Error code 2

Stop.
make[1]: stopped in /export/home/cy/freebsd/git/ports/lang/dmd2
*** Error code 1

Stop.
make: stopped in /export/home/cy/freebsd/git/ports/lang/dmd2
slippy$
Comment 7 Cy Schubert freebsd_committer 2019-06-18 19:40:36 UTC
In addition to this, dmd2 fails to build on newer 12-STABLE and 13-CURRENT due to ino64. Upline is working on this. They do not support versioned symbols.
Comment 8 Diederik de Groot 2019-06-18 20:32:51 UTC
(In reply to Cy Schubert from comment #6)

I am working on a new ldc2 patch, to supply ldc2-1.15.0. And gdc is also in the works.
This dmd patch is dependent on a recent enough ldc2 or gdc to bootstrap with (ie: to get past the issue '-mv=dmd.backend=dmd/backend' one would need a druntime >= 0.80.0). I still need to figure out how to do d-compiler version checks to make sure it fits the minimal/maximum requirements (not sure how best to go about that yet).

I had hoped my ldc2 patch would already have been submitted, but running into a couple of small issues, which i am working on (Sorry for submitting out-of-order).

Questions:
- Does the Mk/Uses/dcompile.mk look acceptable ?
- Any idea how to do a nice version d-compiler check ?
Comment 9 Cy Schubert freebsd_committer 2019-06-19 01:29:28 UTC
I won't be able to commit anything to Uses without a review. Only portmgr can do that or approve it. Do you want to move that change to Phabricator for review?
Comment 10 Diederik de Groot 2019-06-20 19:26:23 UTC
(In reply to Cy Schubert from comment #7)

I added a patch to the lang/ldc bug report (bug #237427). If/when committed, it would provide a stable bootstrap compiler, to be used for lang/dmd as well. (gdc is still in the works)
Comment 11 Cy Schubert freebsd_committer 2019-06-20 19:30:48 UTC
It's a little more involved than that. Check out https://issues.dlang.org/show_bug.cgi?id=17596 for more information.
Comment 12 Diederik de Groot 2019-06-20 19:35:17 UTC
(In reply to Cy Schubert from comment #9)

Might be a good idea to hold of on forwarding the Mk/Uses script to Phabricator. I think it still needs a bit of work.
Like adding arguments:
- type (ldc/gdc/dmd)
- min/max required version
- min/max druntime version

Those would be beneficial when choosing a bootstrap compiler for example. But they would also be necessary when creating a d based project like `dub`.
Comment 13 Diederik de Groot 2019-06-20 19:46:15 UTC
(In reply to Cy Schubert from comment #11)

I guess we have to hold of a little until the PR is committed. The D Version issues regarding BSD Versions has been going on for quite a bit :-).

For the time being, we could use fbs12 related patches to get around the problem, until the matter is resolved (if you like).

In the mean time i am working on ldc and gdc. Which was quite a bit of work.
Comment 14 Cy Schubert freebsd_committer 2019-06-20 20:00:42 UTC
It doesn't work in FreeBSD 12 either. Older than FreeBSD 12 from 12-18 months ago and FreeBSD 11 will work. inode64 broke it. When kib@ committed inode64 he created versioned symbols in libc. Older binaries which still use 32-bit inodes will continue to work because they reference the old functions in libc while newly built binaries reference the functions that use 64-bit inodes. Unfortunately dmd D implements their own functions to mirror those in libc. They don't support versioned symbols. So, if they implement 64-bit inodes they will break 32-bit and all older applications -- between a rock and a hard place. This is why they haven't fixed it. They symbol map needs to support versioned symbols like FreeBSD and Linux (through gcc) do -- it's not that FreeBSD or Linux do of and by themselves, versioned symbols is a llvm and gcc supported feature, implemented by the operating system.

The best documentation about versioned symbols I know of is written by the gcc folks at https://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_25.html.
Comment 15 Diederik de Groot 2019-06-20 20:26:15 UTC
(In reply to Cy Schubert from comment #14)

I did do a recent install of FreeBSD-12 but used an ISO (but i guess the ISO mayb have been an older one). I was not seeing any of this, and that might explain why.
Sorry to bother you with all this :-)
I have a bit of reading to do, to get up to speed with the versioned symbols issue.
I guess there is not much we can do about it for now, except wait. I guess the work i did is not completely in vain, and can be re-use/resurrected later on, once the issue has been resolved. But i guess it will take quite a bit of time.
Comment 16 Diederik de Groot 2019-06-20 22:17:45 UTC
(In reply to Diederik de Groot from comment #15)

BTW: Greg_V Added dirent/ino64/stat the patches in lang/ldc/files, which sort of takes care of the versioning issue by just patching the particular files involved, dependent on the precise freebsd version/rev.

I know/understand this is not exactly the same as how it was fixed in fbsd-libc (ie: running fbsd12 d binary on fbsd_11 would still have the issue you mentioned). Would that be an option for the time being ? Would patching it, cause issue for FBSD12-CURRENT or Poudriere ?
Comment 17 Rene Ladan freebsd_committer 2019-08-11 13:53:19 UTC
@cy: Any news on this?
Comment 18 Diederik de Groot 2019-08-11 13:59:34 UTC
(In reply to Rene Ladan from comment #17)
Hi Rene,
Actually the patch submitted by Greg_V got accepted upstream in dmd/druntime and is making. I am waiting for the ldc2 ports patch to be accepted in freebsd. So that it can be used as a nice way to bootstrap dmd. It's a bit of a slow process, but it making progress
If you want to jump the gun you can use my git repo patches, which are waiting at https://github.com/dkgroot/DPorts (Note there are multiple separate branches).
Comment 19 Diederik de Groot 2019-08-11 14:32:41 UTC
(In reply to Rene Ladan from comment #17)
Hi Rene,
Sorry i did not notice that you asked @Cy for progress, instead of me. :-)
Comment 20 Cy Schubert freebsd_committer 2019-08-11 15:16:23 UTC
There is no progress. Our upline is unable to implement FreeBSD's versioned symbols (used when kib@ added 64-bit inode support). The plan is to deprecate and expire the dmd ports when FreeBSD 11 becomes EOL.
Comment 21 Diederik de Groot 2019-08-11 15:20:37 UTC
@Cy
That would also work, but maybe have a look at https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=237427, which presents the patch made by Greg V. which was accepted upstream. It would fix the issue holding up dmd/ldc/gdc ports (AFAIK).
Comment 22 Cy Schubert freebsd_committer 2019-08-11 21:08:26 UTC
Too late. I already deleted the expired port. The latest dmd does not contain the patch either.
Comment 23 Cy Schubert freebsd_committer 2019-08-11 21:12:28 UTC
(In reply to Diederik de Groot from comment #21)

Contrary to popular opinion, that patch doesn't work with dmd.
Comment 24 Rene Ladan freebsd_committer 2019-08-11 21:51:02 UTC
(In reply to Cy Schubert from comment #22)
No, lang/dmd2 is still in the ports tree?
Comment 25 Rene Ladan freebsd_committer 2019-08-11 22:21:52 UTC
(In reply to Rene Ladan from comment #24)
Now indeed removed in r508688
Comment 26 Cy Schubert freebsd_committer 2019-08-11 22:26:13 UTC
The folks say that the will not support FreeBSD 12 & 13 until FreeBSD 11 is EOL. Their policy is to support the oldest releases. This of course is unacceptable so dmd2 had to go, not to mention that it had expired May 8, 2019.