crystal-lang / crystal

The Crystal Programming Language
https://crystal-lang.org
Apache License 2.0
19.51k stars 1.62k forks source link

(Still) cannot compile Crystal #1964

Closed stugol closed 8 years ago

stugol commented 8 years ago

After an absence, I came back to Crystal and tried to run a script. As far as I know, nothing had changed. Nevertheless, I received the following errors:

Using compiled compiler at .build/crystal
/opt/t/crystal/.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/main.o: In function `__crystal_main':
main_module:(.text+0x5604): undefined reference to `GC_get_push_other_roots'
main_module:(.text+0x566a): undefined reference to `GC_set_push_other_roots'
main_module:(.text+0x566f): undefined reference to `co_thread_init'
/opt/t/crystal/.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber>:Fiber':
Fiber:(.text+0x193): undefined reference to `co_set_data'
/opt/t/crystal/.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber, &( -> Void)>:Fiber':
Fiber:(.text+0x333): undefined reference to `co_set_data'
/opt/t/crystal/.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber::current:Fiber':
Fiber:(.text+0x62d): undefined reference to `co_get_data'
collect2: error: ld returned 1 exit status

So I figured my installation of Crystal was broken, and tried to download and compile a fresh one:

> git clone https://github.com/manastech/crystal.git
> cd crystal
> make
CRYSTAL_CONFIG_PATH=`pwd`/src ./bin/crystal build  -o .build/crystal src/compiler/crystal.cr
Using compiled compiler at .build/crystal
Error in ./src/compiler/crystal/tools/context.cr:32: undefined method 'mapping' for JSON:Class

    JSON.mapping({
         ^~~~~~~

Makefile:31: recipe for target '.build/crystal' failed
make: *** [.build/crystal] Error 1

So I'm kinda at a loss here. Should I reinstall the Debian repo version, and use that to compile the latest version? Would that even work?

My current version of Crystal is apparently:

> crystal -v
Using compiled compiler at .build/crystal
Crystal 0.7.6 [60e7974] (Thu 20 Aug 00:29:07 UTC 2015)

...help please?

refi64 commented 8 years ago

Delete the system Boehm GC and build and install it yourself.

stugol commented 8 years ago

I'm afraid I don't know how to do that. Could you explain, please?

Do I need to install anything else to build the Boehm GC? I can see this spiralling out of control rather.

refi64 commented 8 years ago

It's not complicated; I did the same thing! Basically, do this:

  1. Download the Boehm GC from GitHub.
  2. Follow the build and installation instructions (actually, you can get away with just running the commands in the box).
  3. Run sudo make install.
  4. Delete /usr/lib/libgc.so*.
stugol commented 8 years ago

If I delete /usr/lib/libgc.so*, where does Crystal find this GC?

How do I know nothing else is using the .so files I'm going to delete? Won't it break other programs?

refi64 commented 8 years ago

No, because, when you install the Boehm GC, it installs into /usr/local/lib, so all that does is remove the old versions...

Actually, you could probably just do make install prefix=/usr instead!

stugol commented 8 years ago

Nope!

> make install prefix=/usr
make[1]: Entering directory '/opt/t/bdwgc'
make[2]: Entering directory '/opt/t/bdwgc'
 /bin/mkdir -p '/usr/lib'
 /bin/bash ./libtool   --mode=install /usr/bin/install -c   libgc.la libcord.la '/usr/lib'
libtool: install: /usr/bin/install -c .libs/libgc.so.1.0.3 /usr/lib/libgc.so.1.0.3
libtool: install: (cd /usr/lib && { ln -s -f libgc.so.1.0.3 libgc.so.1 || { rm -f libgc.so.1 && ln -s libgc.so.1.0.3 libgc.so.1; }; })
libtool: install: (cd /usr/lib && { ln -s -f libgc.so.1.0.3 libgc.so || { rm -f libgc.so && ln -s libgc.so.1.0.3 libgc.so; }; })
libtool: install: /usr/bin/install -c .libs/libgc.lai /usr/lib/libgc.la
libtool: install: error: cannot install `libcord.la' to a directory not ending in /usr/local/lib
Makefile:1208: recipe for target 'install-libLTLIBRARIES' failed
make[2]: *** [install-libLTLIBRARIES] Error 1
make[2]: Leaving directory '/opt/t/bdwgc'
Makefile:2270: recipe for target 'install-am' failed
make[1]: *** [install-am] Error 2
make[1]: Leaving directory '/opt/t/bdwgc'
Makefile:1700: recipe for target 'install-recursive' failed
make: *** [install-recursive] Error 1

I'll try the other way.

stugol commented 8 years ago

I've done all that, and I'm still getting the problems. There is no change whatsoever.

refi64 commented 8 years ago

You deleted /usr/lib/libgc.so*? What about trying to also delete /usr/lib/libgc.a*?

I'm sorry, I did this a few months ago, so I think I forgot that step. :/

stugol commented 8 years ago

I deleted /usr/lib/libgc.*. Was that wrong?

refi64 commented 8 years ago

No...

You already ran sudo make install? Same exact error?

What if you cd to /usr and run find . -name libgc.\*?

stugol commented 8 years ago

sudo make install on the GC worked fine, but I'm getting precisely the same problems trying to build or use Crystal.

> cd /usr
> find . -name libgc.\*
./local/lib/libgc.so
./local/lib/libgc.so.1.0.3
./local/lib/libgc.la
./local/lib/libgc.so.1
./local/lib/libgc.a
./lib/x86_64-linux-gnu/libgc.so
./lib/x86_64-linux-gnu/libgc.so.1.0.3
./lib/x86_64-linux-gnu/libgc.so.1
./lib/x86_64-linux-gnu/libgc.a
asterite commented 8 years ago

@stugol What's your OS? Did you trying using one of the installation methods? 0.7.6 is pretty old. Crystal comes with Boehm GC.

stugol commented 8 years ago

I'm using Debian Jessie. I was not aware of the installation methods page to which you refer. Was it perhaps not in existence back in August? Alternatively, does this installation method perhaps not yield the latest version of Crystal? I can't think of any other reason I would have avoided using it.

I will give it a try now.

stugol commented 8 years ago

Okay, that worked - although it seems there have been plenty of breaking changes since I last used the language (e.g. Array.count, Array.length), so of course my code doesn't compile.

I notice, however, that there have been many commits to the repository since this release (0.9.1). If I try to compile the latest source with this version, will it just work, or will I have to faff about some more? ;)

jhass commented 8 years ago

we ensure compatibility of the master branch with the latest release, so that the next release can be compiled with the previous one.

ysbaddaden commented 8 years ago

Now that you have a working and recent Crystal compiler, you can try to compile the master branch again. If the boehm GC error strikes again, try removing the boehm-gc package if possible (it may not be needed), which will always use the version you installed manually.

Alternatively you wait a little for a new release, and just apt-get again.

stugol commented 8 years ago

I'm afraid I'm not having much luck. It compiles fine, but doesn't work:

> /opt/t/crystal/.build/crystal ./delta-backup-tests.cr
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/_main.o: In function `__crystal_main':
main_module:(.text+0xa646): undefined reference to `GC_get_push_other_roots'
main_module:(.text+0xa6ac): undefined reference to `GC_set_push_other_roots'
main_module:(.text+0xa6b1): undefined reference to `co_thread_init'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber>:Fiber':
Fiber:(.text+0x1b3): undefined reference to `co_set_data'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber, &( -> Void)>:Fiber':
Fiber:(.text+0x363): undefined reference to `co_set_data'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber::current:Fiber':
Fiber:(.text+0x6fd): undefined reference to `co_get_data'
collect2: error: ld returned 1 exit status
Error: execution of command failed with code: 1: `cc -o "/mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp" "${@}"  -rdynamic  -lcrypto -levent -lrt -lpcl -lpcre -lgc -lpthread -ldl`
> sudo apt-get remove boehm-gc
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package boehm-gc

The latest release works with no issues:

> crystal ./delta-backup-tests.cr

Group: DeltaChecker
 (PASS) Identical files match
 (PASS) Weak checksum code gives the same answer no matter what block size is used
 (PASS) Weak checksum is correct when rolled

 Group: Patching changes
  (PASS) Small in-place changes can be patched
  (PASS) Small deletions can be patched
  (PASS) Small insertions can be patched

Results: 6 tests passed, 0 tests failed
asterite commented 8 years ago

You should use the bin/crystal wrapper, never .build/crystal

stugol commented 8 years ago

Oh?

> /opt/t/crystal/bin/crystal ./delta-backup-tests.cr
Using compiled compiler at .build/crystal
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/_main.o: In function `__crystal_main':
main_module:(.text+0xa646): undefined reference to `GC_get_push_other_roots'
main_module:(.text+0xa6ac): undefined reference to `GC_set_push_other_roots'
main_module:(.text+0xa6b1): undefined reference to `co_thread_init'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber>:Fiber':
Fiber:(.text+0x1b3): undefined reference to `co_set_data'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber, &( -> Void)>:Fiber':
Fiber:(.text+0x363): undefined reference to `co_set_data'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber::current:Fiber':
Fiber:(.text+0x6fd): undefined reference to `co_get_data'
collect2: error: ld returned 1 exit status
Error: execution of command failed with code: 1: `cc -o "/mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp" "${@}"  -rdynamic  -lcrypto -levent -lrt -lpcl -lpcre -lgc -lpthread -ldl`
asterite commented 8 years ago

Oh, right, when you use the compiled compiler it won't use the dynamic libraries it comes with. You'll either have to install Boehm GC 7.4 or wait for the next release.

stugol commented 8 years ago

How do I install Boehm 7.4? Is it straightforward, or does it involve more compilation and dependancies?

stugol commented 8 years ago

Bump.

As you will see above, when I tried to compile and install the Boehm GC, it didn't make any difference.

refi64 commented 8 years ago

You remember the instructions I gave you?

...yeah, that's the GC...

stugol commented 8 years ago

I remember them. And they didn't work, sadly.

stugol commented 8 years ago

The compiled GC files are still in /usr/local/lib on my system. Crystal doesn't seem to care.

refi64 commented 8 years ago

FYI, it's actually your linker that doesn't seem to care...

I love Linux, but sometimes shared libraries have their own version of DLL hell.

What if you run Crystal with LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH crystal whatever.cr?

stugol commented 8 years ago
> LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH /opt/t/crystal/bin/crystal ./delta-backup-tests.cr
Using compiled compiler at .build/crystal
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/_main.o: In function `__crystal_main':
main_module:(.text+0xae6a): undefined reference to `GC_get_push_other_roots'
main_module:(.text+0xaed0): undefined reference to `GC_set_push_other_roots'
main_module:(.text+0xaed5): undefined reference to `co_thread_init'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber>:Fiber':
Fiber:(.text+0x1b3): undefined reference to `co_set_data'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber, &( -> Void)>:Fiber':
Fiber:(.text+0x363): undefined reference to `co_set_data'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber::current:Fiber':
Fiber:(.text+0x6fd): undefined reference to `co_get_data'
collect2: error: ld returned 1 exit status
Error: execution of command failed with code: 1: `cc -o "/mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp" "${@}"  -rdynamic  -lcrypto -levent -lrt -lpcl -lpcre -lgc -lpthread -ldl`

Sigh :(

refi64 commented 8 years ago

What if you rerun the command it said failed a the bottom again, but you pass -v, too? That should print some info about what libraries are being used.

stugol commented 8 years ago

That's not going to work. Running the cc command by itself simply doesn't work:

> cc -o "/mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp" "${@}"  -rdynamic  -lcrypto -levent -lrt -lpcl -lpcre -lgc -lpthread -ldl
/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
refi64 commented 8 years ago

But passing -v should say which versions of the libraries it's usinf.

stugol commented 8 years ago

Fair enough.

> cc -o "/mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp" "${@}" -rdynamic -lcrypto -levent -lrt -lpcl -lpcre -lgc -lpthread -ldl -v
Using built-in specs.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.9.2 (Debian 4.9.2-10)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-o' '/mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp' '-rdynamic' '-v' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/4.9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccvCP0p8.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o /mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.9/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.9 -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../.. -lcrypto -levent -lrt -lpcl -lpcre -lgc -lpthread -ldl -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.9/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crtn.o
/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status

Should I redefine LIBRARY_PATH?

ysbaddaden commented 8 years ago

Let's start over.

On Debian (and Ubuntu) you need to replace 2 packages with upgraded versions of libgc and libpcl —notice the missing gc_ symbol and the other co_ symbols in your initial fail builds— in order to compile crystal itself, or to compile programs with your compiled crystal binary. This doesn't apply when installing the crystal package, which comes bundled with the necessary static libraries, so we don't have to worry about it.

As I said above, the libgc(-dev) and libpcl1.7(-dev) are too old in Debian/Ubuntu and must be upgraded. First you should remove the packages —at least the -dev packages if you can't remove the libraries. That should clean things up. Trying to compile crystal again should fail with many more missing gc_ and co_ symbols —unless it uses the bundled static libraries, in which case trying to compile anything with the new compiler, will fail.

Building and installing Boehm GC 7.4.x and PCL 1.12 will provide the up to date libraries.

But now you're having a linking problem. Maybe the following could help:

$ crystal whatever.cr --link-flags=-L/usr/local/lib

Then you should check the Debian support to find out what environment variable or file (/etc/ld.so.conf?) to change, so it can be made permanent.

stugol commented 8 years ago

Still no joy.

> /opt/t/crystal/bin/crystal ./delta-backup-tests.cr --link-flags=/usr/local/lib
Using compiled compiler at .build/crystal
/usr/bin/ld: cannot find /usr/local/lib: File format not recognized
collect2: error: ld returned 1 exit status
Error: execution of command failed with code: 1: `cc -o "/mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp" "${@}" /usr/local/lib -rdynamic  -lcrypto -levent -lrt -lpcl -lpcre -lgc -lpthread -ldl`

I even tried this:

> LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH /opt/t/crystal/bin/crystal ./delta-backup-tests.cr --link-flags=-v
Using compiled compiler at .build/crystal
Using built-in specs.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.9.2 (Debian 4.9.2-10)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:./:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-o' '/mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp' '-v' '-rdynamic' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/4.9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccmMm57K.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o /mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.9/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.9 -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L. -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../.. ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/_main.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/UInt64.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40Int8443225641.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Int841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/String5858Builder.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/String.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/ArgumentError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/CallStack.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Pointer40Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Pointer40Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/GC.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40LibUnwind5858Exception41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Exception.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Slice40T41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Slice40UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Math.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Int32.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IndexError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40UInt844326541.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DivisionByZero.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Random5858MT19937.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40UInt324432441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Random.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40UInt3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40UInt32443262441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/UInt32.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Void41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Fiber41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Fiber41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858Base.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Int64.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Errno.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858Event.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Scheduler.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO5858FileDescriptor.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Bool.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/LibEvent25858EventFlags.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO5858Timeout.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO5858Error.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Pointer40UInt84141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Slice40Pointer40UInt84141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array404032456232Nil4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer404032456232Nil4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858SignalHandler.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40Int324432241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Signal443240Signal32456232Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858StandardComparator.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Signal.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-53873ca918e49a5155e4e00c1c71dd1e.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Signal443240Signal32456232Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Exception43.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Nil.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Socket5858Error.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser5858MissingOption.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser5858InvalidOption.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser5858Exception43.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858NotificationsExpectedError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858SkipTestException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858SilentFailureException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858AssertException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858TestingException43.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/NotSupportedException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/NullReferenceException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/EOFError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/SanityException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/CaseElseException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Base645858Error.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Concurrent5858CanceledError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Channel5858ClosedError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time5858Format5858Error.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO5858EOFError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO5858Error43.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/KeyError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/InvalidByteSequenceError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/TypeCastError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Enumerable5858EmptyError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40UInt84432441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/UInt8.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858SignalChildHandler.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Int324432Process5858Status41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-5be03dfbff7189de5bb0166c94b5af88.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Int324432Ch-58936133be82407b4de468047ed7e7dc.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-9a1110bf3fc45b999f79e9061a2da0d2.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/40Int3232456232Void41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Process5858Status.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Int324432Process5858Status41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/AtExitHandlers.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array4040Int3232456232Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer4040Int3232456232Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40I5858Testing5858TestGroup41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40I5858Testing5858TestGroup41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858TestReporter.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858Options.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858TestGroup.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40I5858Testi-6997585081dec41f99609d3413896ddf.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40I5858Tes-fe69bfb4c2fcbbfa689b75f168f2a71c.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858Test.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Symbol.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Char.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaBackup.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer5858Appender40T41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer5858Appender40UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Regex.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Char5858Reader.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Regex5858Options.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Regex5858MatchData.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40String3212432Int323212432Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40String3212432Int323212432Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pathname.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/File.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/123String4432Stri-15d71c63901370812e6ff585a26cf24f.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Symbol4432Nil3212432String3212432Bool41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-1525ad3ba35c2496594745c656002294.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40OptionParser5858Handler41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40OptionParser5858Handler41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser5858Handler.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Sy-4694baf4f0f3558590ed3a5dcc1013c5.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Process.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser5858ParseTask.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40B4432E41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40Int324432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Symbol41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Symbol41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40Char4432Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40123UInt644432Symbol1254432Bool41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-87b25e50fb3d0d3b5c5052fe12251c97.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/123UInt644432Symbol125.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40123UInt644432Symbol1254432Bool41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Channel40DeltaBackupLogEventArgs41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Channel5858Unbuffered40DeltaBackupLogEventArgs41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Logger.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Logger5858TargetBase4341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Logger5858TargetBase4341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Channel40Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Channel5858Unbuffered40Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaBackupLogEventArgs.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/TCPServer.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IPSocket5858DnsRequestCbArg.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858DnsBase.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858DnsBase5858GetAddrInfoRequest.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40String3212432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40String3212432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/String5858Formatter.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40StaticArray40UInt84432164141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40StaticArray40UInt84432164141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40String4432String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858Entry40String4432String416341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40String4432String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Symbol4432String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858Entry40Symbol4432String416341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Symbol4432String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40String4432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858Entry40String4432Int32416341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40String4432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Symbol4432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858Entry40Symbol4432Int32416341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Symbol4432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40String4432Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-b2b56cb1280bafbbb013cab6685dab1c.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40String4432Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Symbol4432Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-8307babebdd0bf8bee6c8d95d27617d3.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Symbol4432Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/String5858Formatter5858Flags.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40UInt844321641.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/String5858ToU64Info.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/PointerIO.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/TCPSocket43.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Socket.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Socket5858Addr.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/UInt16.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/TCPSocket.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OpenSSL5858MD5.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/ArrayStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Range40Int6-5f1d10699df3d8eb119ab106551bb224.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-4cdeab5feb90ac53fab0488f52a3fa34.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40Int644432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/MultiStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40MultiStream5858ChildStream41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40MultiStream5858ChildStream41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/MultiStream5858ChildStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Ra-868974c29e90c46bbb7e2c520c6145ca.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/MD5.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker5858RangedSubStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40Int323212432Int643212432UInt644432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858Assert.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40UInt84432UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker5858WeakChecksum.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40Int3232124-80ea8655bd47377bb592f6e6d6a5b77b.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker5858WeakChecksum5858RawChecksum.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker5858SlidingWindowStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/SecureRandom.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Hash40Int324432UInt324141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash40Int324432UInt324141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Int324432UInt3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858Entry40Int324432UInt32416341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Int324432UInt3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Int323212432UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker5858ChunkStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Int323212432UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Hash40String4432Int324141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash40String4432Int324141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/123Int32125.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40UInt3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40DeltaChecker5858WeakChecksum41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40DeltaChecker5858WeakChecksum41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Range40Int6-fb1a7fc4a22039338671f848b8ec073d.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-4b0b3d1ca9974fad798f5ebbb611ff60.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40UInt324432A-f65011c39947f9f64e1edbd929ca665f.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-95b57d0ca6905fd30541d374d5353dc5.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40UI-ad22dd81c52e4c290cde637261ee490d.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Ra-f14ed65122d7b4f7101ddd91e2b6e8ba.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Range40Int644432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Range40Int644432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Nil3212432Range40Int644432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Nil3212432Range40Int644432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Hash40Rang-6e73f640b9276de55105b3d75a66e1d0.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash40Ra-d56a7fe3484aad8ffa8338e183f6e014.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Range40Int6-07af95acef425cc5469155441b19d268.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-62bbac55a2309d3903fd4984a1a0e002.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Ra-9314f063ccdab3169d57fd1a04d75158.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40123Range40-52737b853441f1acfcbfc154c637ad46.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40123Range-78099dd0ee8c87640b418024048a2acc.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40123123Rang-4cc1ea8d546def1d871684cd6664872d.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40123123Ra-9aa6c96f5df011e11d5ab648b58b116d.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40T41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40DeltaChecker5858RangedSubStream41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40DeltaChecker5858RangedSubStream41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Hash40String4432Int323212432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash40String4432Int323212432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Nil41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Nil41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Nil3212432UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Nil3212432UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40123Nil3212432UInt84432UInt812541.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40123Nil3212432UInt84432UInt812541.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Array40String3212432Char4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Array40String3212432Char4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40String3212432Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40String3212432Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Array40String4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Array40String4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/EJustify.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array5858FlattenHelper40String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Logger5858StdoutTarget.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time5858Format.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time5858Format5858Formatter.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time5858Kind.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Hash40String4432String4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash40String4432String4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Logger5858FileTarget.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/123String4432String4432String4432String125.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time5858Span.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/123String4432String125.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/LEBReader.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/LibUnwind5858Action.o -lcrypto -levent -lrt -lpcl -lpcre -lgc -lpthread -ldl -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.9/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crtn.o
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/_main.o: In function `__crystal_main':
main_module:(.text+0xae6a): undefined reference to `GC_get_push_other_roots'
main_module:(.text+0xaed0): undefined reference to `GC_set_push_other_roots'
main_module:(.text+0xaed5): undefined reference to `co_thread_init'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber>:Fiber':
Fiber:(.text+0x1b3): undefined reference to `co_set_data'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber, &( -> Void)>:Fiber':
Fiber:(.text+0x363): undefined reference to `co_set_data'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber::current:Fiber':
Fiber:(.text+0x6fd): undefined reference to `co_get_data'
collect2: error: ld returned 1 exit status
Error: execution of command failed with code: 1: `cc -o "/mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp" "${@}" -v -rdynamic  -lcrypto -levent -lrt -lpcl -lpcre -lgc -lpthread -ldl`

You'll notice that my LIBRARY_PATH variable is being overwritten. So I did this:

> export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH
> /opt/t/crystal/bin/crystal ./delta-backup-tests.cr --link-flags=-v
Using compiled compiler at .build/crystal
Using built-in specs.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.9.2 (Debian 4.9.2-10)
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/local/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.9/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/local/lib/:./:/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-o' '/mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp' '-v' '-rdynamic' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/4.9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/4.9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccn538po.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o /mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.9/crtbegin.o -L/usr/local/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.9 -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/local/lib -L. -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../.. ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/_main.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/UInt64.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40Int8443225641.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Int841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/String5858Builder.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/String.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/ArgumentError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/CallStack.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Pointer40Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Pointer40Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/GC.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40LibUnwind5858Exception41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Exception.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Slice40T41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Slice40UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Math.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Int32.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IndexError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40UInt844326541.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DivisionByZero.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Random5858MT19937.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40UInt324432441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Random.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40UInt3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40UInt32443262441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/UInt32.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Void41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Fiber41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Fiber41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858Base.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Int64.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Errno.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858Event.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Scheduler.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO5858FileDescriptor.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Bool.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/LibEvent25858EventFlags.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO5858Timeout.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO5858Error.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Pointer40UInt84141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Slice40Pointer40UInt84141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array404032456232Nil4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer404032456232Nil4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858SignalHandler.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40Int324432241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Signal443240Signal32456232Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858StandardComparator.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Signal.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-53873ca918e49a5155e4e00c1c71dd1e.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Signal443240Signal32456232Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Exception43.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Nil.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Socket5858Error.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser5858MissingOption.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser5858InvalidOption.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser5858Exception43.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858NotificationsExpectedError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858SkipTestException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858SilentFailureException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858AssertException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858TestingException43.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/NotSupportedException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/NullReferenceException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/EOFError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/SanityException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/CaseElseException.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Base645858Error.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Concurrent5858CanceledError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Channel5858ClosedError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time5858Format5858Error.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO5858EOFError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IO5858Error43.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/KeyError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/InvalidByteSequenceError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/TypeCastError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Enumerable5858EmptyError.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40UInt84432441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/UInt8.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858SignalChildHandler.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Int324432Process5858Status41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-5be03dfbff7189de5bb0166c94b5af88.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Int324432Ch-58936133be82407b4de468047ed7e7dc.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-9a1110bf3fc45b999f79e9061a2da0d2.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/40Int3232456232Void41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Process5858Status.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Int324432Process5858Status41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/AtExitHandlers.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array4040Int3232456232Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer4040Int3232456232Void4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40I5858Testing5858TestGroup41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40I5858Testing5858TestGroup41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858TestReporter.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858Options.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858TestGroup.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40I5858Testi-6997585081dec41f99609d3413896ddf.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40I5858Tes-fe69bfb4c2fcbbfa689b75f168f2a71c.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858Test.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Symbol.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Char.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaBackup.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer5858Appender40T41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer5858Appender40UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Regex.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Char5858Reader.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Regex5858Options.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Regex5858MatchData.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40String3212432Int323212432Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40String3212432Int323212432Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pathname.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/File.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/123String4432Stri-15d71c63901370812e6ff585a26cf24f.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Symbol4432Nil3212432String3212432Bool41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-1525ad3ba35c2496594745c656002294.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40OptionParser5858Handler41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40OptionParser5858Handler41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser5858Handler.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Sy-4694baf4f0f3558590ed3a5dcc1013c5.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Process.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OptionParser5858ParseTask.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40B4432E41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40Int324432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Symbol41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Symbol41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40Char4432Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40123UInt644432Symbol1254432Bool41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-87b25e50fb3d0d3b5c5052fe12251c97.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/123UInt644432Symbol125.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40123UInt644432Symbol1254432Bool41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Channel40DeltaBackupLogEventArgs41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Channel5858Unbuffered40DeltaBackupLogEventArgs41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Logger.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Logger5858TargetBase4341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Logger5858TargetBase4341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Channel40Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Channel5858Unbuffered40Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaBackupLogEventArgs.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/TCPServer.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/IPSocket5858DnsRequestCbArg.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858DnsBase.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Event5858DnsBase5858GetAddrInfoRequest.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40String3212432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40String3212432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/String5858Formatter.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40StaticArray40UInt84432164141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40StaticArray40UInt84432164141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40String4432String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858Entry40String4432String416341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40String4432String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Symbol4432String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858Entry40Symbol4432String416341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Symbol4432String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40String4432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858Entry40String4432Int32416341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40String4432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Symbol4432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858Entry40Symbol4432Int32416341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Symbol4432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40String4432Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-b2b56cb1280bafbbb013cab6685dab1c.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40String4432Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Symbol4432Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-8307babebdd0bf8bee6c8d95d27617d3.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Symbol4432Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/String5858Formatter5858Flags.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/StaticArray40UInt844321641.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/String5858ToU64Info.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/PointerIO.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/TCPSocket43.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Socket.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Socket5858Addr.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/UInt16.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/TCPSocket.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/OpenSSL5858MD5.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/ArrayStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Range40Int6-5f1d10699df3d8eb119ab106551bb224.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-4cdeab5feb90ac53fab0488f52a3fa34.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40Int644432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/MultiStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40MultiStream5858ChildStream41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40MultiStream5858ChildStream41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/MultiStream5858ChildStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Ra-868974c29e90c46bbb7e2c520c6145ca.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/MD5.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Int323212432Int6441.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker5858RangedSubStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40Int323212432Int643212432UInt644432Int3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/I5858Testing5858Assert.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40UInt84432UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker5858WeakChecksum.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Range40Int3232124-80ea8655bd47377bb592f6e6d6a5b77b.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker5858WeakChecksum5858RawChecksum.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker5858SlidingWindowStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/SecureRandom.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Hash40Int324432UInt324141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash40Int324432UInt324141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Int324432UInt3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858Entry40Int324432UInt32416341.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Int324432UInt3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Int323212432UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/DeltaChecker5858ChunkStream.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Int323212432UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Hash40String4432Int324141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash40String4432Int324141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/123Int32125.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40UInt3241.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40DeltaChecker5858WeakChecksum41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40DeltaChecker5858WeakChecksum41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Range40Int6-fb1a7fc4a22039338671f848b8ec073d.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-4b0b3d1ca9974fad798f5ebbb611ff60.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40UInt324432A-f65011c39947f9f64e1edbd929ca665f.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-95b57d0ca6905fd30541d374d5353dc5.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40UI-ad22dd81c52e4c290cde637261ee490d.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Ra-f14ed65122d7b4f7101ddd91e2b6e8ba.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Range40Int644432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Range40Int644432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Nil3212432Range40Int644432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Nil3212432Range40Int644432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Hash40Rang-6e73f640b9276de55105b3d75a66e1d0.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash40Ra-d56a7fe3484aad8ffa8338e183f6e014.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash40Range40Int6-07af95acef425cc5469155441b19d268.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash5858-62bbac55a2309d3903fd4984a1a0e002.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Hash5858Entry40Ra-9314f063ccdab3169d57fd1a04d75158.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40123Range40-52737b853441f1acfcbfc154c637ad46.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40123Range-78099dd0ee8c87640b418024048a2acc.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40123123Rang-4cc1ea8d546def1d871684cd6664872d.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40123123Ra-9aa6c96f5df011e11d5ab648b58b116d.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40T41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40DeltaChecker5858RangedSubStream41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40DeltaChecker5858RangedSubStream41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Hash40String4432Int323212432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash40String4432Int323212432Int644141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Nil41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Nil41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Nil3212432UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Nil3212432UInt841.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40123Nil3212432UInt84432UInt812541.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40123Nil3212432UInt84432UInt812541.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Array40String3212432Char4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Array40String3212432Char4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40String3212432Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40String3212432Char41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Array40String4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Array40String4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/EJustify.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array5858FlattenHelper40String41.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Logger5858StdoutTarget.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time5858Format.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time5858Format5858Formatter.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time5858Kind.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Array40Hash40String4432String4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Pointer40Hash40String4432String4141.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Logger5858FileTarget.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/123String4432String4432String4432String125.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Time5858Span.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/123String4432String125.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/LEBReader.o ./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/LibUnwind5858Action.o -lcrypto -levent -lrt -lpcl -lpcre -lgc -lpthread -ldl -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.9/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crtn.o
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/_main.o: In function `__crystal_main':
main_module:(.text+0xaed5): undefined reference to `co_thread_init'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber>:Fiber':
Fiber:(.text+0x1b3): undefined reference to `co_set_data'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber#initialize<Fiber, &( -> Void)>:Fiber':
Fiber:(.text+0x363): undefined reference to `co_set_data'
./.crystal/mnt/data/Documents/Programming/crystal/delta-backup-tests.cr/Fiber.o: In function `*Fiber::current:Fiber':
Fiber:(.text+0x6fd): undefined reference to `co_get_data'
collect2: error: ld returned 1 exit status
Error: execution of command failed with code: 1: `cc -o "/mnt/data/Documents/Programming/crystal/.crystal/crystal-run-delta-backup-tests.tmp" "${@}" -v -rdynamic  -lcrypto -levent -lrt -lpcl -lpcre -lgc -lpthread -ldl`

Now it's using the correct path, but still not compiling! :(

refi64 commented 8 years ago

@stugol But that's better! That means that the GC portion is working, so half the problem's...fixed??

ysbaddaden commented 8 years ago

I fixed the link flags in my comment above, I was missing a -L:

$ crystal whatever.cr --link-flags="-L/usr/local/lib"
ysbaddaden commented 8 years ago

If you check the missing symbols, you'll see the gc_ symbols are now all found! You must now remove the libpcl1.7-dev package (and libpcl1.7 too if possible) then install PCL 1.12 manually, and try again, for the co_ symbols to be found.

stugol commented 8 years ago

@kirbyfan64: lol ;) I guess so

@ysbaddaden: I will try.

ysbaddaden commented 8 years ago

Side note: both Debian Stretch and Ubuntu Xenial have libgc 7.4.2! But libpcl is sadly kept at 1.7.2 instead of 1.12 :'(

stugol commented 8 years ago

According to the internet, to modify the library load path, I should create a file in /etc/ld.so.conf.d/ and put the path in there; then run ldconfig. This does precisely nothing, however. Should I just stick stuff in my terminal config script? (in my case, /etc/zsh/zshenv)

You know, like LIBRARY_PATH=/usr/local/bin:$LIBRARY_PATH

stugol commented 8 years ago

