Path: utzoo!attcan!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!kent From: kent@swrinde.nde.swri.edu (Kent D. Polk) Newsgroups: comp.sys.amiga.tech Subject: Re: Compiling shared libraries with Aztec 5.0*d* Message-ID: <421@swrinde.nde.swri.edu> Date: 21 Dec 90 14:35:56 GMT References: <1990Dec14.030337.11636@mtiame.mtia.oz> <283@swrinde.nde.swri.edu> <1990Dec17.211311.2714@csun.edu> Sender: news@swrinde.nde.swri.edu Organization: Southwest Research Institute, San Antonio, Texas Lines: 69 In article <1990Dec17.211311.2714@csun.edu> swalton@solaria.csun.edu (Stephen Walton) writes: >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. Sorry I've taken so long to respond. Had some processes running at a higher priority than the system (me). >>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. The Manx guys stated that the distributed m8.lib was incorrectly built. If you have sources, you can rebuild it correctly. I believe he stated that m8.lib hadn't changed, so... use the old. I first downloaded from the Manx BBS & when fscanf() using the m8.lib crashed, I mentioned this to Manx & subsequently ordered the disk. It didn't work either :^( >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. Last Monday. I just phone. Can 't get a response any other way. >>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? No, I mean I compile my programs with the old includes and the large functions, while using 5.0d cc and ln. I can't determine any difference using the -r6 switch. >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? If I: #include #include .... #include (small) #include <[Amiga-specific 2.0 stuff]> then I don't get include errors for math.h, etc. If I include (small) functions.h first, and use the 2.0 includes math.h, etc. gives me include file errors. Note that while some programs run when compiled this way, they at least do a massive number of read violations any time an Amiga library function is called or dealt with in any manner. This is why I believe that 5.0d cc is generating incorrect code from the 2.0 prototype information. Also, any programs which are linked to PLPlot crash very dramatically on certain PLPlot screen draw operations. Note that when compiled using the pre-2.0 includes, these same sources result in very nicely behaved executables :^) Hmmm, I ought to try Postscript output & see if that works correctly... -------------------------------------------------------------- Has anyone tried out the gadtools.library in 2.0 and Manx 5.0d? ==================================================================== Kent Polk - Southwest Research Institute - kent@swrinde.nde.swri.edu "Well... can't you get a Novell card for your Cray ?" ====================================================================