[comp.sys.sgi] 4d 20-> 4d80gt porting bug

piplani@batcomputer.tn.cornell.edu (Michael Piplani) (08/26/89)

I wrote a simple graphics driver for a program of ours on a 4d/20- personal
iris.  Our program worked fine on all our test cases.  We shipped a binary 
to someone with a 4d/80 gt with alpha blending. When it starts up it
dies with this message: "Unable to map FIFO no such device"

I thought there was binary compatability across the 4d family.

Any ideas?  It just occured to me that we didn't use the shared 
graphics libraries (just linked with good ole' -Zg), could this be the
problem?

Thanks,

Michael Piplani
Cornell U.
internet: piplani@tcgould.tn.cornell.edu
bitnet:   piplani@crnlimap.bitnet

ciemo@bananapc.wpd.sgi.com (Dave Ciemiewicz) (08/26/89)

In article <8710@batcomputer.tn.cornell.edu>, piplani@batcomputer.tn.cornell.edu (Michael Piplani) writes:
> I wrote a simple graphics driver for a program of ours on a 4d/20- personal
> iris.  Our program worked fine on all our test cases.  We shipped a binary 
> to someone with a 4d/80 gt with alpha blending. When it starts up it
> dies with this message: "Unable to map FIFO no such device"
> 
> I thought there was binary compatability across the 4d family.
> 
> Any ideas?  It just occured to me that we didn't use the shared 
> graphics libraries (just linked with good ole' -Zg), could this be the
> problem?
> 

It is definitely the problem.  You should be linking with the shared GL.
-Zg is maintained for backward compatibility.  Instead, link your program
with "-lgl_s".  Besides providing a binary compatibility, linking to the
shared library will also reduce the size of your executable since it won't
have its own copies of the GL routines.

--
-------------------------------------------------------------------------------
			Cosmo Ciemo, Silicon Valley Dude

I was traipsing through the fields of my mind when I stepped in something that
smelled rather ripe.
-------------------------------------------------------------------------------

jdchrist@watcgl.waterloo.edu (Dan Christensen) (08/28/89)

In article <41032@sgi.sgi.com> ciemo@bananapc.wpd.sgi.com (Dave Ciemiewicz) writes:
>In article <8710@batcomputer.tn.cornell.edu>, piplani@batcomputer.tn.cornell.edu (Michael Piplani) writes:
>> Any ideas?  It just occured to me that we didn't use the shared 
>> graphics libraries (just linked with good ole' -Zg), could this be the
>> problem?
>> 
>
>It is definitely the problem.  You should be linking with the shared GL.
>-Zg is maintained for backward compatibility.  Instead, link your program
>with "-lgl_s".  Besides providing a binary compatibility, linking to the
>shared library will also reduce the size of your executable since it won't
>have its own copies of the GL routines.

I think you need to use "-lgl_s -lm" because the gl library uses some
math routines like sin and cos.

----
Dan Christensen, Computer Graphics Lab,	         jdchrist@watcgl.uwaterloo.ca
University of Waterloo, Waterloo, Ont.	         jdchrist@watcgl.waterloo.edu

ciemo@bananapc.wpd.sgi.com (Dave Ciemiewicz) (08/29/89)

In article <11275@watcgl.waterloo.edu>, jdchrist@watcgl.waterloo.edu (Dan Christensen) writes:
> 
> I think you need to use "-lgl_s -lm" because the gl library uses some
> math routines like sin and cos.
> 

The GL now uses it's own internal sin and cosine routines thus eliminating
the need to link with -lm unless your program GL program specifically calls
sin(), cos(), or any of the routines provided by the math library.

I'm not sure in which release this because true though I know it is true
in at least 3.1G.  A way to check is to just link your application without
-lm.

WARNING: The GL internal sin and cosine routines are not for public 
consumption so you should not use them in your own applications.  Use of
GL internal routines in your application will almost certainly guarantee
binary IN-compatibility, shared-library or not.  Only GL public routines
are exported via the shared-library interface.

--
-------------------------------------------------------------------------------
			Cosmo Ciemo, Silicon Valley Dude

I was traipsing through the fields of my mind when I stepped in something that
smelled rather ripe.
-------------------------------------------------------------------------------