home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.os.os2.programmer
- Path: sparky!uunet!gatech!usenet.ins.cwru.edu!agate!ames!pacbell.com!charon.amdahl.com!netcomsv!netcom.com!ljensen
- From: ljensen@netcom.com (Colin Jensen)
- Subject: Re: How to link C Set/2 library to GCC/2 or gcc-emx
- Message-ID: <1993Jan26.012821.9348@netcom.com>
- Organization: Netcom - Online Communication Services (408 241-9760 guest)
- References: <1993Jan25.183155.20860@ucsu.Colorado.EDU>
- Date: Tue, 26 Jan 1993 01:28:21 GMT
- Lines: 22
-
- In article <1993Jan25.183155.20860@ucsu.Colorado.EDU> kassarji@spot.Colorado.EDU (KASSARJIAN STEVEN J) writes:
- >Using GCC/2 and link386 I get unresolved external functions (the ones
- >in the library provided by the hardware vendor, but proceeded by a
- >single _ character). Apparently GCC/2 and CSet/2 mangle function
- >names differently. Can this be averted? How?
-
- Assuming you have a vendor supplied function
- void foo(void);
- you will need to declare foo() as
- void foo(void) asm("foo");
- in order for gcc/2 to be happy with it.
-
- This advice only applies if the library is 32bit though...
-
- Basically, DLLs and LIBs usually have no pre-pended underscore for symbol
- names. Gcc/2 by default wants pre-pended underscore. The asm notation
- tells gcc/2 that the symbol should really be refered to by a different
- name - in this example, I tell gcc that the symbol "foo" should translate
- as the symbol "foo" rather than the default translation of "_foo".
- --
- Colin Jensen
- ljensen@netcom.netcom.com cjensen@ampex.com
-