From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9325 invoked by alias); 14 Nov 2002 01:16:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 9294 invoked by uid 71); 14 Nov 2002 01:16:02 -0000 Resent-Date: 14 Nov 2002 01:16:02 -0000 Resent-Message-ID: <20021114011602.9293.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, kelledin@users.sourceforge.net Received: (qmail 4925 invoked by uid 61); 14 Nov 2002 01:06:27 -0000 Message-Id: <20021114010627.4924.qmail@sources.redhat.com> Date: Wed, 20 Nov 2002 07:00:00 -0000 From: kelledin@users.sourceforge.net Reply-To: kelledin@users.sourceforge.net To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: target/8569: gcc on alpha does not support global variables in shared objects X-SW-Source: 2002-11/txt/msg00643.txt.bz2 List-Id: >Number: 8569 >Category: target >Synopsis: gcc on alpha does not support global variables in shared objects >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Nov 13 17:16:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: kelledin@users.sourceforge.net >Release: gcc-3.2 >Organization: >Environment: >Description: The toolchain (I suspect gcc in particular) is unable to support shared objects where the code makes references to global variables in the same shared object. In short, when the code references one of its global variables, gcc generates a gp-relative relocation in the resulting assembly language. When trying to link this into a shared object, ld notices this gp-relative relocation and refuses to link. FYI, I'm also using binutils-2.13, plus glibc-2.2.5. >How-To-Repeat: Attempt to build a shared object with the following code segment: -------- #include int num=1; int func() { printf("%d\n", num); return 0; } -------- >Fix: none known >Release-Note: >Audit-Trail: >Unformatted: