From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22349 invoked by alias); 11 Mar 2005 01:32:26 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 22332 invoked by uid 48); 11 Mar 2005 01:32:24 -0000 Date: Fri, 11 Mar 2005 01:32:00 -0000 Message-ID: <20050311013224.22331.qmail@sourceware.org> From: "janis at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050215214329.19985.lothar@xcerla.com> References: <20050215214329.19985.lothar@xcerla.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug middle-end/19985] executables created with -fprofile-arcs -ftest-coverage segfault in gcov_exit () X-Bugzilla-Reason: CC X-SW-Source: 2005-03/txt/msg01359.txt.bz2 List-Id: ------- Additional Comments From janis at gcc dot gnu dot org 2005-03-11 01:32 ------- The submitter's testcase works if function __gcov_init in libgcov.c is declared hidden. Probably all of the __gcov* symbols ought to be hidden; I'll work on a patch to hide that symbol and others that seem appropriate. Possible workaround: The linker's -E option exports all global symbols from the executable to the dynamic symbol table. A subset of global symbols can be exported by using -E along with --version-script to list symbols to export. Depending on how many symbols a shared object needs to access from a shared object, this might be a reasonable workaround. I consulted an expert, and unfortunatly there doesn't seem to be a way to say "export all symbols except this small list". -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19985