From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1346 invoked by alias); 27 Feb 2006 11:25:52 -0000 Received: (qmail 1338 invoked by uid 22791); 27 Feb 2006 11:25:51 -0000 X-Spam-Check-By: sourceware.org Received: from server.cct.co.uk (HELO SERVER.cct.co.uk) (195.11.24.1) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 27 Feb 2006 11:25:51 +0000 Received: from 192.67.84.200 ([192.67.84.200]) by SERVER.cct.co.uk ([10.10.10.1]) with Microsoft Exchange Server HTTP-DAV ; Mon, 27 Feb 2006 11:26:52 +0000 Received: from software.cct.co.uk by server.cct.co.uk; 27 Feb 2006 11:26:12 +0000 From: David Fernandez To: Andrew Lunn Cc: eCos Disuss In-Reply-To: <20060227100907.GC18806@lunn.ch> References: <20060223181036.GV19406@lunn.ch> <1140770157.2884.2.camel@software.cct.co.uk> <1140799114.2884.16.camel@software.cct.co.uk> <20060224171412.GA18806@lunn.ch> <1141031570.2878.11.camel@software.cct.co.uk> <20060227092243.GB18806@lunn.ch> <1141032779.2878.13.camel@software.cct.co.uk> <20060227100907.GC18806@lunn.ch> Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Mon, 27 Feb 2006 22:48:00 -0000 Message-Id: <1141039571.6090.18.camel@software.cct.co.uk> Mime-Version: 1.0 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 Subject: Re: [ECOS] Problems building ecos sources X-SW-Source: 2006-02/txt/msg00302.txt.bz2 On Mon, 2006-02-27 at 11:09 +0100, Andrew Lunn wrote: > On Mon, Feb 27, 2006 at 09:32:59AM +0000, David Fernandez wrote: > > On Mon, 2006-02-27 at 10:22 +0100, Andrew Lunn wrote: > > > > The problem seems to be in the last line: > > > > > > > > (_sparg_) = (CYG_ADDRESS) _regs_; \ > > > > > > > > My gcc version is 4.0.2: > > > > > > That makes sense. Thew macro is being called with: > > > > > > HAL_THREAD_INIT_CONTEXT((CYG_ADDRWORD)workspace_end, > > > breakpoint, trampoline,0); > > > > > > and (_sparg_) is the first parameter. Edit main.c change the cast to > > > (CYG_ADDRESS). It might work, or it might still compain about casting > > > the lvalue.... > > > > > > Andrew > > > > Still complaining, same error. > > So it looks like you will have to add a new local variable of type > CYG_ADDRESS, assign workspace_end to it and then pass the variable to > the macro. > > Andrew Andrew, I think that what you propose is to do: CYG_ADDRESS workspace_end_int = (CYG_ADDRESS) workspace_end; HAL_THREAD_INIT_CONTEXT(workspace_end_int, breakpoint, trampoline, 0); workspace_end = (CYG_WORD*)workspace_end_int; I propose, to keep the macro useful in saving typing code, and to not replicate the functionality of the last line of the macro; to change the macro line: register CYG_WORD* _sp_ = ((CYG_WORD*)((_sparg_) &~15)); into register CYG_WORD* _sp_ = ((CYG_WORD*)((CYG_ADDRWORD)(_sparg_) &~15)); and get rid of the casting to (CYG_ADDRWORD) in main. I think this makes more sense, you cannot cast something to an int, and expect to behave as l-value, the macro should receive a variable without casting. On the other hand, you can always cast a r-value to int if unsure of getting a real int or a pointer. Either way, it fixes the problem, and either make and gmake go well now. Thank you very much Andrew. David. -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss