From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21953 invoked by alias); 3 Jul 2005 01:04:43 -0000 Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Received: (qmail 21936 invoked by uid 22791); 3 Jul 2005 01:04:37 -0000 Received: from sta-206-168-96-204.rockynet.com (HELO hermes.chez-thomas.org) (206.168.96.204) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Sun, 03 Jul 2005 01:04:37 +0000 Received: by hermes.chez-thomas.org (Postfix, from userid 2000) id A9654100490; Sat, 2 Jul 2005 19:04:35 -0600 (MDT) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by hermes.chez-thomas.org (Postfix) with ESMTP id 6D22910048E; Sat, 2 Jul 2005 19:04:34 -0600 (MDT) From: Gary Thomas To: Leo Khale Cc: eCos Discussion In-Reply-To: <42C124FB.2090700@raceoddity.net> References: <42C124FB.2090700@raceoddity.net> Content-Type: text/plain Date: Sun, 03 Jul 2005 01:04:00 -0000 Message-Id: <1120352674.31874.29.camel@hermes> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Re: [ECOS] Macro problem building ecos with powerpc cross-compiler X-SW-Source: 2005-07/txt/msg00024.txt.bz2 On Tue, 2005-06-28 at 11:22 +0100, Leo Khale wrote: > Hi there, > > I'm attempting to build an ecos project using a powerpc-eabi > cross-compiler on Linux. I have successfully built the toolchain but > have hit a problem compiling the actual code concerning multiply defined > assembler macros. The error appears while compiling an assembler file > context.S, and the macros themselves in cyg/hal/arch.inc, for example: > > .macro lwi reg,val > .macro hal_fpu_load regs > > I'm aware that as I compile three separate copies of this arch.inc exist > on my machine: > > - the original one in the ecos_repository/packages tree > - the one copied to my app source tree (with other kernel headers) by > the ecosconfig tool for compiling my application > - the one present in the headers gnutools/powerpc-eabi/sys-include tree > for building the cross-compiler > > Since the include file is assembler and not guarded, my guess is that > it's somehow being included twice. Can anyone suggest what might be > wrong with my setup to cause this, or what the cause might be if not this? > > I append an error trace below > > Thanks > > Leo > > powerpc-eabi-gcc -c > -I/home/leok/dev/projects/architectural/ecos_kernel/full/install/include > -I/home/leok/ecos_repository/packages/hal/powerpc/arch/v2_0_26 > -I/home/leok/ecos_repository/packages/hal/powerpc/arch/v2_0_26/src > -I/home/leok/ecos_repository/packages/hal/powerpc/arch/v2_0_26/tests -I. > -I/home/leok/ecos_repository/packages/hal/powerpc/arch/v2_0_26/src/ > -finline-limit=7000 -msoft-float -mcpu=860 -Wall -Wpointer-arith > -Wstrict-prototypes -Winline -Wundef -g -ffunction-sections > -fdata-sections -fno-exceptions -Wp,-MD,src/context.tmp -o > src/hal_powerpc_arch_context.o > /home/leok/ecos_repository/packages/hal/powerpc/arch/v2_0_26/src/context.S > /home/leok/dev/projects/architectural/ecos_kernel/full/install/include/cyg/hal/arch.inc: > Assembler messages: > /home/leok/dev/projects/architectural/ecos_kernel/full/install/include/cyg/hal/arch.inc:140: > Error: Macro with this name was already defined > /home/leok/dev/projects/architectural/ecos_kernel/full/install/include/cyg/hal/arch.inc:171: > Error: Macro with this name was already defined > /home/leok/dev/projects/architectural/ecos_kernel/full/install/include/cyg/hal/arch.inc:181: > Error: Macro with this name was already defined > /home/leok/dev/projects/architectural/ecos_kernel/full/install/include/cyg/hal/arch.inc:197: > Error: Macro with this name was already defined > /home/leok/dev/projects/architectural/ecos_kernel/full/install/include/cyg/hal/arch.inc:207: > Error: Macro with this name was already defined > /home/leok/dev/projects/architectural/ecos_kernel/full/install/include/cyg/hal/arch.inc:218: > Error: Macro with this name was already defined > make[1]: *** [src/context.o.d] Error 1 > make[1]: Leaving directory > `/home/leok/dev/projects/architectural/ecos_kernel/full/hal/powerpc/arch/v2_0_26' You need to add some protection to the *.S and *.h files to protect against this. The newer tools complain if there are multiple versions of the same .macro (older tools just replaced them) -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------ -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss