sigar: undefined symbol: sigar_skip_token

ruby: symbol lookup error: .... ruby/2.2.0/extensions/x86_64-linux/2.2.0/sigar-0.7.3/sigar.so: undefined symbol: sigar_skip_token
  • Archlinux x86_64

  • ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]

  • Happens with:

    Using built-in specs.
    COLLECT_GCC=/usr/bin/gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper
    Target: x86_64-unknown-linux-gnu
    Configured with: /build/gcc-multilib/src/gcc-5-20150519/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --enable-multilib --disable-werror --enable-checking=release --with-default-libstdcxx-abi=c++98
    Thread model: posix
    gcc version 5.1.0 (GCC) 
    
  • Happens with:

    clang version 3.6.1 (tags/RELEASE_361/final)
    Target: x86_64-unknown-linux-gnu
    Thread model: posix
    Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/5.1.0
    Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.1.0
    Found candidate GCC installation: /usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0
    Found candidate GCC installation: /usr/lib64/gcc/x86_64-unknown-linux-gnu/5.1.0
    Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/5.1.0
    Candidate multilib: .;@m64
    Candidate multilib: 32;@m32
    Selected multilib: .;@m64
    

About this issue

Commits related to this issue

Most upvoted comments

Further investigation shows this is caused by a change in inlining behaviour,

gem install sigar -- --with-cppflags="-fgnu89-inline"

works around this. For bundler do

bundle config --local build.sigar '--with-cppflags="-fgnu89-inline"'

For me the fix mentioned above worked (Fresh Ubuntu 16.04, with rvm) gem install sigar -- --with-cppflags="-fgnu89-inline"

Workaround did not work for Ubuntu 16.04 LTS

😦 workaround didn’t work on my ubuntu 16.04

/home/diaspora/diaspora/vendor/bundle/ruby/2.3.0/bin/loader_eye --stop_all -c config/eye.rb: symbol lookup error: /home/diaspora/diaspora/vendor/bundle/ruby/2.3.0/gems/sigar-0.7.3/lib/sigar.so: undefined symbol: sigar_skip_token