Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails to install on ubuntu 20.04.2 LTS with ruby installed via snap, no useful info in mkmf.log #1038

Open
inspire22 opened this issue Jul 25, 2023 · 0 comments

Comments

@inspire22
Copy link

inspire22 commented Jul 25, 2023

Any help is appreciated, been banging my head against this all day.

Linux sidekiq2 5.15.0-67-generic #74-Ubuntu SMP Wed Feb 22 14:14:39 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Tried both with and without --enable-system-libffi

Libffi is installed via apt & some versions of ffi but there's a lot of options, not sure if a specific one is required.

Ubuntu system tools & gcc/etc are all installed.

gem install ffi -- --enable-system-libffi
Building native extensions with: '--enable-system-libffi'
This could take a while...
ERROR:  Error installing ffi:
        ERROR: Failed to build gem native extension.

    current directory: /root/.gem/gems/ffi-1.15.5/ext/ffi_c
/snap/bin/ruby extconf.rb --enable-system-libffi
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/snap/ruby/317/bin/$(RUBY_BASE_NAME)
        --with-ffi_c-dir
        --without-ffi_c-dir
        --with-ffi_c-include
        --without-ffi_c-include=${ffi_c-dir}/include
        --with-ffi_c-lib
        --without-ffi_c-lib=${ffi_c-dir}/lib
        --enable-system-libffi
        --with-libffi-dir
        --without-libffi-dir
        --with-libffi-include
        --without-libffi-include=${libffi-dir}/include
        --with-libffi-lib
        --without-libffi-lib=${libffi-dir}/lib
        --with-libffi-config
        --without-libffi-config
        --with-pkg-config
        --without-pkg-config
/snap/ruby/317/lib/ruby/3.2.0/mkmf.rb:490:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.

        from /snap/ruby/317/lib/ruby/3.2.0/mkmf.rb:583:in `try_link0'
        from /snap/ruby/317/lib/ruby/3.2.0/mkmf.rb:601:in `try_link'
        from /snap/ruby/317/lib/ruby/3.2.0/mkmf.rb:693:in `try_ldflags'
        from /snap/ruby/317/lib/ruby/3.2.0/mkmf.rb:1891:in `pkg_config'
        from extconf.rb:9:in `system_libffi_usable?'
        from extconf.rb:44:in `<main>'

mkmf.log:


LD_LIBRARY_PATH=.:/snap/ruby/317/lib pkg-config --exists libffi
LD_LIBRARY_PATH=.:/snap/ruby/317/lib pkg-config --libs libffi |
=> "-lffi\n"
LD_LIBRARY_PATH=.:/snap/ruby/317/lib "gcc -o conftest -I/snap/ruby/317/include/ruby-3.2.0/x86_64-linux -I/snap/ruby/317/include/ruby-3.2.0/ruby/backward -I/snap/ruby/317/include/ruby-3.2.0 -I.    -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wundef  -fPIC conftest.c  -L. -L/snap/ruby/317/lib -Wl,-rpath,/snap/ruby/317/lib -L. -L/build/snapcraft-ruby-2c41636617a6ccb92a530f6f568ec82e/parts/ruby/install/usr/lib -L/build/snapcraft-ruby-2c41636617a6ccb92a530f6f568ec82e/parts/ruby/install/usr/lib/x86_64-linux-gnu -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,--no-as-needed     -Wl,-rpath,/snap/ruby/317/lib -L/snap/ruby/317/lib -lruby  -lm -lpthread  -lc"
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libdl.so.2: undefined reference to `_dl_sym@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined reference to `__libc_dlclose@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined reference to `__libc_allocate_rtsig_private@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/librt.so.1: undefined reference to `__libc_dlsym@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined reference to `__libc_siglongjmp@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined reference to `__libc_thread_freeres@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined reference to `__libc_current_sigrtmax_private@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libdl.so.2: undefined reference to `_dl_vsym@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined reference to `__libc_current_sigrtmin_private@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined reference to `_dl_make_stack_executable@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined reference to `__libc_longjmp@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/librt.so.1: undefined reference to `__libc_dlopen_mode@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libdl.so.2: undefined reference to `_dl_addr@GLIBC_PRIVATE'
/usr/bin/ld: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined reference to `__libc_pthread_init@GLIBC_PRIVATE'
collect2: error: ld returned 1 exit status
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5:   return !!argv[argc];
6: }
/* end */
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant