Mail Archives: djgpp/2000/06/08/19:15:23
From: | Richard Dawe <richdawe AT bigfoot DOT com>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | Re: Problems compiling libwin
|
Date: | Tue, 06 Jun 2000 19:41:54 +0100
|
Organization: | Customer of Planet Online
|
Lines: | 70
|
Message-ID: | <393D45F2.DBE8B324@bigfoot.com>
|
References: | <200006060701 DOT DAA17436 AT delorie DOT com>
|
NNTP-Posting-Host: | modem-57.muellers-butterfly.dialup.pol.co.uk
|
Mime-Version: | 1.0
|
X-Trace: | news7.svr.pol.co.uk 960320225 10561 62.136.217.57 (6 Jun 2000 19:37:05 GMT)
|
NNTP-Posting-Date: | 6 Jun 2000 19:37:05 GMT
|
X-Complaints-To: | abuse AT theplanet DOT net
|
X-Mailer: | Mozilla 4.51 [en] (X11; I; Linux 2.2.14 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.
Krish Karthik wrote:
> I downloaded libwin 0.1.3 recently and applied the patch for GCC
> 2.95 also.
This is a known problem. I have not generated a patch yet, but if you
follow the instructions in the text below, it should compile:
[Excerpt from mail]
| > I downloaded libwin, applied the patch for gcc 2.95, but still got
| > compilation errors:
|
| The compilation errors are due to the version of binutils you are using.
| I guess you are using binutils 2.9.5.1 beta version. The reason that the
| compilation fails is that the syntax of the inline assembly has changed
| between binutils versions.
|
| > gcc -Wall -Werror -I../include -I. -c vxd.c -o vxd.o
| > c:/djgpp/tmp\ccDfeUoa.s: Assembler messages:
| > c:/djgpp/tmp\ccDfeUoa.s:20: Error: suffix or operands invalid for
| `int'
|
| Please change every occurence of:
|
| intb $0x2f
|
| to:
|
| int $0x2f
|
| > c:/djgpp/tmp\ccDfeUoa.s:151: Warning: Indirect lcall without `*'
|
| Please change the argument of lcall so it has * in front of it, e.g.
|
| lcall _GlobalEntry
|
| becomes
|
| lcall *_GlobalEntry
|
| > c:/djgpp/tmp\ccDfeUoa.s:261: Warning: using `%ebx' instead of `%bx'
| > due to `l' suffix
|
| This warning is OK - you can ignore it.
|
| All these changes are to src/vxd.c. In src/vxdldr.c you will also need
| to change:
|
| lcall %%cs:_vxdldr_entry
|
| to:
|
| lcall *%%cs:_vxdldr_entry
[End excerpt]
This has been reported to work. I have not tried it, however. Similar
changes fixed up libsocket's code, so I am confident it will work.
Since then I have discovered that if you add * to the parameter of lcall,
then the code will not build with binutils 2.8.1. If you leave out the '*'
from the parameter of lcall, then gas (from binutils) will generate the
right code. A warning will be printed, but you can ignore this (the
assembly code is OK).
Hope this helps, bye,
--
Richard Dawe
richdawe AT bigfoot DOT com ICQ 47595498 http://www.bigfoot.com/~richdawe/
- Raw text -