FFI question
Ian Piumarta
ian.piumarta at inria.fr
Mon May 3 18:07:41 UTC 2004
On 03 May 2004, at 09:26, Andreas Raab wrote:
> Wait a second - isn't name mangling standardized? I cannot imagine how
> you'd
> link against a C++ library if each compiler mangles the name in the
> way he
> wants to...
The standard does not specify anything about mangling. Each vendor is
free to implement whatever scheme they want (and change it between
compiler releases if it amuses them to do so).
There are at least 2 schemes implemented by different versions of gcc:
gcc-2.95 _foo__Fi
gcc-3.3 __Z3fooi
Anyone who recently upgraded, e.g., a Linux/GNU system to a series 3
gcc will no doubt have seen all the warnings about having to reinstall
system libs and recompile all user libs built with the older compiler.
To add insult to injury, the gcc folks appear to like changing the C++
ABI from time to time too, which makes for even more incompatibility
between releases.
In short: no, you cannot mix C++ binary compiled with incompatible
compiler (versions) on the same machine or OS.
Tchao,
Ian
More information about the Squeak-dev
mailing list
|