delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/10/24/02:57:19

From: "Kalum Somaratna" <kalum AT ToughGuy DOT net>
To: "Randy" <umgrang0 AT cc DOT UManitoba DOT CA>
Date: Sun, 24 Oct 1999 11:14:29 +0600
MIME-Version: 1.0
Subject: Re: libamp (for mp3's with Allegro)
Cc: djgpp AT delorie DOT com
In-reply-to: <000501bf1dc7$70925980$7399b382@oemcomputer>
X-mailer: Pegasus Mail for Win32 (v3.12)
Message-Id: <19991024051348.34D0F639DC@zagnut.hotpop.com>
X-HotPOP: -----------------------------------------------
Sent By HotPOP.com FREE Email
Get your FREE POP email at www.HotPOP.com
-----------------------------------------------
Reply-To: djgpp AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On 23 Oct 99, at 22:27, Randy <umgrang0 AT cc DOT UManitoba DOT CA> 
wrote:
> Hi, thanks for offering to help.
> 
> Here is some information:
> I'm running win98 (probably doesn't matter)
> DJGPP 2.02
> binutl-2.81
> gcc-2.95
> libgxx-2.811
> make-3.77
> I've got djgpp installed in "c:\djgpp\"
> 
> Some stuff from autoexec.bat that looks relevant (some not):
> set DJGPP=C:\DJGPP\DJGPP.ENV
> set PATH=C:\DJGPP\BIN;
> SET RSXNTDJ=C:\RSXNTDJ
> SET MSSDK=C:\MSSDK
> SET PATH=%RSXNTDJ%\BIN;%PATH%
> SET
> C_INCLUDE_PATH=%RSXNTDJ%\INCLUDE\MSSDK;%MSSDK%\INCLUDE;%RSXNTDJ%\INCLUDE\WIN32;
> %RSXNTDJ%\INCLUDE
> SET
> CPLUS_INCLUDE_PATH=%RSXNTDJ%\INCLUDE\MSSDK;%MSSDK%\INCLUDE;%RSXNTDJ%\INCLUDE\WI
> N32;%RSXNTDJ%\INCLUDE
> 
> -------end of imformation----------
> 
> I've done the following (just now again from scratch)
> Created c:\libamp\
> Extracted the files there using winzip
> Type "make install" at the prompt and I get this:
> 
> gcc -c -O6 -ffast-math -fomit-frame-pointer -m486 -DNO_BYTE_SWAPPING -DOS_MSDOS
>  -DARCH_i586    dump.c
> gcc -c -O6 -ffast-math -fomit-frame-pointer -m486 -DNO_BYTE_SWAPPING -DOS_MSDOS
>  -DARCH_i586    formats.c
> gcc -c -O6 -ffast-math -fomit-frame-pointer -m486 -DNO_BYTE_SWAPPING -DOS_MSDOS
>  -DARCH_i586    getbits.c
> gcc -c -O6 -ffast-math -fomit-frame-pointer -m486 -DNO_BYTE_SWAPPING -DOS_MSDOS
>  -DARCH_i586    huffman.c
> gcc -c -O6 -ffast-math -fomit-frame-pointer -m486 -DNO_BYTE_SWAPPING -DOS_MSDOS
>  -DARCH_i586    layer3.c
> layer3.c:17: transform.h: No such file or directory (ENOENT)
> make.exe: *** [layer3.o] Error 1
> 

Dear Randy,
	I've found out that,
1. The libamp.zip wrongly contains the normal 8+3 DOS filenames. 
ie - the file which should really be TRANSFORM.H is stored  as 
TRANSFOR.H in the zip archive.

2. Several files (layer3.c etc...) correctly requests "#include 
transform.h" and when the compiler asks the OS(Windows I am 
assuming you are running make from a Windows dos box) to open 
the long file name  TRANSFORM.H windows correctly doesn't find 
it as the unzipped file is TRANSFOR.H.

The only quick fix I could think of is  by "restarting in ms-dos 
mode" and the running make. reason-: since DOS will truncate the 
request for transform.h to transfor.h it will compile OK.

This problem occurs because there are so many references to 
Long File Names in the sources and the zip file contains only the 
truncated versions of them . So IMHO the fault is in the Zipfile.

2. The other problem is that since you are using GCC2.95 it has 
changed It's inline assembler support so that some programs wich 
use inline assembly (LIBAMP and others) won't compile.Ie-: The 
compiler will Howl,

audioalg.c: In function `audioBufferWrite':
audioalg.c:373: Invalid `asm' statement:
audioalg.c:373: fixed or forbidden register 2 (cx) was spilled for 
class CREG.

and abort.
My solution was to use GCC 2.81(which doesn't have the above 
problem) to compile LIBAMP and get the libamp.a library.
However if you are a good assembly programmer you can research 
the above error at the djgpp mailing list or at  
<http://gcc.gnu.org/faq.html>
and maybe correct the error in the source code yourself .

So my solution (which is a quick fix) is to 
1. Get GCC2.81  and install it (after you compile the library you 
can install GCC2.95 and link with it).
2. from Windows select(Shutdown,restart the computer in ms-dos 
mode) and change to the libamp directory and run make.

I hope this work's because I really couldn't think of a better quick 
solution. Maybe someone else might help .
Bye!
Kalum Somaratna.


- Raw text -


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