[Bug lto/50687] New: Missing symbols with -flto -fvisibility=hidden on 4.6.x but not on 4.7.0
giulio.eulisse at cern dot ch
gcc-bugzilla@gcc.gnu.org
Mon Oct 10 16:01:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50687
Bug #: 50687
Summary: Missing symbols with -flto -fvisibility=hidden on
4.6.x but not on 4.7.0
Classification: Unclassified
Product: gcc
Version: 4.6.2
Status: UNCONFIRMED
Severity: blocker
Priority: P3
Component: lto
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: giulio.eulisse@cern.ch
There seems to be a bug (or least a different behavior) when compiling:
cat >test.cc <<-EOF
struct bar {
static void * foo();
virtual void * getFoo() const { return bar::foo();}
};
EOF
with:
c++ -fPIC -shared -flto -fvisibility=hidden test.cc
using gcc 4.6.x (both 4.6.1 release and this week 4.6.2 snapshot) compared to
gcc
4.7.0 (20111001 snapshot).
In the case of gcc 4.6.x I get a missing symbol:
% nm a.out | grep U
U _ZN3bar3fooEv
while with 4.7.x I don't get it anymore (which is what I would expect).
Dropping -flto fixes the behavior also for 4.6.x.
More information about the Gcc-bugs
mailing list