-
Notifications
You must be signed in to change notification settings - Fork 69
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
terminate called after throwing an instance of ... what(): getrandom #91
Comments
Duplicates #79. You have to use Linux kernel headers matching (or at least, not newer than) the kernel you're running. Otherwise you have to explicitly disable |
@Lastique When calling |
No, not quite. Boost.UUID is a header-only library. The |
@Lastique Thank you for your answer. This sentence But there is another question. I was building boost 1.68 on a CentOS 7.6 system. This system has this kernel version:
and this glibc version:
Why is the error occuring (described above) on another machine? I mean, when looking into the code of the file random_provider_detect_platform.hpp, there is this preprocessor check
As also written in #79, the syscall was introduced in kernel >= 3.17 and support was added in glibc version 2.25. But when the syscall was introduced in a kernel later than the kernel and glibc version I built boost on, why the preprocessor took this path and activated the I do not understand why the part |
The syscall numbers are defined by kernel headers, which are not part of glibc but part of kernel distribution. The fact that the macro is defined while you're running an older kernel means that your installed kernel headers are for a newer kernel than you're running. |
RedHat had a backport for the syscall: https://bugzilla.redhat.com/show_bug.cgi?id=1330000 Thank you for your time and your answers. |
I comiled a project against boost library 1.68. When starting this project, I get this error message
After some googling I found out that this error has something to do with the syscall
getrandom
and that the syscall was introduced in Linux kernel >= 3.17. On the machine, where I start this project, I have this kernel (it's a CentOS 6.7):Then I found out that I can rebuild boost with the parameter
BOOST_UUID_RANDOM_PROVIDER_FORCE_POSIX
, then I could start my project (#79). So I recompiled boost 1.68. This are the commands in a self-written build script:After recompilation of boost 1.68 and my script, I still get this error written above. Is there something I am missing here?
The text was updated successfully, but these errors were encountered: