crystal icon indicating copy to clipboard operation
crystal copied to clipboard

Naive build of interpreter hits missing symbol in libintrinsics

Open BrucePerens opened this issue 4 years ago • 3 comments

Crystal 1.3.1 [a6fcb1029] (2022-01-13)

LLVM: 13.0.1
Default target: x86_64-unknown-linux-gnu

A naive make interpreter=1, make install (as root) of compiler version 1.3.1 from git yields this when I attempt to run it:

/usr/local/bin/crystal i
dlsym failed for lib: LibIntrinsics, name: "llvm.memcpy.p0i8.p0i8.i64": /usr/local/bin/crystal: undefined symbol: llvm.memcpy.p0i8.p0i8.i64 (Exception)

Obviously this is working for other people. What am I doing wrong?

BrucePerens avatar Jan 15 '22 21:01 BrucePerens

@BrucePerens Is this still happening for you?

asterite avatar Jul 11 '22 17:07 asterite

Fresh checkout from master. It did this instead, note the references to "fakeroot" and "fakechroot" which I think are an artifact of the build script. I don't have $LD_LIBRARY_PATH set. This is Debian 11.4

bruce@server:~/crystal$ /usr/local/bin/crystal i
cannot find -lm (/usr/local/bin/../lib/crystal/libm.so: cannot open shared object file: No such file or directory)
Linker arguments: -L/usr/local/bin/../lib/crystal -lpcre -lm -lpthread -levent -lrt -ldl
Search path: /usr/local/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/libfakeroot:/usr/lib/x86_64-linux-gnu/fakechroot:/lib32:/usr/lib32:/usr/local/lib:/lib64:/usr/lib64:/lib:/usr/lib:/usr/local/bin/../lib/crystal (Crystal::Loader::LoadError)

/usr/lib/x86_64-linux-gnu/libm.so exists.

BrucePerens avatar Jul 11 '22 17:07 BrucePerens

This looks more like what I would expect. I don't know what is happening at runtime.

bruce@server:~/crystal$ ldd /usr/local/bin/crystal
	linux-vdso.so.1 (0x00007ffc38b68000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2a7c069000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2a7c047000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2a72abc000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f2a7c02a000)
	libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f2a7bffb000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f2a728ef000)
	libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f2a7bf86000)
	libevent-2.1.so.7 => /lib/x86_64-linux-gnu/libevent-2.1.so.7 (0x00007f2a72896000)
	libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007f2a7bf7a000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f2a7bf60000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2a726d1000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f2a7c08c000)

BrucePerens avatar Jul 11 '22 18:07 BrucePerens