Created attachment 237080 [details] Patch for ldc This updates port to 1.30.0 and includes a patch from Debian to unbundle libz This is only compile tested as I have no idea how to use D lang The Makefile contains a few CMAKE_ARGS that I'm not sure if they're need/useful at all so that needs some cleaning. Reference: https://salsa.debian.org/d-team/ldc/-/blob/debian/master/debian/patches/01_no-zlib-embed.patch Compile and tested on FreeBSD 13.1-STABLE (amd64) Poudriere testport OK 12.3-RELEASE (amd64)
I'm doing a Poudriere run on i386 but my build box is slow so it'll take 8h or so...
Settings comes from various packaged variants of ldc and https://github.com/ldc-developers/ldc/blob/master/.cirrus.yml#L185 (might want to add some flags from https://github.com/ldc-developers/ldc/blob/master/.cirrus.yml#L194? )
Daniel, good job. I just begin to work yesterday for update this port with gdc but I see that you did a great progress with it. It could works on aarch64 too. Btw, I see in your patch file LIB_DEPENDS= libgphobos.so:lang/gcc${_GCC_VER} but libgphobos is not part of gcc11/pkg-plist and if I not mistaken it is no built by default
(In reply to Jose Alonso Cardenas Marquez from comment #3) pkg info -l gcc11 | grep libgphobos /usr/local/lib/gcc11/libgphobos.a /usr/local/lib/gcc11/libgphobos.so /usr/local/lib/gcc11/libgphobos.so.2 /usr/local/lib/gcc11/libgphobos.so.2.0.0 /usr/local/lib/gcc11/libgphobos.spec This is with https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266825 applied though.
Created attachment 237082 [details] Patch for ldc Accidently included gdmd in previous patch
Fails on i386 with the following: FAILED: runtime/objects/core/atomic.o runtime/objects/core/attribute.o runtime/objects/core/bitop.o runtime/objects/core/builtins.o runtime/objects/core/checkedint.o runtime/objects/core/cpuid.o runtime/objects/core/demangle.o runtime/objects/core/exception.o runtime/objects/core/gc/config.o runtime/objects/core/gc/gcinterface.o runtime/objects/core/gc/registry.o runtime/objects/core/int128.o runtime/objects/core/internal/abort.o runtime/objects/core/internal/array/appending.o runtime/objects/core/internal/array/capacity.o runtime/objects/core/internal/array/casting.o runtime/objects/core/internal/array/comparison.o runtime/objects/core/internal/array/concatenation.o runtime/objects/core/internal/array/construction.o runtime/objects/core/internal/array/equality.o runtime/objects/core/internal/array/operations.o runtime/objects/core/internal/array/utils.o runtime/objects/core/internal/atomic.o runtime/objects/core/internal/attributes.o runtime/objects/core/internal/backtrace/dwarf.o runtime/objects/core/internal/backtrace/elf.o runtime/objects/core/internal/backtrace/handler.o runtime/objects/core/internal/backtrace/libunwind.o runtime/objects/core/internal/backtrace/macho.o runtime/objects/core/internal/backtrace/unwind.o runtime/objects/core/internal/container/array.o runtime/objects/core/internal/container/common.o runtime/objects/core/internal/container/hashtab.o runtime/objects/core/internal/container/treap.o runtime/objects/core/internal/convert.o runtime/objects/core/internal/dassert.o runtime/objects/core/internal/destruction.o runtime/objects/core/internal/elf/dl.o runtime/objects/core/internal/elf/io.o runtime/objects/core/internal/entrypoint.o runtime/objects/core/internal/execinfo.o runtime/objects/core/internal/gc/bits.o runtime/objects/core/internal/gc/impl/conservative/gc.o runtime/objects/core/internal/gc/impl/manual/gc.o runtime/objects/core/internal/gc/impl/proto/gc.o runtime/objects/core/internal/gc/os.o runtime/objects/core/internal/gc/pooltable.o runtime/objects/core/internal/gc/proxy.o runtime/objects/core/internal/hash.o runtime/objects/core/internal/lifetime.o runtime/objects/core/internal/moving.o runtime/objects/core/internal/parseoptions.o runtime/objects/core/internal/postblit.o runtime/objects/core/internal/qsort.o runtime/objects/core/internal/spinlock.o runtime/objects/core/internal/string.o runtime/objects/core/internal/switch_.o runtime/objects/core/internal/traits.o runtime/objects/core/internal/utf.o runtime/objects/core/internal/util/array.o runtime/objects/core/internal/util/math.o runtime/objects/core/internal/vararg/aarch64.o runtime/objects/core/internal/vararg/sysv_x64.o runtime/objects/core/lifetime.o runtime/objects/core/math.o runtime/objects/core/memory.o runtime/objects/core/runtime.o runtime/objects/core/simd.o runtime/objects/core/stdc/assert_.o runtime/objects/core/stdc/complex.o runtime/objects/core/stdc/config.o runtime/objects/core/stdc/ctype.o runtime/objects/core/stdc/errno.o runtime/objects/core/stdc/fenv.o runtime/objects/core/stdc/float_.o runtime/objects/core/stdc/inttypes.o runtime/objects/core/stdc/limits.o runtime/objects/core/stdc/locale.o runtime/objects/core/stdc/math.o runtime/objects/core/stdc/signal.o runtime/objects/core/stdc/stdarg.o runtime/objects/core/stdc/stddef.o runtime/objects/core/stdc/stdint.o runtime/objects/core/stdc/stdio.o runtime/objects/core/stdc/stdlib.o runtime/objects/core/stdc/string.o runtime/objects/core/stdc/tgmath.o runtime/objects/core/stdc/time.o runtime/objects/core/stdc/wchar_.o runtime/objects/core/stdc/wctype.o runtime/objects/core/stdcpp/allocator.o runtime/objects/core/stdcpp/array.o runtime/objects/core/stdcpp/exception.o runtime/objects/core/stdcpp/memory.o runtime/objects/core/stdcpp/new_.o runtime/objects/core/stdcpp/string.o runtime/objects/core/stdcpp/string_view.o runtime/objects/core/stdcpp/type_traits.o runtime/objects/core/stdcpp/typeinfo.o runtime/objects/core/stdcpp/utility.o runtime/objects/core/stdcpp/vector.o runtime/objects/core/stdcpp/xutility.o runtime/objects/core/sync/barrier.o runtime/objects/core/sync/condition.o runtime/objects/core/sync/config.o runtime/objects/core/sync/event.o runtime/objects/core/sync/exception.o runtime/objects/core/sync/mutex.o runtime/objects/core/sync/rwmutex.o runtime/objects/core/sync/semaphore.o runtime/objects/core/thread/context.o runtime/objects/core/thread/fiber.o runtime/objects/core/thread/osthread.o runtime/objects/core/thread/package.o runtime/objects/core/thread/threadbase.o runtime/objects/core/thread/threadgroup.o runtime/objects/core/thread/types.o runtime/objects/core/time.o runtime/objects/core/vararg.o runtime/objects/core/volatile.o runtime/objects/ldc/asan.o runtime/objects/ldc/attributes.o runtime/objects/ldc/dcompute.o runtime/objects/ldc/eh_msvc.o runtime/objects/ldc/sanitizer_common.o runtime/objects/ldc/sanitizers_optionally_linked.o runtime/objects/object.o runtime/objects/rt/aApply.o runtime/objects/rt/aApplyR.o runtime/objects/rt/aaA.o runtime/objects/rt/adi.o runtime/objects/rt/arrayassign.o runtime/objects/rt/arraycat.o runtime/objects/rt/cast_.o runtime/objects/rt/config.o runtime/objects/rt/cover.o runtime/objects/rt/critical_.o runtime/objects/rt/deh.o runtime/objects/rt/deh_win64_posix.o runtime/objects/rt/dmain2.o runtime/objects/rt/dso.o runtime/objects/rt/dwarfeh.o runtime/objects/rt/ehalloc.o runtime/objects/rt/invariant.o runtime/objects/rt/lifetime.o runtime/objects/rt/memory.o runtime/objects/rt/minfo.o runtime/objects/rt/monitor_.o runtime/objects/rt/msvc.o runtime/objects/rt/msvc_math.o runtime/objects/rt/profilegc.o runtime/objects/rt/sections.o runtime/objects/rt/sections_android.o runtime/objects/rt/sections_darwin_64.o runtime/objects/rt/sections_elf_shared.o runtime/objects/rt/sections_ldc.o runtime/objects/rt/sections_win64.o runtime/objects/rt/tlsgc.o runtime/objects/rt/trace.o runtime/objects/rt/tracegc.o runtime/objects/rt/util/typeinfo.o runtime/objects/rt/util/utility.o runtime/objects/core/sys/posix/aio.o runtime/objects/core/sys/posix/arpa/inet.o runtime/objects/core/sys/posix/config.o runtime/objects/core/sys/posix/dirent.o runtime/objects/core/sys/posix/dlfcn.o runtime/objects/core/sys/posix/fcntl.o runtime/objects/core/sys/posix/grp.o runtime/objects/core/sys/posix/iconv.o runtime/objects/core/sys/posix/inttypes.o runtime/objects/core/sys/posix/libgen.o runtime/objects/core/sys/posix/locale.o runtime/objects/core/sys/posix/mqueue.o runtime/objects/core/sys/posix/net/if_.o runtime/objects/core/sys/posix/netdb.o runtime/objects/core/sys/posix/netinet/in_.o runtime/objects/core/sys/posix/netinet/tcp.o runtime/objects/core/sys/posix/poll.o runtime/objects/core/sys/posix/pthread.o runtime/objects/core/sys/posix/pwd.o runtime/objects/core/sys/posix/sched.o runtime/objects/core/sys/posix/semaphore.o runtime/objects/core/sys/posix/setjmp.o runtime/objects/core/sys/posix/signal.o runtime/objects/core/sys/posix/spawn.o runtime/objects/core/sys/posix/stdc/time.o runtime/objects/core/sys/posix/stdio.o runtime/objects/core/sys/posix/stdlib.o runtime/objects/core/sys/posix/string.o runtime/objects/core/sys/posix/strings.o runtime/objects/core/sys/posix/sys/filio.o runtime/objects/core/sys/posix/sys/ioccom.o runtime/objects/core/sys/posix/sys/ioctl.o runtime/objects/core/sys/posix/sys/ipc.o runtime/objects/core/sys/posix/sys/mman.o runtime/objects/core/sys/posix/sys/msg.o runtime/objects/core/sys/posix/sys/resource.o runtime/objects/core/sys/posix/sys/select.o runtime/objects/core/sys/posix/sys/shm.o runtime/objects/core/sys/posix/sys/socket.o runtime/objects/core/sys/posix/sys/stat.o runtime/objects/core/sys/posix/sys/statvfs.o runtime/objects/core/sys/posix/sys/time.o runtime/objects/core/sys/posix/sys/ttycom.o runtime/objects/core/sys/posix/sys/types.o runtime/objects/core/sys/posix/sys/uio.o runtime/objects/core/sys/posix/sys/un.o runtime/objects/core/sys/posix/sys/utsname.o runtime/objects/core/sys/posix/sys/wait.o runtime/objects/core/sys/posix/syslog.o runtime/objects/core/sys/posix/termios.o runtime/objects/core/sys/posix/time.o runtime/objects/core/sys/posix/ucontext.o runtime/objects/core/sys/posix/unistd.o runtime/objects/core/sys/posix/utime.o runtime/objects/core/sys/freebsd/config.o runtime/objects/core/sys/freebsd/dlfcn.o runtime/objects/core/sys/freebsd/err.o runtime/objects/core/sys/freebsd/execinfo.o runtime/objects/core/sys/freebsd/netinet/in_.o runtime/objects/core/sys/freebsd/pthread_np.o runtime/objects/core/sys/freebsd/stdlib.o runtime/objects/core/sys/freebsd/string.o runtime/objects/core/sys/freebsd/sys/_bitset.o runtime/objects/core/sys/freebsd/sys/_cpuset.o runtime/objects/core/sys/freebsd/sys/cdefs.o runtime/objects/core/sys/freebsd/sys/elf.o runtime/objects/core/sys/freebsd/sys/elf32.o runtime/objects/core/sys/freebsd/sys/elf64.o runtime/objects/core/sys/freebsd/sys/elf_common.o runtime/objects/core/sys/freebsd/sys/event.o runtime/objects/core/sys/freebsd/sys/link_elf.o runtime/objects/core/sys/freebsd/sys/mman.o runtime/objects/core/sys/freebsd/sys/mount.o runtime/objects/core/sys/freebsd/sys/sysctl.o runtime/objects/core/sys/freebsd/time.o runtime/objects/core/sys/freebsd/unistd.o runtime/objects/core/atomic.bc.o runtime/objects/core/attribute.bc.o runtime/objects/core/bitop.bc.o runtime/objects/core/builtins.bc.o runtime/objects/core/checkedint.bc.o runtime/objects/core/cpuid.bc.o runtime/objects/core/demangle.bc.o runtime/objects/core/exception.bc.o runtime/objects/core/gc/config.bc.o runtime/objects/core/gc/gcinterface.bc.o runtime/objects/core/gc/registry.bc.o runtime/objects/core/int128.bc.o runtime/objects/core/internal/abort.bc.o runtime/objects/core/internal/array/appen& /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/range/package.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/range/package.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/range/primitives.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/range/primitives.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/backtracking.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/backtracking.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/generator.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/generator.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/ir.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/ir.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/kickstart.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/kickstart.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/parser.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/parser.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/tests.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/tests.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/tests2.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/tests2.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/thompson.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/internal/thompson.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/package.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/regex/package.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/signals.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/signals.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/socket.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/socket.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/stdint.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/stdint.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/stdio.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/stdio.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/string.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/string.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/sumtype.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/sumtype.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/system.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/system.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/traits.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/traits.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/typecons.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/typecons.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/typetuple.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/typetuple.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/uni/package.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/uni/package.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/uri.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/uri.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/utf.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/utf.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/uuid.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/uuid.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/variant.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/variant.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/xml.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/xml.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/zip.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/zip.bc.o && /usr/local/bin/cmake -E rename /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/zlib.bc /wrkdirs/usr/ports/lang/ldc/work/.build/runtime/objects/std/zlib.bc.o ld-elf.so.1: /lib/libgcc_s.so.1: version GCC_7.0.0 required by /usr/local/lib/gcc11/libgphobos.so.2 not found Some similar error here: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264365 I also found this so perhaps we should follow Alpine and only allow it on aarch64 (needs testing and I have no hardware capable of doing aarch64 testing) and amd64? https://git.alpinelinux.org/aports/tree/community/ldc/APKBUILD#n9
I found this which might be related? https://github.com/godotengine/godot/commit/8372a404bbb78fb56a9c6c671fcbeef5f90b53e6
Fix summary: ldc is in lang, not in devel.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=87ab6d409fe6e8988872b18a4128713fe0e3d9eb commit 87ab6d409fe6e8988872b18a4128713fe0e3d9eb Author: Daniel Engberg <diizzy@FreeBSD.org> AuthorDate: 2022-11-15 00:10:00 +0000 Commit: Jose Alonso Cardenas Marquez <acm@FreeBSD.org> CommitDate: 2022-11-15 00:10:00 +0000 lang/ldc: Update to 1.30.0 ChangeLog at: https://github.com/ldc-developers/ldc/releases/tag/v1.30.0 PR: 266828 ...runtime-src-core-sys-freebsd-sys_event.d (gone) | 14 ----- ...e-druntime-src-core-sys-posix-sys_stat.d (gone) | 59 ---------------------- ...-druntime-src-core-sys-posix-sys_types.d (gone) | 19 ------- ...ime-druntime-src-core-sys-posix_dirent.d (gone) | 17 ------- .../patch-cmake_Modules_FindLLVM.cmake (gone) | 11 ---- lang/ldc/files/patch-driver_linker-gcc.cpp | 2 +- lang/ldc/files/patch-driver_targetmachine.cpp | 2 +- ...h-ltsmaster_cmake_Modules_FindLLVM.cmake (gone) | 12 ----- ...patch-ltsmaster_driver_targetmachine.cpp (gone) | 27 ---------- ...ime_druntime_src_core_sys_posix_setjmp.d (gone) | 27 ---------- ...e_druntime_src_core_sys_posix_ucontext.d (gone) | 41 --------------- ...phobos_std_internal_math_gammafunction.d (gone) | 22 -------- lang/ldc/files/patch-runtime_CMakeLists.txt | 22 ++++---- 13 files changed, 13 insertions(+), 262 deletions(-)
Daniel, I have committed this patch file with few modifications. I leave it open until I can update all d-lang ports
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=f3b1ad45c3b6e926824002047157993e8f05beb8 commit f3b1ad45c3b6e926824002047157993e8f05beb8 Author: Daniel Engberg <diizzy@FreeBSD.org> AuthorDate: 2022-11-15 00:26:06 +0000 Commit: Jose Alonso Cardenas Marquez <acm@FreeBSD.org> CommitDate: 2022-11-15 00:26:06 +0000 lang/ldc: Update to 1.30.0 - Commit forgotten files ChangeLog at: https://github.com/ldc-developers/ldc/releases/tag/v1.30.0 PR: 266828 lang/ldc/Makefile | 49 +++++++++--------------- lang/ldc/distinfo | 16 ++------ lang/ldc/pkg-plist | 109 ++++++++++++++++++++++++++++++++++++++++++++--------- 3 files changed, 112 insertions(+), 62 deletions(-)
Thats great, thanks for continuing working on this.
This should be closed, I presume?