Hooray, I got it to work! Finally! Thanks for the help guys. I'm sure there's a better way of setting the LIBRARY_PATH, but meh.

Why does everything have to be so damn complicated?

waterlink commented 8 years ago

@stugol It doesn't have to be complicated. It is just that, Crystal has 2 custom dependencies - that causing complexity, unless you have a good development environment specifically tailored for Crystal development.

Having such an environment might restrict your development box setup for work with anything else. That is why, I use docker container to work on headless crystal. Since I am using the same image and almost the same script, that is used for building & releasing new version of Crystal for Linux, it works really-really well. Of course, that is partly because I am very familiar with docker and use it on daily basis both for my side projects, my work development environment and my work production environments; normally, for anyone who is not familiar with docker, that might even complicate things.

Another, more conservative way, would be having a VM in virtualbox or something. Using Vagrant (or its successor Otto) to manage it.

waterlink commented 8 years ago

s/headless/head/

waterlink commented 8 years ago

And maybe that is an opportunity to improve things. I.e.: provide detailed instruction on how to use crystal head on OS "". Or even provide a handy setup script. Which can then later be hooked up into tools like docker, vagrant or/and otto.

stugol commented 8 years ago

I did consider using a VM, a few minutes ago. I'm not familiar with Docker - or Vagrant/Otto - however. I have experience with Parallels, VirtualBox and Proxmox. What exactly does Docker do?

