delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/01/03/03:51:55

From: Richard Dawe <rich AT phekda DOT freeserve DOT co DOT uk>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: FreeBE compilation woes
Date: Tue, 02 Jan 2001 23:13:17 +0000
Organization: Customer of Energis Squared
Lines: 50
Message-ID: <3A52608D.3F758D9E@phekda.freeserve.co.uk>
References: <92t02s$3o7$1 AT nnrp1 DOT deja DOT com> <6480-Tue02Jan2001204654+0200-eliz AT is DOT elta DOT co DOT il> <92tcjg$fdf$1 AT nnrp1 DOT deja DOT com> <3A524ECF DOT 7AA5420 AT softhome DOT net> <92tjgv$lr9$1 AT nnrp1 DOT deja DOT com>
NNTP-Posting-Host: modem-98.indium.dialup.pol.co.uk
Mime-Version: 1.0
X-Trace: news8.svr.pol.co.uk 978479029 8894 62.136.40.98 (2 Jan 2001 23:43:49 GMT)
NNTP-Posting-Date: 2 Jan 2001 23:43:49 GMT
X-Complaints-To: abuse AT theplanet DOT net
X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.17 i586)
X-Accept-Language: de,fr
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Hello.

Tom St Denis wrote:
> Maybe when somebody asks for help you give insight and not conjecture. 
> I know what a FAQ is I was looking for someone who I dunno, perhaps,
> maybe WORKED WITH FREEBE!!!!!!!!.  I know how to type gcc -c myfile and
> such, I don't need to be treated like a dolt.

Dude, no-one was treating you like a dolt. Flaming the people in this
group isn't very nice, especially as most people are helpful.

The FAQ does contain a link the answer - one of the questions at the start
of section 8.17 is, in fact, about the error message you have found. If
you follow the link to the gcc FAQ, the problem is explained, but the
following may help.

IIRC this problem is where code has the EAX register in the input/output
arguments as well as the list of spilled (modified) registers for the
assembly statement. They tightened up the rules in gcc, since the old
behaviour was actually an error (I think).

Taking an example from libwin, I had the following:

    : "=c" (Entry[1]), "=D" (Entry[0])
    : "a" (0x1684), "b" (ID), "D" (0)
    : "%eax", "%edx"

Here EAX and EDX shouldn't be in the spilled list on line 3, since they
are listed in the output (line 1) and input (line 2) register lists. The
fix in this case was to remove EAX and EDX from the spilled line, which
means line 3 was removed.

The fix for FreeBE is similar, I guess. Is there a FreeBE mailing list?
Maybe someone has already made this fix, since gcc 2.95.x have been out
for a while now.

> > > Should I revert to V2.8.2  of GCC to fix the problem? Or re-write
> > > FreeBE?

AFAIK gcc 2.8.2 does not exist. 2.8.1 does. A re-write of FreeBE is not
necessary - just correct the inline assembly. I guess the maintainer of
FreeBE (Shawn Hargreaves?) would be interested in the fix for the problem.

Well, I hope you sort this out.

Bye,

-- 
Richard Dawe
[ mailto:richdawe AT bigfoot DOT com | http://www.bigfoot.com/~richdawe/ ]

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019