The LDC project aims to provide a portable D programming language compiler
with modern optimization and code generation capabilities.
The compiler uses the official DMD frontends to support the latest version of
D2, and relies on the LLVM Core libraries for code generation.
LDC is fully Open Source; the parts of the code not taken/adapted from other
projects are BSD-licensed (see the LICENSE file for details).
lang/ldc: fix build on powerpc64
powerpc64`s bootstrap had -link-defaultlib-shared=true. Remove that
and while at here, update other powerpc64* bootstraps.
lang/ldc: add new bootstrap for powerpc64le after long double switch
Two new patches:
1. Don't use glibc's dual long double mechanism - we don't support
IBM long double.
2. Use proper mangling.
lang/ldc: fix build with LLVM_DEFAULT=19
When building lang/ldc with LLVM_DEFAULT=19, linking ldc-profdata fails with:
FAILED: bin/ldc-profdata
: && /usr/local/llvm19/bin/clang++ -O2 -pipe -fPIC -fstack-protector-strong
-fno-strict-aliasing -DDMDV2 -O2 -pipe -fPIC -fstack-protector-strong
-fno-strict-aliasing -DNDEBUG -fstack-protector-strong -Xlinker
--dependency-file=tools/CMakeFiles/ldc-profdata.dir/link.d
tools/CMakeFiles/ldc-profdata.dir/ldc-profdata/llvm-profdata-19.1.cpp.o -o
bin/ldc-profdata -lLLVM-19 -L/usr/local/llvm19/lib && :
ld: error: undefined symbol: pthread_create
>>> referenced by llvm-profdata-19.1.cpp
>>>
tools/CMakeFiles/ldc-profdata.dir/ldc-profdata/llvm-profdata-19.1.cpp.o:(std::__1::future<void>
std::__1::__make_async_assoc_state[abi:sn190107]<void,
std::__1::__async_func<std::__1::function<void
()>>>(std::__1::__async_func<std::__1::function<void ()>>&&))
clang++: error: linker command failed with exit code 1 (use -v to see
invocation)
This is because the link command line is missing -lpthread. For the
tools/ subdirectory, use the CMAKE_THREAD_LIBS_INIT macro to fix the
target_link_libraries() directive.
PR: 284344
Approved by: acm (maintainer)
MFH: 2025Q1
lang/ldc: Mark BROKEN on FreBSD 14
Fails to compile with lots of:
/bin/sh: cannot open stdin: No such file or directory
Approved by: portmgr (blanket)
Sponsored by: The FreeBSD Foundation
lang/ldc: fix runtime on powerpc*
Fixes build of x11-toolkits/gtkd:
ld: error: undefined symbol: __tls_get_addr_opt
>>> referenced by sections_elf_shared.d
>>>
sections_elf_shared.o:(_D2rt19sections_elf_shared3DSO8tlsRangeMxFNbNiZAv) in
archive /usr/local/lib/libdruntime-ldc.a
>>> referenced by sections_elf_shared.d
>>>
sections_elf_shared.o:(_D2rt19sections_elf_shared11getTLSRangeFNbNimmmZAv) in
archive /usr/local/lib/libdruntime-ldc.a
>>> referenced by sections_elf_shared.d
>>> sections_elf_shared.o:(_d_dso_registry) in archive
/usr/local/lib/libdruntime-ldc.a
>>> referenced 1 more times
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
Change cmake default behaviour to outsource.
Ports that build out of source now simply can use "USES=cmake"
instead of "USES=cmake:outsource". Ports that fail to build
out of source now need to specify "USES=cmake:insource".
I tried to only set insource where explictely needed.
PR: 232038
Exp-run by: antoine
- Revert latest commit because it didn't solve pkg-plist problem. jit support
depends of LLVM version
- Change llvm dependency to devel/llvm40
- Respect llvm40 detection
For ports that are marked BROKEN on armv6, and also fail to build on
armv7, mark them so.
This is part two of a multipart commit to bring armv7 ports to parity
with armv6.
Approved by: portmgr (tier-2 blanket)
Obtained from: lonesome.com -exp run
Mark some ports failing on power64. In cases where the error message
was a stub, provide a real one.
While here, pet portlint.
Reported by: swills
Approved by: portmgr (tier-2 blanket)
New ports: lang/ldc
The LDC project aims to provide a portable D programming language compiler
with modern optimization and code generation capabilities.
The compiler uses the official DMD frontends to support the latest version of
D2, and relies on the LLVM Core libraries for code generation.
LDC is fully Open Source; the parts of the code not taken/adapted from other
projects are BSD-licensed (see the LICENSE file for details).
WWW: http://wiki.dlang.org/LDC