After updating to dev-libs/libgcrypt-1.6.0, a revdep-rebuild fails to compile games-board/pokerth-1.0.1, issuing; src/net/common/socket_startup.cpp:67:25: warning: 'gcry_thread_cbs' is deprecated (declared at /usr/include/gcrypt.h:213) [-Wdeprec$ struct gcry_thread_cbs gcry_threads_boost = { ^ src/net/common/socket_startup.cpp:71:2: error: too many initializers for 'gcry_thread_cbs' }; ^ Makefile.pokerth_lib:1552: recipe for target 'obj/socket_startup.o' failed Reproducible: Always
Created attachment 365632 [details] build log
Created attachment 365634 [details] emerge --info
Created attachment 365680 [details, diff] proposed patch After opening the following bug for this issue at pokerth's github; https://github.com/pokerth/pokerth/issues/247 the dev there proposed this patch. Testing it on my system allows games-board/pokerth-1.0.1 to compile cleanly with dev-libs/libgcrypt-1.6.0. The pokerth dev's comment with the patch is; "However, please note: libgcrypt 1.6.0 then needs to be built with USE_POSIX_THREADS_WEAK defined otherwise it does not support multithreading and PokerTH (especially the server) may crash." I'm not sure if this is the case with the default dev-libs/libgcrypt-1.6.0 emerge. If it isn't, would there be an easy way to enable building it with the proper thread support?
(In reply to Jason Lamb from comment #3) > Created attachment 365680 [details, diff] [details, diff] > proposed patch > > After opening the following bug for this issue at pokerth's github; > > https://github.com/pokerth/pokerth/issues/247 > > the dev there proposed this patch. Testing it on my system allows > games-board/pokerth-1.0.1 to compile cleanly with dev-libs/libgcrypt-1.6.0. > The pokerth dev's comment with the patch is; > > "However, please note: libgcrypt 1.6.0 then needs to be built with > USE_POSIX_THREADS_WEAK defined otherwise it does not support multithreading > and PokerTH (especially the server) may crash." > > I'm not sure if this is the case with the default dev-libs/libgcrypt-1.6.0 > emerge. If it isn't, would there be an easy way to enable building it with > the proper thread support? This should be enabled by default if you're building in a standard Linux environment.
(In reply to Tim Harder from comment #4) > > This should be enabled by default if you're building in a standard Linux > environment. Thanks for confirming that. (I tried to look through the tarball grepping for USE_POSIX_THREADS_WEAK and couldn't tell if it was by default enabled or not..) Just to make sure is there some post-install way to confirm if it's enabled?
(In reply to Jason Lamb from comment #5) > Just to make sure is there some post-install way to confirm if it's enabled? Not easily, afaik. The best way is to just check for "checking whether imported symbols can be declared weak... yes" in the configure output or look at the generated config.h file for the related defines.
(In reply to Tim Harder from comment #6) > Not easily, afaik. The best way is to just check for "checking whether > imported symbols can be declared weak... yes" in the configure output or > look at the generated config.h file for the related defines. Thanks again Tim. I performed a manual ebuild unpack and then ebuild compile and did verify the config output states; checking whether imported symbols can be declared weak... yes so it looks like the patch should be all that's needed for pokerth.
And please bump version PokerTH - Version 1.1 - STABLE (release date 2013-12-22)
Looks like 1.1.1 has special handling for the newer libgcrypt.