[comp.databases] Informix-4GL and Microsoft C v6.00 compatibility

jaggy@ibmpcug.co.uk (Mike Jagdis) (06/08/90)

I've just installed Informix 4GL on a DOS machine along with Microsoft
C version 6.00. There is a problem with this so I thought I might as well
tell you guys about it. I will let Informix know if I can dig out an
address for them. (are they on the net? Anyone out there know?).

Anyway the problem is in the Microsoft linker. The version 6.00 linker
supports both OS/2 and DOS and now has the concept of a "module definition"
file which is required for OS/2 linking but not DOS. However the filename
must still be specified even with DOS. Informix does not know this so
leaves it out which causes compiles to hang at phase 3 since the linker
decides to stop and wait for you to specify the file.
  A second problem is that one of the libraries Informix specifies is
called llibforms.lib (count the characters). I guess the pre-version 6.00
linker chopped this down to llibform.lib, however the new linker throws
up on it and waits for you to enter a substitute library name.

I fixed these problems by writing a small C program which sits further
forward in the path than the standard Microsoft link.exe and massages
the .lnk file produced by Informix before invoking the real link.exe.
If anyone else out there is having problems running Informix 4GL with
Microsoft C version 6.00 I'll happily mail a copy - it's only small!

--
Mike Jagdis            (jaggy@ibmpcug.co.uk)
Inta Electronics Ltd.                           ______        ______
1, The Metro Centre,                              /   /\    /   /   /\
Toutley Road,                                    /   /  \  /   /   /__\
Wokingham                                       /   /    \/   /   /    \
RG11 5QW                                     ------ E l e c t r o n i c s
-- 
Automatic Disclaimer:
The views expressed above are those of the author alone and may not
represent the views of the IBM PC User Group.
-- 

aland@infmx.UUCP (Colonel Panic) (06/11/90)

In article <1990Jun8.155913.26443@ibmpcug.co.uk> jaggy@ibmpcug.co.uk (Mike Jagdis) writes:
>
>I've just installed Informix 4GL on a DOS machine along with Microsoft
>C version 6.00. There is a problem with this so I thought I might as well
>tell you guys about it. I will let Informix know if I can dig out an
>address for them. (are they on the net? Anyone out there know?).

Beats me.     [-:

>Anyway the problem is in the Microsoft linker. The version 6.00 linker

Agreed.

>supports both OS/2 and DOS and now has the concept of a "module definition"
>file which is required for OS/2 linking but not DOS. However the filename
>must still be specified even with DOS. Informix does not know this so
>leaves it out which causes compiles to hang at phase 3 since the linker
>decides to stop and wait for you to specify the file.

Well, "hang" is a strong word.  It's unfortunate that Microsoft made
this new file prompt mandatory with *no* way to get around it.  If they
supplied a command-line parameter to suppress this prompt (the default
is to create no file anyway, jeez, why make the prompt mandatory?),
you could set your LINK environment variable and be done with it.

Unfortunately, I (and we) can't find any way around it.  The solution
is simple enough: just hit <ENTER> when the prompt appears (or enter
a deffile name if you want).  The other solution would be to change
the .LNK file manually to supply the response and call the linker again;
note that if you are compiling for protected-mode execution, you would
also have to manually run MAKEPM and SPLICE.

>  A second problem is that one of the libraries Informix specifies is
>called llibforms.lib (count the characters). I guess the pre-version 6.00

Not true.  That library is, and always has been, named "LLIBFORM.LIB"
in the DOS versions, for obvious reasons -- only in the UNIX versions 
is it named with an "s" ("llibforms.a").  To my knowledge, it's
impossible to have a 9-character file name (excluding extension) in
DOS, anyway.  .LNK files built by 4GL and ESQL always specify LLIBFORM.

>linker chopped this down to llibform.lib, however the new linker throws
>up on it and waits for you to enter a substitute library name.

I've been working with MS C 6.0 for a week, and I haven't seen this
happen (nor have I heard this complaint elsewhere).  If you can
reproduce it, I'd like to hear about it (email address below).

Make sure that you installed with the right options.  Use the default
library names, and do build the combined libraries.  If you are running
an old version (older than *.10.06C or so -- .06E is current), you will
need to keep the uncombined libraries around as well.

>I fixed these problems by writing a small C program which sits further
>forward in the path than the standard Microsoft link.exe and massages
>the .lnk file produced by Informix before invoking the real link.exe.
>If anyone else out there is having problems running Informix 4GL with
>Microsoft C version 6.00 I'll happily mail a copy - it's only small!

Make sure that you pass back the return code transparently.  The
calling routines detect if a LINK failed by the return code and omit
the later steps if appropriate.

>Mike Jagdis            (jaggy@ibmpcug.co.uk)

--
Alan Denney  @  Informix Software, Inc.          "We're homeward bound
aland@informix.com  {pyramid|uunet}!infmx!aland   ('tis a damn fine sound!)
-----------------------------------------------   with a good ship, taut & free
 Disclaimer:  These opinions are mine alone.      We don't give a damn, 
 If I am caught or killed, the secretary          when we drink our rum
 will disavow any knowledge of my actions.        with the girls of old Maui."