On Friday, 30 November 2018 at 01:31:12 UTC, mawk wrote:
On Friday, 30 November 2018 at 00:43:59 UTC, Andrew Pennebaker
wrote:
Given that gcc v9 should have built-in support for compiling D
code, and that dmd requires gcc, will dmd continue to be
supported? Or perhaps have its guts incorporated completely
into gcc?
DMD doesn't really require GCC, GCC is in theory used for
compatibility with modules compiled with gcc according to
dmd(1), and in practice used for linking.
The linking step could be done with ld alone if you know what
to type, and it's honestly pretty complicated, and you still
need components from gcc, for various reasons:
LIBGCCDIR=$(cc -print-file-name=)
CRTDIR=/usr/lib/$(cc -dumpmachine)
ld -L $LIBGCCDIR $CRTDIR/Scrt1.o $CRTDIR/crti.o
$LIBGCCDIR/crtbeginS.o \
YOUROBJECT.o -E --push-state -static -lphobos2 --pop-state \
-lpthread -lm -lrt -ldl -lc -lgcc -lgcc_s $LIBGCCDIR/crtendS.o
$CRTDIR/crtn.o
gcc is currently required for dmd on FreeBSD, as dmd links to
libstdc++.