waterlink commented 8 years ago

Docker lets you run very light-weight containers on top of your linux kernel. It is basically very convenient abstraction built on top of container and cgroups functionality, that is built in the most recent kernels.

Plus is that it provides full isolation, so you can have multiple different and conflicting environments running on a single linux, and at the same time. It is similar to chroot, but applied not only to file system, but to memory, cpu and process space too. For example, you can run on the same linux 2 environments, that will have 2 different versions of the same library. Without affecting each other, and not affecting your own user experience.

And here is the link: https://docs.docker.com/

waterlink commented 8 years ago

Or their landing page: https://www.docker.com/

stugol commented 8 years ago

Hold on.....I could run an entire linux session in one of these things, like I do with Proxmox?

waterlink commented 8 years ago

Typical usage of docker can be found in Crystal's CI script: https://github.com/manastech/crystal/blob/master/bin/ci#L74-L83 - that is actually very similar to how my development script looks like:

#!/usr/bin/env bash

[[ -z "$ARCH" ]] && ARCH=$(arch)
docker run \
    -it \
    --rm \
    -u $(id -u) \
    -v $(pwd):/mnt \
    -w /mnt \
    -e LIBRARY_PATH="/opt/crystal/embedded/lib/" \
    "jhass/crystal-build-$ARCH" \
    "$@"
stugol commented 8 years ago

Otto looks really REALLY complicated, and using it would be like juggling eels.

waterlink commented 8 years ago

Yep, except that it is very lightweight and can serve just as an executor of commands, that you run from terminal. So you can run full-blown linux inside, even with text editor, like vim, emacs, nano. Or you could run it on-demand when you need to compile, run tests or run your program, by having a couple of nifty scripts in your project script or bin folder; allowing one to have their editor and code in normal linux os and execute all related commands inside of docker container, sharing a folder through a disk mount (that is done by simple -v $(pwd):$(pwd) option to docker run).