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 Holtmannwalker@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