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

Could not load xacc_iontrap #518

Open
amccaskey opened this issue Feb 17, 2022 · 2 comments
Open

Could not load xacc_iontrap #518

amccaskey opened this issue Feb 17, 2022 · 2 comments
Labels

Comments

@amccaskey
Copy link
Contributor

amccaskey commented Feb 17, 2022

From the latest qcor/cli docker image...

[2022-02-17 13:56:17.041] [xacc-logger] [error] [XACC Error] Could not load xacc_iontrap, error message: Bundle#14 start failed: Error loading shared library libxacc-circuit-optimizers.so: No such file or directory (needed by /usr/local/aideqc/qcor/plugins/libxacc-iontrap.so)
[2022-02-17 13:56:17.041] [xacc-logger] [error] [XACC Error] Framework Exiting

Of course just deleting xacc_iontrap gets you going, but there are some link problems with the plugin that should be fixed. I think, specifically, it is linking and using functions from another plugin, which is not something we should be doing.

Here's the ldd output

Error relocating /usr/local/aideqc/qcor/plugins/libxacc-iontrap.so: _ZN4xacc7quantum9GateFuser10initializeERKSt10shared_ptrINS_20CompositeInstructionEE: symbol not found
Error relocating /usr/local/aideqc/qcor/plugins/libxacc-iontrap.so: _ZNK4xacc7quantum9GateFuser13calcFusedGateEi: symbol not found
Error relocating /usr/local/aideqc/qcor/plugins/libxacc-iontrap.so: _ZTIN4xacc7quantum9GateFuserE: symbol not found

Problem is that the plugin RPATH is not pointing to INSTALL/plugins, so it won't be able to find the circuit optimizers library to link.

@amccaskey amccaskey added the bug label Feb 17, 2022
@amccaskey
Copy link
Contributor Author

@ausbin I think you should try to get the GateFusion dependency out of this plugin at some point. The best way might be to create an interface at the quantum/gate/utils package level that GateFuser in circuit-optimizers can inherit from and contribute GateFuser as a plugin to the service registry under that new type. Then you can remove the link from xacc-circuit-optimizers on your iontrap plugin, and only rely on xacc-quantum-gate.

@ausbin
Copy link
Contributor

ausbin commented Mar 7, 2022

Hi @amccaskey, sorry for the slow turnaround on my end. Attempt at a fix here: #521

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants