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

[arch] [beignet] CommandLine Error: Option 'help-list' registered more than once! #55

Open
iame6162013 opened this issue Oct 21, 2017 · 6 comments

Comments

@iame6162013
Copy link
Contributor

The following error comes up when running make run-tests

I've not tested this on ubuntu and my rx 470 doesn't show this issue.

[       OK ] test_kernel_dumper.test_randomintarray (1 ms)
[----------] 6 tests from test_kernel_dumper (2 ms total)

[----------] 1 test from test_hostside_opencl_funcs
[ RUN      ] test_hostside_opencl_funcs.test_create_cl_kernel
: CommandLine Error: Option 'help-list' registered more than once!
LLVM ERROR: inconsistency in registered CommandLine options
make[3]: *** [test/gtest/CMakeFiles/run-gtest-tests.dir/build.make:61: test/gtest/CMakeFiles/run-gtest-tests] Error 1
make[2]: *** [CMakeFiles/Makefile2:423: test/gtest/CMakeFiles/run-gtest-tests.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:77: CMakeFiles/run-tests.dir/rule] Error 2
make: *** [Makefile:164: run-tests] Error 2
@hughperkins
Copy link
Owner

Its an llvm version mismatch between multiple modules that both link to LLVM, just not, the same LLVM. I never found a good solution to this yet, but I found a possible solution or two (that I havent tried), which is described at #29 (comment) . Related/similar/same issue: jrprice/Oclgrind#137

@iame6162013
Copy link
Contributor Author

Hmm, the fix you proposed seems fairly complex.

If the issue is that coriander doesn't use the same version of llvm as the driver/other(?), why don't we allow for coriander to be compiled using any (relevant) llvm version? Renaming the symbols sounds like it will bring more issues than it will solve.

@hughperkins
Copy link
Owner

hughperkins commented Oct 22, 2017

Its a single #define. I tried the a similar (but smaller) build => built ok.

why don't we allow for coriander to be compiled using any (relevant) llvm version

because each version has a different API. Not incredibly different, but incompatibly different.

@hughperkins
Copy link
Owner

hughperkins commented Oct 22, 2017

see this comment: #29 (comment) and the following one:

"By the way, you might be able to simply add, in the CMakeLists.txt:

add_definitions(-Dllvm=llvm40)

"

@rebecca-palmer
Copy link

Its an llvm version mismatch between multiple modules that both link to LLVM, just not, the same LLVM

Similar bugs seen elsewhere were the opposite: two parts of an application loading the same LLVM version, which causes them to share global LLVM state that isn't intended to be shared. This is really an LLVM bug, but fixing it there appears to be difficult.

It is not specific to coriander: if multiple OpenCL ICDs are installed, it affects even simple OpenCL applications. Debian beignet avoids this problem (since Debian 9/Ubuntu 17.04) by statically linking to LLVM; you may want to suggest that Arch beignet do the same.

@literobot
Copy link

With "add_definitions(-Dllvm=llvm40)"
[ 96%] Linking CXX shared library libcocl.so
[ 96%] Built target cocl
make: *** [Makefile:130: all] Error 2
p.returncode 2
Traceback (most recent call last):
File "install_distro.py", line 222, in
main(**args.dict)
File "install_distro.py", line 207, in main
install_coriander(install_dir=install_dir)
File "install_distro.py", line 175, in install_coriander
run(['make', '-j', '8'])
File "install_distro.py", line 88, in run
assert p.returncode == 0
AssertionError

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

4 participants