Browse files

[aml] don't load all solibs with RTLD_GLOBAL

This was inadvertant, and a result of the meaning of the flag changing as it
moves down the abstraction chain. This flag SHOULD represent whether or not we
want debug symbols, which doesn't apply to *nix anyway.

Instead it ended up forcing all symbols to GLOBAL, meaning that when loading 2
libs with identical symbol names, the new ones would be ignored. This
manifested when loading libamlplayer because it contains ffmpeg's symbols,
which were skipped in favor of our internal ones.

Ideally this would be fixed further up the chain, but there are so many things
wrong I don't know where to start. But for sure, RTLD_GLOBAL has _nothing_ to
do with the flag we pass in, and has no business being used here.
  • Loading branch information...
1 parent 545d6c8 commit 3f2be8efe80298f7ac74d670ca1ff87c2b9eab57 Cory Fields committed Sep 8, 2012
Showing with 0 additions and 1 deletion.
  1. +0 −1 xbmc/cores/DllLoader/SoLoader.cpp
1 xbmc/cores/DllLoader/SoLoader.cpp
@@ -48,7 +48,6 @@ bool SoLoader::Load()
CStdString strFileName= CSpecialProtocol::TranslatePath(GetFileName());
int flags = RTLD_LAZY;
- if (m_bGlobal) flags |= RTLD_GLOBAL;
if (strFileName == "")
CLog::Log(LOGDEBUG, "Loading Internal Library\n");

0 comments on commit 3f2be8e

Please sign in to comment.