From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21173 invoked by alias); 13 Nov 2002 16:00:07 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 21134 invoked from network); 13 Nov 2002 16:00:03 -0000 Received: from unknown (HELO hiauly1.hia.nrc.ca) (132.246.100.193) by sources.redhat.com with SMTP; 13 Nov 2002 16:00:03 -0000 Received: from hiauly1.hia.nrc.ca (localhost [127.0.0.1]) by hiauly1.hia.nrc.ca (8.12.0.Beta16/8.12.0.Beta16) with ESMTP id gADFxwot007725; Wed, 13 Nov 2002 10:59:59 -0500 (EST) Received: (from dave@localhost) by hiauly1.hia.nrc.ca (8.12.0.Beta16/8.12.0.Beta16) id gADFxwgM007723; Wed, 13 Nov 2002 10:59:58 -0500 (EST) Message-Id: <200211131559.gADFxwgM007723@hiauly1.hia.nrc.ca> Subject: Re: gcc-64 20021111 broken on HP-UX 11.00 To: h.m.brand@hccnet.nl (H.Merijn Brand) Date: Wed, 13 Nov 2002 08:30:00 -0000 From: "John David Anglin" Cc: law@redhat.com, gcc@gcc.gnu.org In-Reply-To: <20021113112208.A5D1.H.M.BRAND@hccnet.nl> from "H.Merijn Brand" at Nov 13, 2002 11:24:48 am MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SW-Source: 2002-11/txt/msg00473.txt.bz2 > 2002-11-11 is broken for 64bit on HP-UX. 2002-11-04 still worked ... > FWIW 32bit version worked perfect Sigh, I know. I am testing a "fix". However, the problem is really GNU ld is broken. Using HP ld should work fine. I tried to fix the fact that constructors are not being collected from dependent shared libraries. Unfortunately, I missed testing with GNU ld as I was mainly concerned about assembler issues. This is what ld reports for any executable (not shared libraries) bash-2.05a$ ldd cc1 ldd: "cc1" is not a shared executable. I must admit that I first noted a problem using ldd to find dependencies when I tried a bootstrap with the HP linker and a shared libgcc. The problem is LD_LIBRARY_PATH needs to be set correctly for it to work and this is problematic when building packages with shared libraries. Basically, we have to back out from trying to search dependencies for global constructors until GNU ld is fixed. This leaves using shared libraries with constructors broken (various v3, g++ and objc testsuite fails are caused by this). I tested an alternative approach using the +init/+fini switches with the HP linker. This works fine and I was sucessful building gcc with a shared libgcc with no regressions. However, with the GNU linker, we hit another bug. The init and fini routines are not called although DT_INIT and DT_FINI look ok. The result of this is worse than not doing the dependency search, so we are in dammed if we do and dammed if we don't situation. Anyhow, either use the HP linker or "--disable-shared" for the moment. I will install a patch later today to restore the previous behavior. Dave -- J. David Anglin dave.anglin@nrc.ca National Research Council of Canada (613) 990-0752 (FAX: 952-6605)