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
This commit is contained in:
Adrien Destugues 2014-10-13 15:01:58 +02:00
parent ac58e1cc33
commit a1262bbf33
2 changed files with 4 additions and 2 deletions

View File

@ -17,6 +17,7 @@ BinCommand screen_blanker :
# link against libscreensaver.so
: be game localestub libscreensaver.so [ TargetLibsupc++ ]
[ BuildFeatureAttribute mesa : library ]
: screen_blanker.rdef
;

View File

@ -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