Path: utzoo!attcan!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!csun!news From: swalton@solaria.csun.edu (Stephen Walton) Newsgroups: comp.sys.amiga.tech Subject: Re: Compiling shared libraries with Aztec 5.0*d* Message-ID: <1990Dec17.211311.2714@csun.edu> Date: 17 Dec 90 21:13:11 GMT References: <1990Dec14.030337.11636@mtiame.mtia.oz> <283@swrinde.nde.swri.edu> Sender: news@csun.edu (News Administrator) Reply-To: swalton@solaria.csun.edu (Stephen Walton) Organization: Cal State Northridge Lines: 46 In-Reply-To: kent@swrinde.nde.swri.edu (Kent D. Polk) In article <283@swrinde.nde.swri.edu>, kent@swrinde (Kent D. Polk) writes: In article <1990Dec14.030337.11636@mtiame.mtia.oz> jep@mtiame.mtia.oz (Jesper Peterson) writes: >Has anyone tried to compile a shared library with Aztec 5.0d? Something >seems to have been broken between 5.0a and the later releases. The sample resident library on Manx's own distribution disk doesn't work properly with 5.0d. The basic problem is an incorrect optimization: if a library routine has no local data accesses, geta4() isn't called. Unfortunately, a value for a4 which was never pushed gets popped. Also, I think it is probably wise to always run 5.0d with the -r6 switch to preserve register a6 across subroutine calls. This is probably mandatory in a library, since a6 generally contains the library base address. >1) m8.lib is broken (scanf(), etc.). Use an earlier library. Kent, can you post details? I'm interested. I got both the 5.0b and 5.0d updates from BIX; the former was a complete library, and the latter was a small set of routines to use to update. >When I mentioned this problem to Manx tech support, they said that >everything they compile works. Hmm...when did you last get through to Manx tech support? Mike Spille, their nominal support person, hasn't said anything in public on either BIX or the Manx BBS since early October. >I went back to the old Manx includes, functions.h, and the old m8.lib, >recompiled with the 5.0d cc and ln, and all of my software which >doesn't use new 2.0 stuff is working again. Hmm...meaning you have library source and recompiled? This could be the save vs. non-save of register 6 mentioned above? >Q#1 to Manx will be: >How do you use the small functions.h and the 2.0 includes, since nothing I >try can even compile as distributed? It is a requirement that a prototype for a library function be in scope before a #pragma libcall for that function can be done. Is this a problem? Steve ------------------------------- Stephen Walton, Dept. of Physics & Astronomy, Cal State Univ. Northridge I am srw@csun.edu no matter WHAT the stupid From: line says!