From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23140 invoked by alias); 6 Mar 2005 17:56:01 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 23101 invoked from network); 6 Mar 2005 17:55:56 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sourceware.org with SMTP; 6 Mar 2005 17:55:56 -0000 Received: from drow by nevyn.them.org with local (Exim 4.44 #1 (Debian)) id 1D7zz3-0005h3-UK; Sun, 06 Mar 2005 12:56:05 -0500 Date: Sun, 06 Mar 2005 17:56:00 -0000 From: Daniel Jacobowitz To: binutils@sources.redhat.com Cc: Jan Beulich , gdb@sources.redhat.com Subject: gas: should duplicate .macro directives be allowed? Message-ID: <20050306175605.GA21686@nevyn.them.org> Mail-Followup-To: binutils@sources.redhat.com, Jan Beulich , gdb@sources.redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.6+20040907i X-SW-Source: 2005-03/txt/msg00057.txt.bz2 My system assembler is binutils 2.15, and allows duplicate macros; the later one wins. GDB's testsuite relies on this; I built a combined tree and dejagnu decided to use the in-tree assembler for asm-source.exp, which no longer allows this. Thus: /nevyn/big/fsf/objects/commit-gdb/gdb/testsuite/gdb.asm/arch.inc: Assembler messages: /nevyn/big/fsf/objects/commit-gdb/gdb/testsuite/gdb.asm/arch.inc:35: Error: Macro with this name was already defined >From gdb.asm/common.inc: comment "arch.inc is responsible for defining the following macros:" comment "enter - subroutine prologue" comment "leave - subroutine epilogue" comment "call - call a named subroutine" comment "several_nops - execute several (typically 4) nops" comment "exit0 - exit (0)" comment "arch.inc may also override the default definitions of:" comment "datavar - define a data variable" comment "declare - declare the start of a subroutine" comment "end - end a subroutine" Then an architecture-specific file is included, in this case i386.inc. Was the change deliberate? If so, it needs to be documented (I'd prefer to revert it). It appears to have come in here: 2005-01-31 Jan Beulich * macro.c (do_formals): Adjust to no longer accept empty parameter names. (define_macro): Adjust to no longer accept empty macro name, garbage following the parameters, or macros that were previously defined. * read.c (s_bad_end): Declare. (potable): Add endm. Handler for endr and endm is s_bad_end. (s_bad_end): Rename from s_bad_endr. Adjust to handle both .endm and .endr. * read.h (s_bad_endr): Remove. -- Daniel Jacobowitz CodeSourcery, LLC