From a1262bbf33c4580f9c0a6d423357067565872499 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Mon, 13 Oct 2014 15:01:58 +0200 Subject: [PATCH] GL screensavers fail to load Mesa renderer add-on The screensaver add-ons are properly linked against libGL. The libGL code tries to load the swrast add-on. But this fails because the BGLRenderer constructor (which is provided by libGL) is not found. It seems that when loading an add-on, libraries linked to by other add-ons (and not the app itself) are not searched to resolve symbols. To avoid this issue, we now link ScreenSaver and screen_blanker to libGL, so the GL renderer add-on can find it. Fixes #10206 --- src/bin/screen_blanker/Jamfile | 1 + src/preferences/screensaver/Jamfile | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/bin/screen_blanker/Jamfile b/src/bin/screen_blanker/Jamfile index f20b188ac1..7f034fcd26 100644 --- a/src/bin/screen_blanker/Jamfile +++ b/src/bin/screen_blanker/Jamfile @@ -17,6 +17,7 @@ BinCommand screen_blanker : # link against libscreensaver.so : be game localestub libscreensaver.so [ TargetLibsupc++ ] + [ BuildFeatureAttribute mesa : library ] : screen_blanker.rdef ; diff --git a/src/preferences/screensaver/Jamfile b/src/preferences/screensaver/Jamfile index 32bada46d5..2a094ab3f8 100644 --- a/src/preferences/screensaver/Jamfile +++ b/src/preferences/screensaver/Jamfile @@ -8,7 +8,7 @@ UseHeaders [ FDirName $(HAIKU_TOP) headers os add-ons screen_saver ] : true ; UsePrivateHeaders screen_saver ; SubDirSysHdrs $(SUBDIR) ; -Preference ScreenSaver : +Preference ScreenSaver : ScreenSaverApp.cpp ScreenSaverWindow.cpp PasswordWindow.cpp @@ -19,7 +19,8 @@ Preference ScreenSaver : # needed for some old/broken screen saver add-ons that do not # link against libscreensaver.so : be game libscreensaver.so localestub tracker [ TargetLibstdc++ ] - : ScreenSaver.rdef + [ BuildFeatureAttribute mesa : library ] + : ScreenSaver.rdef ; SEARCH on [ FGristFiles