-
Notifications
You must be signed in to change notification settings - Fork 183
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
multiple definition of `libxsmm_scratch_pools' (and other symbols) #412
Comments
Ok, this is similar to what GCC 10.x did, but I need to account for Clang 11.x the same way. Thank you for the heads-up! |
This requires to build/install |
No. You need to fix what C++ compiler doesn't allow any more by default. |
I have the infrastructure for applying "common" as an attribute which means this issue can be solved without relying on a compiler flag. This is important since LIBXSMM allows header-only usage, i.e., a 3rd party build system may build our sources. I am currently installing clang-11 as per my comment because I want to reproduce the problem (I tried 11/nightly under Linux/Debian and I did not run into the same problems as solved for GCC 10.x hence I want to reproduce the issue first). |
( This boils down to the question how did you get to this error? As far I can see, FreeBSD does not yet provide Clang-11 per |
FreeBSD 13-CURRENT has clang-11 as default compiler in its base. The llvm11-11.0.0.r2 package also installs clang-11 on all OS versions. |
This line:
causes the issue because it defines this variable in the header. You need to add the qualifier |
Thank you for the details. I am getting an instance of FreeBSD 13-CURRENT (I was still on 12.1). |
This issue was solved starting in LIBXSMM v1.15. I just realized late that the report is based on v1.10 (Btw, I cannot access the log). LIBXSMM v1.10 was released (long) before GCC v10 or Clang v11 and there is no intent to back-port this resolution. Wrt FreeBSD, I think the ports' |
Feel free to report any issue that you encounter when packaging for FreeBSD incl. workarounds you need otherwise! |
Thanks! |
Beginning from clang version 11 the default has changed from allowing global variables to be defined in the headers (-fcommon) to not allowing it (-fno-common).
Now the build fails due to the symbols like
libxsmm_scratch_pools
being defined inlibxsmm_main.h
:Log: http://beefy18.nyi.freebsd.org/data/head-amd64-default/p549079_s365919/logs/libxsmm-1.10_6.log (IPv6 URL)
The text was updated successfully, but these errors were encountered: