[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#307207: g++-4.0 - shared libraries built with -fvisibility=hidden likes to segfault



Package: g++-4.0
Version: 4.0.0-1
Severity: important

shared libs which are built with -fvisibility=hidden likes to segfault
as the linker don't find the correct symbols for the
__gnu_cxx::mt_allocator internal.

Attached are two source files which produces such a segfaulting shared
lib. The same code without the visibility switch works fine.

Bastian

-- 
Is truth not truth for all?
		-- Natira, "For the World is Hollow and I have Touched
		   the Sky", stardate 5476.4.
CXX = g++-4.0
TARGETS = libtest.so test
LD_LIBRARY_PATH = .
export LD_LIBRARY_PATH

CXXFLAGS = -Wall -W -Werror -ggdb
CXXFLAGS += -fvisibility=hidden
test-so.o: CXXFLAGS += -fPIC

all: $(TARGETS)
clean:
	rm -f $(TARGETS) *.o
run: test
	./test
gdb: test
	LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/debug gdb ./test
libtest.so: test-so.o
	$(CXX) -shared -o $@ $^
test: libtest.so test.o
	$(CXX) -o test -o $@ $^
#include <list>

__attribute__((visibility("default"))) std::list<int> test ()
{
  std::list<int> ret;
  ret.push_back (2);
  return ret;
}
#include <list>

std::list<int> test ();

int main ()
{
  test ();
}

Attachment: signature.asc
Description: Digital signature


Reply to: