Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!orion.oac.uci.edu!beckman.com!dn71!a_rubin From: a_rubin@dsg4.dse.beckman.com (Arthur Rubin) Newsgroups: comp.binaries.ibm.pc.d Subject: Re: Help using f2c with Borland C++ Message-ID: Date: 27 Jun 91 15:37:06 GMT References: <91174.123837HAN@FRECP12.BITNET> <5147@lib.tmc.edu> Lines: 39 Nntp-Posting-Host: dn71.dse.beckman.com In <5147@lib.tmc.edu> dfenyes@thesis1.med.uth.tmc.edu (David Fenyes) writes: >Hmm. I compiled the libraries with MSC 5.1, which is all I had available. >I didn't think that the libraries should contain any mention of where >missing symbols should be sought. I thought this was all resolved at >link time by the linker. However, there's no telling what microsoft sticks >in its object files. llibce.lib is the MSC 5.1 C library for xxx87 >emulation, large model. >Here's an experiment-- If you try linking with the small model, do you get >an 'slibce.lib missing' error? If so, it's in the library. >I'm very surprised at this behavior, since before linking, nothing should >be able to predict whether you'll use llibce.lib (emulation), or llibc7.lib >(80x87 installed)., etc. I'll look into it at this end also. (1) Emulation modes might differ (it's unlikely, but I think emulation instructions for segment override floating point instructions might differ). I know Borland supports floating point emulation interrupts that MicroSoft doesn't. (Source: Ralph Brown's interrupt list.) (2) You need to compile the libraries with the /Zl option to remove the standard library names. (3) The compiler DOES generate different code, as well as generating different library names, depending on the /FP flag. (I think /FPc and /FPc87 generate identical code.) I'm afraid you either have to supply your own copies of MSC's libraries (probably written in assembler), or be VERY careful in using floating point. As a temporary fix for (2), you could supply empty libraries ?libce.lib so that the link won't fail. (I think one reason the libaries are there explicitly is to prevent you from linking small and large model programs together; they won't work, and this causes the linker to produce an error message.) -- 2165888@mcimail.com 70707.453@compuserve.com arthur@pnet01.cts.com (personal) a_rubin@dsg4.dse.beckman.com (work) My opinions are my own, and do not represent those of my employer.