From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3556 invoked by alias); 28 Apr 2005 14:05:15 -0000 Mailing-List: contact binutils-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sources.redhat.com Received: (qmail 506 invoked from network); 28 Apr 2005 14:02:09 -0000 Received: from unknown (HELO web26908.mail.ukl.yahoo.com) (217.146.176.97) by sourceware.org with SMTP; 28 Apr 2005 14:02:09 -0000 Received: (qmail 88581 invoked by uid 60001); 28 Apr 2005 14:02:08 -0000 Message-ID: <20050428140208.88579.qmail@web26908.mail.ukl.yahoo.com> Received: from [62.253.198.200] by web26908.mail.ukl.yahoo.com via HTTP; Thu, 28 Apr 2005 16:02:08 CEST Date: Thu, 28 Apr 2005 14:20:00 -0000 From: Etienne Lorrain Subject: Re: PATCH: Allow a global symbol set to common/undefined symbol To: Nick Clifton , "H. J. Lu" Cc: Dave Korn , binutils@sources.redhat.com, drow@false.org In-Reply-To: 6667 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-SW-Source: 2005-04/txt/msg00846.txt.bz2 Sorry to bother again... With this patch and the source I am using, I have a problem elsewhere. It is initially due to GCC doing hidden real call to memcpy and memset when optimising for size (they consider calling those functions save space...) Basically because I am using two code segments (%cs can have two values to have twice 64 Kbytes accessible) I need two memcpy/memset, one in each segment. Because GCC insert real "call memset" I need to change the name of the function called in the assembler file - I am doing: asm ("memcpy = xcodeseg_memcpy \n"); asm ("memset = xcodeseg_memset \n"); So that "call memcpy" is replaced by "call xcodeseg_memcpy". With the H.J. patch in the assembler, I get messages: disk.s:7307: Error: Local symbol `memcpy' can't be equated to undefined symbol `xcodeseg_memcpy' I tried to define xcodeseg_memcpy as ".extern" of ".global" without success - even if they really are defined elsewhere. Is there a simple solution for my problem? If needed the complete source is at sourceforge (GCC-3.4.2+): http://prdownloads.sourceforge.net/gujin/gujin-1.0.tar.gz?download just untar , cd gujin && make dep disk.o Thanks, Etienne. --- Nick Clifton wrote: > Hi H. J. > > > gas/ > > 2005-04-25 H.J. Lu > > > > * config/obj-multi.h (FAKE_LABEL_NAME): Defined. > > > > * read.c (pseudo_set): Disallow symbol set to common symbol. > > > > PR 857 > > * write.c (write_object_file): Report common symbol name when > > disallowing local symbol set to common symbol. > > (adjust_reloc_syms): Disallow local symbol set to undefined > > symbol. > > > > gas/testsuite/ > > 2005-04-25 H.J. Lu > > > > * gas/all/assign.s: Make `x' and `y' global. > > Approved - please apply. > > Cheers > Nick > __________________________________________________________________ Découvrez le nouveau Yahoo! Mail : 250 Mo d'espace de stockage pour vos mails ! Créez votre Yahoo! Mail sur http://fr.mail.yahoo.com/