void-linux / void-linux/void-packages

vosk-api not linked with openmp despite using its symbols (undefined symbol: omp_get_num_places)

Open
#57,976 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs-testing
Dominant language
Shell
Stars
3.4k
Forks
2.8k
Avg merge
2d 5h
Merged PRs (30d)
299

Description

Is this a new report?

Yes

System Info

Void 6.12.58_1 x86_64 GenuineIntel uptodate rr

Package(s) Affected

vosk-api-0.3.45_1

Does a report exist for this bug with the project's home (upstream) and/or another distro?

https://github.com/alphacep/vosk-api/issues/1480 - not sure if it's exactly this, but seems related.

Expected behaviour

When trying to load libvosk.so into my luajit ffi wrapper program, it loads. When running ldd /usr/lib/libvosk.so, openmp is listed.

Actual behaviour

When trying to load libvosk.so into my luajit ffi wrapper, the following error is printed:

luajit: symbol lookup error: /usr/lib/libvosk.so: undefined symbol: omp_get_num_places

When running ldd /usr/lib/libvosk.so, the following is printed:

ldd: warning: you do not have execution permission for `/usr/lib/libvosk.so'
	linux-vdso.so.1 (0x00007fca535f3000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fca51800000)
	libm.so.6 => /usr/lib/libm.so.6 (0x00007fca51b75000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fca51b48000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007fca51616000)
	/usr/lib64/ld-linux-x86-64.so.2 (0x00007fca535f5000)
Steps to reproduce
  1. Write file vosk.lua:
local ffi = require("ffi")

ffi.load("vosk")
  1. run luajit vosk.lua
  2. error :<
luajit: symbol lookup error: /usr/lib/libvosk.so: undefined symbol: omp_get_num_places

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with vosk.lua and reproduce the ffi.load("vosk") failure using luajit, then compare it with ldd /usr/lib/libvosk.so. Inspect how the vosk-api package produces libvosk.so and verify that the resulting library declares the OpenMP dependency; done means the symbol resolves when the reproduction is run.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.