Shared library exports > 12'000 symbols ‽

Bug #593411 reported by Didier Raboud
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Lightspark
Fix Released
Undecided
Unassigned

Bug Description

Hi,

thanks to closure of #590492, there is a liblightspark0.5 built, but it exports more than 12'000 symbols ‽

Under Debian and derivatives:

$ dpkg-gensymbols -pliblightspark0.5 -v0.4.1 -Odebian/liblightspark0.5.symbols.amd64

from within the build directory produces a debian/liblightspark0.5.symbols.amd64 file of more than 12'000 lines. Amongst them, there are many from llvm.

Cheers,

OdyX

Revision history for this message
Alessandro Pignotti (a-pignotti) wrote :

I'm experimenting with symbol visibility to reduce exported symbols and improve performance

Changed in lightspark:
milestone: none → lightspark-0.4.2
status: New → In Progress
Revision history for this message
Alexandre Demers (oxalin) wrote :

Hi Odyx,
I made some changes to the CMakeFiles.txt (for both the standalone and the plugin). They are in a different branch than the main branch. Could you try it :
git clone git://github.com/Oxalin/lightspark.git

My branch is located at
http://github.com/Oxalin/lightspark/commits/master/
commits :
7c5a0b5d631c407c03a3
43f8132f71f0e2947170

It should also fix the other bug you reported (Linking is overkill, bug #582546).

Revision history for this message
Didier Raboud (odyx) wrote :

Hi,

it fails: http://pastebin.com/H2PAF9V2

Cheers,

OdyX

Revision history for this message
Alessandro Pignotti (a-pignotti) wrote :

I've merged the patch and fixed the problem with libGLEW.

I'm working on symbols visibility, which is the real source of the tons of symbols in the shared library.

Revision history for this message
Alexandre Demers (oxalin) wrote :

Weirdly, adding glew in pkg_check_modules() prevent me from doing "cmake .". It can't find the glew package under Fedora 13. At first, I hadn't noticed because CMakeCache.txt is not always removed and rebuilt, but after I removed it manually, it won't let me continue. Removing glew from the packages list let me compile LS to the end without any problem. Doing ldd -u -r on any binary doesn't complain anymore about about glew nor about symbols and linking being overkill.

I tracked down the issue about detection of glew by cmake and it's just never added to pkg-config (which is used by cmake to find packages). I even found out a link that explains exactly the same thing at the end of the page :
http://sourceforge.net/apps/trac/projectm/wiki/Installation%20Instructions

Didier and Alesandro, you seem to be using a different distribution (Ubuntu) than mine, so could you test this command in a term:
pkg-config --list-all | grep glew
That way, we'll be able to find out which distributions have this problem. If you don't have glew in pkg-config, remove CMakeCache.txt manually from LS and build from scratch, you should have the same problem as I do. Otherwise, I'll open a bug at a higher level about GLEW.

Revision history for this message
Alexandre Demers (oxalin) wrote :

I found out that it is probably fixed under Ubuntu since January 2010
https://launchpad.net/ubuntu/+source/glew/1.5.1-7ubuntu2

I'll open a bug on Fedora's side.

Revision history for this message
Alexandre Demers (oxalin) wrote :

For other Fedora users : the bug has been reported. Meanwhile, you could also use the Rawhide version of glew 1.5.4 since it's fixed under Rawhide.

Revision history for this message
Alessandro Pignotti (a-pignotti) wrote :

I'm using debian, and the pkg-config glew file is correctly installed by glew-dev

Revision history for this message
Alessandro Pignotti (a-pignotti) wrote :

With current git files are compiled using -fvisibility=hidden to reduce exported symbols. I'm still working to eliminate the exported llvm symbols

Revision history for this message
Alessandro Pignotti (a-pignotti) wrote :

Current git should export much less symbols. Is this clean enough?

Changed in lightspark:
status: In Progress → Fix Committed
Changed in lightspark:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.