umholtm0@ccu.umanitoba.ca (Heston Holtmann) (02/12/90)
I have experience consistent gurus #3.xxxxxxxxx when calling LC using version 5.04 and 5.04a and several compile options. The guru seems to occure no matter what the source file is. 'LC -cwei -m0t -b0 -d0 -Lcdn foo.c' will compile fine, call the linker, but when blink exits it hangs the machine just before returning to dos. I relize that -m0t -b0 -d0 are all defaults, but blink hangs the machine only when various combinations of compile flags are invoked and of course only when the -L option is included. Calling blink manualy causes no probs.. Does anyone know more about this bug, or know if Lattice(tm) is aware of it?? Heston Holtmann
walker@sas.UUCP (Doug Walker) (02/15/90)
In article <1990Feb12.025526.18769@ccu.umanitoba.ca> umholtm0@ccu.umanitoba.ca (Heston Holtmann) writes: > > 'LC -cwei -m0t -b0 -d0 -Lcdn foo.c' will compile fine, call the linker, but >when blink exits it hangs the machine just before returning to dos. This sounds like an LMK bug that occurred when command lines of >256 bytes were sent to Execute(). Try hitting <return> a few times and see if it picks up and goes on. ***** =*|_o_o|\\=====Doug Walker, Software Distiller======================= *|. o.| || | o |// "I try to make everyone's day a little more surreal." ====== - Calvin usenet: ...mcnc!rti!sas!walker plink: dwalker bix: djwalker
umholtm0@ccu.umanitoba.ca (Heston Holtmann) (02/28/90)
Has anyone had linking problems with lcr.lib lcmr.lib when using __regargs instead of __stdargs (compiler default) on your functions to force the compiler to use registerized parameters instead of the standard stack convention of passing function arguments?? I HAVE.. I have a simple test program that calls a function returning a double and has a double as its single argument. when i use the __regargs or compile with the -rr option to override the stack convesion and then link with the registerized versions of the Lattice libraries i get undefeined references to @main. SAMPLE CODE FORMAT #include <stdio.h> #include <math.h> main() { extern double __regargs func( double ); func( x ); } double __regargs func( double n ) { .... return( n ); } compile format: lc -cweik -fl -rr foo.c link format: blink from lib:c.o+foo.o to foo lib lib:lcmr.lib lib:lcr.lib lib:amiga.lib sc sd nd blink error: Undefined sysmbols First References @main File 'lib:lcr.lib' Enter a DEFINE value for @main (default _stuf): I have the feeling i missed something along the line, but the docs don't document __regargs or -rr very much... this pertains to Lattice(tm) version 5.04a Heston Holtmann ________________________________________________________________________ The One Who Masters All the Funny Symbols, Masters the World! ________________________________________________________________________
new@udel.edu (Darren New) (03/01/90)
In article <1990Feb28.091642.7789@ccu.umanitoba.ca> umholtm0@ccu.umanitoba.ca (Heston Holtmann) writes: >when i use the __regargs or compile >with the -rr option to override the stack convesion and then link with >the registerized versions of the Lattice libraries i get undefeined >references to @main. You must define a prototype for any function that uses registerized parameters for obvious reasons. A registerized function has a "@" in front instead of an "_" to avoid problems in libraries. Since your sample code has no prototype for main, _main is created (with stdargs) instead of @main. The startup code is looking for @main. Solution: write a prototype for main(). Has anybody had success making libraries with -rb? -- Darren