undefined symbol: ffi_type_pointer, version LIBFFI_BASE_7.0

345 views
Skip to first unread message

Ramesh Rajaby

unread,
Dec 7, 2022, 2:27:10 AM12/7/22
to conda - Public
Hi all,

I am trying to build a package using conda-build. This is my first time trying to build a conda package, and I am having far more problems than I expected too.

I wrote a minimal build.sh:

$CXX_FOR_BUILD -O2 add_filtering_info.cpp -o add_filtering_info $CXXFLAGS $LDFLAGS -lhts -pthread
cp add_filtering_info $PREFIX/bin/

And here is the meta.yaml

{% set name = "insurveyor" %}
{% set version = "1.0.1" %}

package:
  name: {{ name|lower }}
  version: {{ version }}

source:
  url: https://github.com/kensung-lab/INSurVeyor/archive/refs/tags/1.0.2.tar.gz
  sha256: 33c85157892d3256abc96bb2a9053f05da9dcf55befeed720e965577db0b78b5

build:
  number: 0

requirements:
  build:
    - {{ compiler('c') }}
    - {{ compiler('cxx') }}
    - cmake >=3.5
    - autoconf ==2.69
    - libffi
    - libcurl
    - bzip2
    - xz
    - zlib
    - libdeflate
    - openssl
    - htslib >=1.13
  host:
    - libffi
    - libcurl
    - bzip2
    - xz
    - zlib
    - libdeflate
    - openssl
    - htslib >=1.13
  run:
    - python
    - numpy >=1.21.2
#    - pyfaidx
# ==0.5.9.1
#    - pysam ==0.16.0.1

test:
  source_files:
    - demo/

about:
  home: https://github.com/kensung-lab/INSurVeyor
  summary: 'An insertion caller for Illumina paired-end WGS data.'
  description: |
    INSurVeyor is a fast and accurate SV insertion caller for Illumina paired-end WGS data.
  license: GPL-3.0-only
  license_file: LICENSE

extra:
  recipe-maintainers:
    - Mesh89

This is the log:

https://justpaste.it/cjaza

There are many warnings, claiming they cannot find the static versions of the libraries. I am assuming this is fine and they will use the shared version.

After installing the package with conda install --use-local insurveyor and running add_filtering_info, I get

add_filtering_info: symbol lookup error: /lib/x86_64-linux-gnu/libp11-kit.so.0: undefined symbol: ffi_type_pointer, version LIBFFI_BASE_7.0

I am at a loss, I am afraid I am misunderstanding something fundamental about the building process. For example, I am not sure why the executable would look for a library in /lib in the first place. I though the environment would be self-contained.

Thanks!

Reply all
Reply to author
Forward
0 new messages