Download raw body.
lang/crystal: update and unbreak
On Tue Jun 11, 2024 at 11:03:09AM GMT, joshua stein wrote:
> On Tue, 11 Jun 2024 at 15:58:51 +0100, Stuart Henderson wrote:
> > On 2024/06/11 09:43, joshua stein wrote:
> > > update to 1.12.2, fix linking to libLLVM, and use -Wl,-z,nobtcfi
> > > until upstream gets IBT support.
> >
> > please set USE_NOBTCFI=Yes, even if it needs additional things to make it
> > stick, so that it's recorded in sqlports.
> >
> > > # Build requires llvm-config from ports, not from base
> > > MODULES = lang/clang
> > > +MODCLANG_VERSION = 13
> >
> > we really could do with killing 13 - currently it is *only* used so we
> > can build gcc (and thus everything fortran) on i386.
>
> Ok, here's a version that builds with llvm 17
>
>
> diff --git lang/crystal/Makefile lang/crystal/Makefile
> index f6ec5ddc13e..de83223c96e 100644
> --- lang/crystal/Makefile
> +++ lang/crystal/Makefile
> @@ -1,18 +1,14 @@
> -# https://github.com/crystal-lang/crystal/issues/12743
> -#BROKEN = No LLVM 15 support
> -
> -BROKEN= not IBT compatible, cannot load library libLLVM-13.so
> -
> # Hopefully ${CLANG_ARCHS} at some point.
> ONLY_FOR_ARCHS= amd64
>
> -V = 1.4.1
> -V_SHARDS = 0.17.0
> +USE_NOBTCFI = Yes
> +
> +V = 1.12.2
> +V_SHARDS = 0.18.0
> V_MOLINILLO = 0.2.0
> COMMENT = statically typed object oriented language
> DISTNAME = crystal-${V}
> CATEGORIES = lang
> -REVISION = 0
>
> HOMEPAGE = https://crystal-lang.org/
> MAINTAINER = joshua stein <jcs@jcs.org>
> @@ -20,7 +16,7 @@ MAINTAINER = joshua stein <jcs@jcs.org>
> # Apache 2.0
> PERMIT_PACKAGE = Yes
>
> -WANTLIB += ${COMPILER_LIBCXX} c event_core gc iconv m pcre yaml-0
> +WANTLIB += ${COMPILER_LIBCXX} c event_core gc iconv m pcre2-8 yaml-0
>
> #
> # crystal-X-OpenBSDX.X.tar.gz is an archive of a bootstrap compiler object
> @@ -28,7 +24,7 @@ WANTLIB += ${COMPILER_LIBCXX} c event_core gc iconv m pcre yaml-0
> # current version of Crystal there, then checking out the source for that
> # version, applying patches included in this port, and running:
> #
> -# make crystal FLAGS="--cross-compile --target amd64-unknown-openbsd7.1"
> +# make crystal FLAGS="--cross-compile --target amd64-unknown-openbsd7.5"
> #
> # The result will be built at .build/crystal.o
> #
> @@ -38,19 +34,20 @@ SITES.a = https://jcs.org/distfiles/
> SITES.b = https://github.com/crystal-lang/shards/archive/
> SITES.c = https://github.com/crystal-lang/crystal-molinillo/archive/
> DISTFILES = crystal-${V}{${V}}.tar.gz
> -DISTFILES.a = crystal-${V}-OpenBSD7.1.tar.gz
> +DISTFILES.a = crystal-${V}-OpenBSD7.5.tar.gz
> DISTFILES.b = shards-${V}{v${V_SHARDS}}.tar.gz
> DISTFILES.c = crystal-molinillo-${V}{v${V_MOLINILLO}}.tar.gz
>
> # Build requires llvm-config from ports, not from base
> MODULES = lang/clang
> +MODCLANG_VERSION = 17
> COMPILER = ports-clang
> LLVM_CONFIG = llvm-config-${MODCLANG_VERSION}
>
> LIB_DEPENDS = converters/libiconv \
> devel/boehm-gc \
> devel/libevent2 \
> - devel/pcre \
> + devel/pcre2 \
> devel/libyaml
>
> USE_GMAKE = Yes
> @@ -72,7 +69,7 @@ do-build:
> ${WRKSRC}/../crystal.o \
> ${WRKSRC}/src/llvm/ext/llvm_ext.o \
> `(${LLVM_CONFIG} --libs --system-libs --ldflags 2> /dev/null)` \
> - -L${LOCALBASE}/lib -liconv -lpcre -levent_core -lgc -lyaml
> + -L${LOCALBASE}/lib -liconv -lpcre2-8 -levent_core -lgc -lyaml -Wl,-z,nobtcfi
> cd ${WRKSRC}/shards-${V_SHARDS} && \
> env LD_LIBRARY_PATH=${LOCALBASE}/llvm${MODCLANG_VERSION}/lib \
> CRYSTAL_PATH=lib:${WRKSRC}/src:${WRKSRC}/crystal-molinillo-${V_MOLINILLO}/src \
> @@ -90,7 +87,7 @@ do-install:
>
> do-test:
> cd ${WRKSRC}; \
> - ulimit -s 5120 -d 4096000 && \
> + ulimit -s 5120 -d 6120000 && \
> ${MAKE_PROGRAM} ${TEST_TARGET}
>
> .include <bsd.port.mk>
> diff --git lang/crystal/distinfo lang/crystal/distinfo
> index 6c328e4bd27..f0829f2064a 100644
> --- lang/crystal/distinfo
> +++ lang/crystal/distinfo
> @@ -1,8 +1,8 @@
> -SHA256 (crystal-1.4.1-OpenBSD7.1.tar.gz) = IGlOAkDwUqwugcVoQe/xgO+Mr6TbZBKOU+Krt4fPdjQ=
> -SHA256 (crystal-1.4.1.tar.gz) = l0ZmVq3t4ZlDYZ4YrwMMHVQsLD3R8286QiMQvYtT9eA=
> -SHA256 (crystal-molinillo-1.4.1.tar.gz) = 4jHPJBGmoRoVOJg8f7UrGeZQrMMzi9PN9v2xPWRjhho=
> -SHA256 (shards-1.4.1.tar.gz) = s/CiJhQ3shs+JGW3dV7fDDPwMFoRK9mjbhs+x0+WsJg=
> -SIZE (crystal-1.4.1-OpenBSD7.1.tar.gz) = 8986175
> -SIZE (crystal-1.4.1.tar.gz) = 2880860
> -SIZE (crystal-molinillo-1.4.1.tar.gz) = 23959
> -SIZE (shards-1.4.1.tar.gz) = 71264
> +SHA256 (crystal-1.12.2-OpenBSD7.5.tar.gz) = 8XYr6mbsVQeTMZxPq3ksWIxq2fbAL4rTdw35rqrA2pA=
> +SHA256 (crystal-1.12.2.tar.gz) = 7VFbnLZPVXOHqoZfxyMgRfuwOMPbTJaP+rukCuTvnIo=
> +SHA256 (crystal-molinillo-1.12.2.tar.gz) = 4jHPJBGmoRoVOJg8f7UrGeZQrMMzi9PN9v2xPWRjhho=
> +SHA256 (shards-1.12.2.tar.gz) = Rqgwr9kpKAc112XlnYwnrJupLt3elkeufT/IWt3DjMU=
> +SIZE (crystal-1.12.2-OpenBSD7.5.tar.gz) = 10235030
> +SIZE (crystal-1.12.2.tar.gz) = 3655994
> +SIZE (crystal-molinillo-1.12.2.tar.gz) = 23959
> +SIZE (shards-1.12.2.tar.gz) = 79910
> diff --git lang/crystal/files/crystal lang/crystal/files/crystal
> index 13b5c126329..9c748c92a64 100644
> --- lang/crystal/files/crystal
> +++ lang/crystal/files/crystal
> @@ -2,4 +2,5 @@
>
> export CRYSTAL_PATH="lib:${TRUEPREFIX}/lib/crystal"
> export CRYSTAL_LIBRARY_PATH=lib:${TRUEPREFIX}/lib
> +export LD_LIBRARY_PATH="${TRUEPREFIX}/llvm13/lib"
llvm13?
> exec ${TRUEPREFIX}/libexec/crystal "${@}"
> diff --git lang/crystal/patches/patch-bin_crystal lang/crystal/patches/patch-bin_crystal
> new file mode 100644
> index 00000000000..3151a401a21
> --- /dev/null
> +++ lang/crystal/patches/patch-bin_crystal
> @@ -0,0 +1,18 @@
> +Index: bin/crystal
> +--- bin/crystal.orig
> ++++ bin/crystal
> +@@ -1,4 +1,4 @@
> +-#!/bin/sh
> ++#!/usr/local/bin/bash
> +
> + ################## https://github.com/mkropat/sh-realpath #####################
> + #
> +@@ -186,6 +186,8 @@ cd "$(realpath "$(pwd)")"
> +
> + if [ -x "$CRYSTAL_DIR/crystal" ]; then
> + __warning_msg "Using compiled compiler at ${CRYSTAL_DIR#"$PWD/"}/crystal"
> ++ export LD_LIBRARY_PATH=/usr/local/llvm17/lib
> ++ export LLVM_CONFIG=/usr/local/llvm17/bin/llvm-config
> + exec "$CRYSTAL_DIR/crystal" "$@"
> + elif !($PARENT_CRYSTAL_EXISTS); then
> + __error_msg 'You need to have a crystal executable in your path! or set CRYSTAL env variable'
> diff --git lang/crystal/patches/patch-src_compiler_crystal_compiler_cr lang/crystal/patches/patch-src_compiler_crystal_compiler_cr
> index 36d53d91c6b..f66a9959eb0 100644
> --- lang/crystal/patches/patch-src_compiler_crystal_compiler_cr
> +++ lang/crystal/patches/patch-src_compiler_crystal_compiler_cr
> @@ -3,13 +3,13 @@
> Index: src/compiler/crystal/compiler.cr
> --- src/compiler/crystal/compiler.cr.orig
> +++ src/compiler/crystal/compiler.cr
> -@@ -365,6 +365,9 @@ module Crystal
> +@@ -466,6 +466,9 @@ module Crystal
> else
> link_flags = @link_flags || ""
> link_flags += " -rdynamic"
> + if program.has_flag? "openbsd"
> -+ link_flags += " -L/usr/local/lib"
> ++ link_flags += " -L/usr/local/lib -L/usr/local/llvm17/lib -Wl,-z,nobtcfi"
> + end
>
> - { %(#{CC} "${@}" -o #{Process.quote_posix(output_filename)} #{link_flags} #{program.lib_flags}), object_names }
> + {DEFAULT_LINKER, %(#{DEFAULT_LINKER} "${@}" -o #{Process.quote_posix(output_filename)} #{link_flags} #{program.lib_flags}), object_names}
> end
> diff --git lang/crystal/pkg/PLIST lang/crystal/pkg/PLIST
> index a31d93e9db6..16209e73d7f 100644
> --- lang/crystal/pkg/PLIST
> +++ lang/crystal/pkg/PLIST
> @@ -64,6 +64,7 @@ lib/crystal/compiler/crystal/codegen/types.cr
> lib/crystal/compiler/crystal/codegen/unions.cr
> lib/crystal/compiler/crystal/command/
> lib/crystal/compiler/crystal/command.cr
> +lib/crystal/compiler/crystal/command/clear_cache.cr
> lib/crystal/compiler/crystal/command/cursor.cr
> lib/crystal/compiler/crystal/command/docs.cr
> lib/crystal/compiler/crystal/command/env.cr
> @@ -90,6 +91,7 @@ lib/crystal/compiler/crystal/interpreter/c.cr
> lib/crystal/compiler/crystal/interpreter/cast.cr
> lib/crystal/compiler/crystal/interpreter/class_vars.cr
> lib/crystal/compiler/crystal/interpreter/closure.cr
> +lib/crystal/compiler/crystal/interpreter/closure_context.cr
> lib/crystal/compiler/crystal/interpreter/compiled_block.cr
> lib/crystal/compiler/crystal/interpreter/compiled_def.cr
> lib/crystal/compiler/crystal/interpreter/compiled_instructions.cr
> @@ -109,17 +111,21 @@ lib/crystal/compiler/crystal/interpreter/local_vars_gatherer.cr
> lib/crystal/compiler/crystal/interpreter/multidispatch.cr
> lib/crystal/compiler/crystal/interpreter/op_code.cr
> lib/crystal/compiler/crystal/interpreter/primitives.cr
> +lib/crystal/compiler/crystal/interpreter/pry_reader.cr
> lib/crystal/compiler/crystal/interpreter/repl.cr
> +lib/crystal/compiler/crystal/interpreter/repl_reader.cr
> lib/crystal/compiler/crystal/interpreter/to_bool.cr
> lib/crystal/compiler/crystal/interpreter/value.cr
> lib/crystal/compiler/crystal/loader/
> lib/crystal/compiler/crystal/loader.cr
> +lib/crystal/compiler/crystal/loader/msvc.cr
> lib/crystal/compiler/crystal/loader/unix.cr
> lib/crystal/compiler/crystal/macros/
> lib/crystal/compiler/crystal/macros.cr
> lib/crystal/compiler/crystal/macros/interpreter.cr
> lib/crystal/compiler/crystal/macros/macros.cr
> lib/crystal/compiler/crystal/macros/methods.cr
> +lib/crystal/compiler/crystal/macros/types.cr
> lib/crystal/compiler/crystal/program.cr
> lib/crystal/compiler/crystal/progress_tracker.cr
> lib/crystal/compiler/crystal/semantic/
> @@ -153,6 +159,7 @@ lib/crystal/compiler/crystal/semantic/normalizer.cr
> lib/crystal/compiler/crystal/semantic/path_lookup.cr
> lib/crystal/compiler/crystal/semantic/recursive_struct_checker.cr
> lib/crystal/compiler/crystal/semantic/restrictions.cr
> +lib/crystal/compiler/crystal/semantic/restrictions_augmenter.cr
> lib/crystal/compiler/crystal/semantic/semantic_visitor.cr
> lib/crystal/compiler/crystal/semantic/suggestions.cr
> lib/crystal/compiler/crystal/semantic/to_s.cr
> @@ -164,6 +171,7 @@ lib/crystal/compiler/crystal/semantic/type_guess_visitor.cr
> lib/crystal/compiler/crystal/semantic/type_intersect.cr
> lib/crystal/compiler/crystal/semantic/type_lookup.cr
> lib/crystal/compiler/crystal/semantic/type_merge.cr
> +lib/crystal/compiler/crystal/semantic/type_to_restriction.cr
> lib/crystal/compiler/crystal/semantic/warnings.cr
> lib/crystal/compiler/crystal/syntax/
> lib/crystal/compiler/crystal/syntax.cr
> @@ -179,6 +187,7 @@ lib/crystal/compiler/crystal/syntax/virtual_file.cr
> lib/crystal/compiler/crystal/syntax/visitor.cr
> lib/crystal/compiler/crystal/tools/
> lib/crystal/compiler/crystal/tools/context.cr
> +lib/crystal/compiler/crystal/tools/dependencies.cr
> lib/crystal/compiler/crystal/tools/doc/
> lib/crystal/compiler/crystal/tools/doc.cr
> lib/crystal/compiler/crystal/tools/doc/constant.cr
> @@ -187,6 +196,7 @@ lib/crystal/compiler/crystal/tools/doc/html/
> lib/crystal/compiler/crystal/tools/doc/html/404.html
> lib/crystal/compiler/crystal/tools/doc/html/_head.html
> lib/crystal/compiler/crystal/tools/doc/html/_list_items.html
> +lib/crystal/compiler/crystal/tools/doc/html/_macros_inherited.html
> lib/crystal/compiler/crystal/tools/doc/html/_method_detail.html
> lib/crystal/compiler/crystal/tools/doc/html/_method_summary.html
> lib/crystal/compiler/crystal/tools/doc/html/_methods_inherited.html
> @@ -214,6 +224,7 @@ lib/crystal/compiler/crystal/tools/doc/templates.cr
> lib/crystal/compiler/crystal/tools/doc/to_json.cr
> lib/crystal/compiler/crystal/tools/doc/type.cr
> lib/crystal/compiler/crystal/tools/expand.cr
> +lib/crystal/compiler/crystal/tools/flags.cr
> lib/crystal/compiler/crystal/tools/formatter.cr
> lib/crystal/compiler/crystal/tools/git.cr
> lib/crystal/compiler/crystal/tools/implementations.cr
> @@ -261,12 +272,9 @@ lib/crystal/compiler/crystal/tools/playground/public/vendor/materialize-v0.97.5/
> lib/crystal/compiler/crystal/tools/playground/public/vendor/materialize-v0.97.5/css/materialize.min.css
> lib/crystal/compiler/crystal/tools/playground/public/vendor/materialize-v0.97.5/js/
> lib/crystal/compiler/crystal/tools/playground/public/vendor/materialize-v0.97.5/js/materialize.min.js
> -lib/crystal/compiler/crystal/tools/playground/public/vendor/octicons-3.5.0/
> -lib/crystal/compiler/crystal/tools/playground/public/vendor/octicons-3.5.0/octicons.css
> -lib/crystal/compiler/crystal/tools/playground/public/vendor/octicons-3.5.0/octicons.eot
> -lib/crystal/compiler/crystal/tools/playground/public/vendor/octicons-3.5.0/octicons.svg
> -lib/crystal/compiler/crystal/tools/playground/public/vendor/octicons-3.5.0/octicons.ttf
> -lib/crystal/compiler/crystal/tools/playground/public/vendor/octicons-3.5.0/octicons.woff
> +lib/crystal/compiler/crystal/tools/playground/public/vendor/octicons-19.5.0/
> +lib/crystal/compiler/crystal/tools/playground/public/vendor/octicons-19.5.0/octicons.css
> +lib/crystal/compiler/crystal/tools/playground/public/vendor/octicons-19.5.0/octicons.svg
> lib/crystal/compiler/crystal/tools/playground/server.cr
> lib/crystal/compiler/crystal/tools/playground/views/
> lib/crystal/compiler/crystal/tools/playground/views/_about.html
> @@ -278,8 +286,10 @@ lib/crystal/compiler/crystal/tools/print_hierarchy.cr
> lib/crystal/compiler/crystal/tools/print_types_visitor.cr
> lib/crystal/compiler/crystal/tools/table_print.cr
> lib/crystal/compiler/crystal/tools/typed_def_processor.cr
> +lib/crystal/compiler/crystal/tools/unreachable.cr
> lib/crystal/compiler/crystal/types.cr
> lib/crystal/compiler/crystal/util.cr
> +lib/crystal/compiler/crystal/warnings.cr
> lib/crystal/compiler/requires.cr
> lib/crystal/complex.cr
> lib/crystal/compress/
> @@ -316,6 +326,7 @@ lib/crystal/crypto/blowfish.cr
> lib/crystal/crypto/subtle.cr
> lib/crystal/crystal/
> lib/crystal/crystal/at_exit_handlers.cr
> +lib/crystal/crystal/atomic_semaphore.cr
> lib/crystal/crystal/compiler_rt/
> lib/crystal/crystal/compiler_rt.cr
> lib/crystal/crystal/compiler_rt/divmod128.cr
> @@ -323,6 +334,8 @@ lib/crystal/crystal/compiler_rt/fixint.cr
> lib/crystal/crystal/compiler_rt/float.cr
> lib/crystal/crystal/compiler_rt/mul.cr
> lib/crystal/crystal/compiler_rt/multi3.cr
> +lib/crystal/crystal/compiler_rt/pow.cr
> +lib/crystal/crystal/compiler_rt/shift.cr
> lib/crystal/crystal/datum.cr
> lib/crystal/crystal/digest/
> lib/crystal/crystal/digest/md5.cr
> @@ -345,6 +358,7 @@ lib/crystal/crystal/once.cr
> lib/crystal/crystal/pointer_linked_list.cr
> lib/crystal/crystal/rw_lock.cr
> lib/crystal/crystal/scheduler.cr
> +lib/crystal/crystal/small_deque.cr
> lib/crystal/crystal/spin_lock.cr
> lib/crystal/crystal/syntax_highlighter/
> lib/crystal/crystal/syntax_highlighter.cr
> @@ -365,8 +379,10 @@ lib/crystal/crystal/system/path.cr
> lib/crystal/crystal/system/print_error.cr
> lib/crystal/crystal/system/process.cr
> lib/crystal/crystal/system/random.cr
> +lib/crystal/crystal/system/signal.cr
> lib/crystal/crystal/system/socket.cr
> lib/crystal/crystal/system/thread.cr
> +lib/crystal/crystal/system/thread_condition_variable.cr
> lib/crystal/crystal/system/thread_linked_list.cr
> lib/crystal/crystal/system/thread_mutex.cr
> lib/crystal/crystal/system/time.cr
> @@ -391,6 +407,7 @@ lib/crystal/crystal/system/unix/process.cr
> lib/crystal/crystal/system/unix/pthread.cr
> lib/crystal/crystal/system/unix/pthread_condition_variable.cr
> lib/crystal/crystal/system/unix/pthread_mutex.cr
> +lib/crystal/crystal/system/unix/signal.cr
> lib/crystal/crystal/system/unix/socket.cr
> lib/crystal/crystal/system/unix/syscall.cr
> lib/crystal/crystal/system/unix/sysconf_cpucount.cr
> @@ -413,13 +430,17 @@ lib/crystal/crystal/system/wasi/main.cr
> lib/crystal/crystal/system/wasi/path.cr
> lib/crystal/crystal/system/wasi/process.cr
> lib/crystal/crystal/system/wasi/random.cr
> +lib/crystal/crystal/system/wasi/signal.cr
> lib/crystal/crystal/system/wasi/socket.cr
> lib/crystal/crystal/system/wasi/thread.cr
> +lib/crystal/crystal/system/wasi/thread_condition_variable.cr
> lib/crystal/crystal/system/wasi/thread_mutex.cr
> lib/crystal/crystal/system/wasi/user.cr
> lib/crystal/crystal/system/wasi/wasi.cr
> lib/crystal/crystal/system/win32/
> lib/crystal/crystal/system/win32/cpucount.cr
> +lib/crystal/crystal/system/win32/crypto.cr
> +lib/crystal/crystal/system/win32/delay_load.cr
> lib/crystal/crystal/system/win32/dir.cr
> lib/crystal/crystal/system/win32/env.cr
> lib/crystal/crystal/system/win32/event_loop_iocp.cr
> @@ -428,12 +449,15 @@ lib/crystal/crystal/system/win32/file.cr
> lib/crystal/crystal/system/win32/file_descriptor.cr
> lib/crystal/crystal/system/win32/file_info.cr
> lib/crystal/crystal/system/win32/hostname.cr
> +lib/crystal/crystal/system/win32/library_archive.cr
> lib/crystal/crystal/system/win32/mime.cr
> lib/crystal/crystal/system/win32/path.cr
> lib/crystal/crystal/system/win32/process.cr
> lib/crystal/crystal/system/win32/random.cr
> +lib/crystal/crystal/system/win32/signal.cr
> lib/crystal/crystal/system/win32/socket.cr
> lib/crystal/crystal/system/win32/thread.cr
> +lib/crystal/crystal/system/win32/thread_condition_variable.cr
> lib/crystal/crystal/system/win32/thread_mutex.cr
> lib/crystal/crystal/system/win32/time.cr
> lib/crystal/crystal/system/win32/visual_studio.cr
> @@ -517,8 +541,13 @@ lib/crystal/float/printer/
> lib/crystal/float/printer.cr
> lib/crystal/float/printer/cached_powers.cr
> lib/crystal/float/printer/diy_fp.cr
> +lib/crystal/float/printer/dragonbox.cr
> +lib/crystal/float/printer/dragonbox_cache.cr
> lib/crystal/float/printer/grisu3.cr
> +lib/crystal/float/printer/hexfloat.cr
> lib/crystal/float/printer/ieee.cr
> +lib/crystal/float/printer/ryu_printf.cr
> +lib/crystal/float/printer/ryu_printf_table.cr
> lib/crystal/gc/
> lib/crystal/gc.cr
> lib/crystal/gc/boehm.cr
> @@ -607,6 +636,49 @@ lib/crystal/kernel.cr
> lib/crystal/levenshtein.cr
> lib/crystal/lib_c/
> lib/crystal/lib_c.cr
> +lib/crystal/lib_c/aarch64-android/
> +lib/crystal/lib_c/aarch64-android/c/
> +lib/crystal/lib_c/aarch64-android/c/arpa/
> +lib/crystal/lib_c/aarch64-android/c/arpa/inet.cr
> +lib/crystal/lib_c/aarch64-android/c/dirent.cr
> +lib/crystal/lib_c/aarch64-android/c/dlfcn.cr
> +lib/crystal/lib_c/aarch64-android/c/elf.cr
> +lib/crystal/lib_c/aarch64-android/c/errno.cr
> +lib/crystal/lib_c/aarch64-android/c/fcntl.cr
> +lib/crystal/lib_c/aarch64-android/c/grp.cr
> +lib/crystal/lib_c/aarch64-android/c/iconv.cr
> +lib/crystal/lib_c/aarch64-android/c/link.cr
> +lib/crystal/lib_c/aarch64-android/c/netdb.cr
> +lib/crystal/lib_c/aarch64-android/c/netinet/
> +lib/crystal/lib_c/aarch64-android/c/netinet/in.cr
> +lib/crystal/lib_c/aarch64-android/c/netinet/tcp.cr
> +lib/crystal/lib_c/aarch64-android/c/pthread.cr
> +lib/crystal/lib_c/aarch64-android/c/pwd.cr
> +lib/crystal/lib_c/aarch64-android/c/sched.cr
> +lib/crystal/lib_c/aarch64-android/c/signal.cr
> +lib/crystal/lib_c/aarch64-android/c/stdarg.cr
> +lib/crystal/lib_c/aarch64-android/c/stddef.cr
> +lib/crystal/lib_c/aarch64-android/c/stdint.cr
> +lib/crystal/lib_c/aarch64-android/c/stdio.cr
> +lib/crystal/lib_c/aarch64-android/c/stdlib.cr
> +lib/crystal/lib_c/aarch64-android/c/string.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/
> +lib/crystal/lib_c/aarch64-android/c/sys/file.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/ioctl.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/mman.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/resource.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/select.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/socket.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/stat.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/syscall.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/system_properties.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/time.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/types.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/un.cr
> +lib/crystal/lib_c/aarch64-android/c/sys/wait.cr
> +lib/crystal/lib_c/aarch64-android/c/termios.cr
> +lib/crystal/lib_c/aarch64-android/c/time.cr
> +lib/crystal/lib_c/aarch64-android/c/unistd.cr
> lib/crystal/lib_c/aarch64-darwin/
> lib/crystal/lib_c/aarch64-darwin/c/
> lib/crystal/lib_c/aarch64-darwin/c/arpa/
> @@ -1166,6 +1238,46 @@ lib/crystal/lib_c/x86_64-openbsd/c/termios.cr
> lib/crystal/lib_c/x86_64-openbsd/c/time.cr
> lib/crystal/lib_c/x86_64-openbsd/c/unistd.cr
> lib/crystal/lib_c/x86_64-portbld-freebsd
> +lib/crystal/lib_c/x86_64-solaris/
> +lib/crystal/lib_c/x86_64-solaris/c/
> +lib/crystal/lib_c/x86_64-solaris/c/arpa/
> +lib/crystal/lib_c/x86_64-solaris/c/arpa/inet.cr
> +lib/crystal/lib_c/x86_64-solaris/c/dirent.cr
> +lib/crystal/lib_c/x86_64-solaris/c/dlfcn.cr
> +lib/crystal/lib_c/x86_64-solaris/c/elf.cr
> +lib/crystal/lib_c/x86_64-solaris/c/errno.cr
> +lib/crystal/lib_c/x86_64-solaris/c/fcntl.cr
> +lib/crystal/lib_c/x86_64-solaris/c/grp.cr
> +lib/crystal/lib_c/x86_64-solaris/c/iconv.cr
> +lib/crystal/lib_c/x86_64-solaris/c/link.cr
> +lib/crystal/lib_c/x86_64-solaris/c/netdb.cr
> +lib/crystal/lib_c/x86_64-solaris/c/netinet/
> +lib/crystal/lib_c/x86_64-solaris/c/netinet/in.cr
> +lib/crystal/lib_c/x86_64-solaris/c/netinet/tcp.cr
> +lib/crystal/lib_c/x86_64-solaris/c/pthread.cr
> +lib/crystal/lib_c/x86_64-solaris/c/pwd.cr
> +lib/crystal/lib_c/x86_64-solaris/c/sched.cr
> +lib/crystal/lib_c/x86_64-solaris/c/signal.cr
> +lib/crystal/lib_c/x86_64-solaris/c/stdarg.cr
> +lib/crystal/lib_c/x86_64-solaris/c/stddef.cr
> +lib/crystal/lib_c/x86_64-solaris/c/stdint.cr
> +lib/crystal/lib_c/x86_64-solaris/c/stdio.cr
> +lib/crystal/lib_c/x86_64-solaris/c/stdlib.cr
> +lib/crystal/lib_c/x86_64-solaris/c/string.cr
> +lib/crystal/lib_c/x86_64-solaris/c/sys/
> +lib/crystal/lib_c/x86_64-solaris/c/sys/file.cr
> +lib/crystal/lib_c/x86_64-solaris/c/sys/mman.cr
> +lib/crystal/lib_c/x86_64-solaris/c/sys/resource.cr
> +lib/crystal/lib_c/x86_64-solaris/c/sys/select.cr
> +lib/crystal/lib_c/x86_64-solaris/c/sys/socket.cr
> +lib/crystal/lib_c/x86_64-solaris/c/sys/stat.cr
> +lib/crystal/lib_c/x86_64-solaris/c/sys/time.cr
> +lib/crystal/lib_c/x86_64-solaris/c/sys/types.cr
> +lib/crystal/lib_c/x86_64-solaris/c/sys/un.cr
> +lib/crystal/lib_c/x86_64-solaris/c/sys/wait.cr
> +lib/crystal/lib_c/x86_64-solaris/c/termios.cr
> +lib/crystal/lib_c/x86_64-solaris/c/time.cr
> +lib/crystal/lib_c/x86_64-solaris/c/unistd.cr
> lib/crystal/lib_c/x86_64-unknown-freebsd
> lib/crystal/lib_c/x86_64-windows-msvc/
> lib/crystal/lib_c/x86_64-windows-msvc/c/
> @@ -1176,6 +1288,7 @@ lib/crystal/lib_c/x86_64-windows-msvc/c/consoleapi.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/consoleapi2.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/corecrt.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/dbghelp.cr
> +lib/crystal/lib_c/x86_64-windows-msvc/c/delayimp.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/direct.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/errhandlingapi.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/errno.cr
> @@ -1183,23 +1296,30 @@ lib/crystal/lib_c/x86_64-windows-msvc/c/fcntl.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/fileapi.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/guiddef.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/handleapi.cr
> +lib/crystal/lib_c/x86_64-windows-msvc/c/heapapi.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/in6addr.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/inaddr.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/int_safe.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/io.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/ioapiset.cr
> +lib/crystal/lib_c/x86_64-windows-msvc/c/jobapi2.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/knownfolders.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/libloaderapi.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/malloc.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/memoryapi.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/minwinbase.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/mswsock.cr
> +lib/crystal/lib_c/x86_64-windows-msvc/c/ntifs.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/ntsecapi.cr
> +lib/crystal/lib_c/x86_64-windows-msvc/c/ntstatus.cr
> +lib/crystal/lib_c/x86_64-windows-msvc/c/process.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/processenv.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/processthreadsapi.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/profileapi.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/regapix.cr
> +lib/crystal/lib_c/x86_64-windows-msvc/c/sdkddkver.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/shlobj_core.cr
> +lib/crystal/lib_c/x86_64-windows-msvc/c/signal.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/stdarg.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/stddef.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/stdint.cr
> @@ -1214,9 +1334,12 @@ lib/crystal/lib_c/x86_64-windows-msvc/c/sys/types.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/sys/utime.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/sysinfoapi.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/timezoneapi.cr
> +lib/crystal/lib_c/x86_64-windows-msvc/c/tlhelp32.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/win_def.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/winbase.cr
> +lib/crystal/lib_c/x86_64-windows-msvc/c/wincrypt.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/windows.cr
> +lib/crystal/lib_c/x86_64-windows-msvc/c/winioctl.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/winnls.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/winnt.cr
> lib/crystal/lib_c/x86_64-windows-msvc/c/winreg.cr
> @@ -1242,7 +1365,9 @@ lib/crystal/llvm/basic_block_collection.cr
> lib/crystal/llvm/builder.cr
> lib/crystal/llvm/context.cr
> lib/crystal/llvm/di_builder.cr
> +lib/crystal/llvm/enums/
> lib/crystal/llvm/enums.cr
> +lib/crystal/llvm/enums/atomic.cr
> lib/crystal/llvm/ext/
> lib/crystal/llvm/ext/find-llvm-config
> lib/crystal/llvm/ext/llvm-versions.txt
> @@ -1255,13 +1380,29 @@ lib/crystal/llvm/generic_value.cr
> lib/crystal/llvm/global_collection.cr
> lib/crystal/llvm/instruction_collection.cr
> lib/crystal/llvm/jit_compiler.cr
> +lib/crystal/llvm/lib_llvm/
> lib/crystal/llvm/lib_llvm.cr
> +lib/crystal/llvm/lib_llvm/analysis.cr
> +lib/crystal/llvm/lib_llvm/bit_writer.cr
> +lib/crystal/llvm/lib_llvm/core.cr
> +lib/crystal/llvm/lib_llvm/debug_info.cr
> +lib/crystal/llvm/lib_llvm/error.cr
> +lib/crystal/llvm/lib_llvm/execution_engine.cr
> +lib/crystal/llvm/lib_llvm/initialization.cr
> +lib/crystal/llvm/lib_llvm/ir_reader.cr
> +lib/crystal/llvm/lib_llvm/target.cr
> +lib/crystal/llvm/lib_llvm/target_machine.cr
> +lib/crystal/llvm/lib_llvm/transforms/
> +lib/crystal/llvm/lib_llvm/transforms/pass_builder.cr
> +lib/crystal/llvm/lib_llvm/transforms/pass_manager_builder.cr
> +lib/crystal/llvm/lib_llvm/types.cr
> lib/crystal/llvm/lib_llvm_ext.cr
> lib/crystal/llvm/memory_buffer.cr
> lib/crystal/llvm/module.cr
> lib/crystal/llvm/module_pass_manager.cr
> lib/crystal/llvm/operand_bundle_def.cr
> lib/crystal/llvm/parameter_collection.cr
> +lib/crystal/llvm/pass_builder_options.cr
> lib/crystal/llvm/pass_manager_builder.cr
> lib/crystal/llvm/pass_registry.cr
> lib/crystal/llvm/phi_table.cr
> @@ -1371,10 +1512,15 @@ lib/crystal/range/
> lib/crystal/range.cr
> lib/crystal/range/bsearch.cr
> lib/crystal/reference.cr
> +lib/crystal/reference_storage.cr
> lib/crystal/regex/
> lib/crystal/regex.cr
> +lib/crystal/regex/engine.cr
> lib/crystal/regex/lib_pcre.cr
> +lib/crystal/regex/lib_pcre2.cr
> lib/crystal/regex/match_data.cr
> +lib/crystal/regex/pcre.cr
> +lib/crystal/regex/pcre2.cr
> lib/crystal/semantic_version.cr
> lib/crystal/set.cr
> lib/crystal/signal.cr
> @@ -1408,6 +1554,7 @@ lib/crystal/spec/filters.cr
> lib/crystal/spec/formatter.cr
> lib/crystal/spec/helpers/
> lib/crystal/spec/helpers/iterate.cr
> +lib/crystal/spec/helpers/string.cr
> lib/crystal/spec/item.cr
> lib/crystal/spec/junit_formatter.cr
> lib/crystal/spec/methods.cr
> @@ -1478,7 +1625,6 @@ lib/crystal/va_list.cr
> lib/crystal/value.cr
> lib/crystal/wasi_error.cr
> lib/crystal/weak_ref.cr
> -lib/crystal/windows_stubs.cr
> lib/crystal/winerror.cr
> lib/crystal/xml/
> lib/crystal/xml.cr
>
lang/crystal: update and unbreak