[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
API change between GCC 12.3.0 and 13.2.0?
From: |
Philip Munts |
Subject: |
API change between GCC 12.3.0 and 13.2.0? |
Date: |
Tue, 12 Dec 2023 13:22:03 -0800 |
User-agent: |
Mozilla Thunderbird |
It appears to me that in GCC 12.3.0, externals declared in a C binding module (DEFINITION
MODULE FOR "C") are not mangled, but in GCC 13.2.0 they *are* mangled,
prefixing the module name.
Given:
DEFINITION MODULE FOR "C" Foo;
PROCEDURE Bar;
END FOO;
Linking a program that calls Foo.Bar in 12.3.0 requires the external C function
to be named Bar while 13.2.0 requires it to be Foo_Bar.
This is a severe pain in the neck, as I have a substantial number of such C
binding modules that all have to be rewritten for GCC 13, adding EXPORT
QUALIFIED for every C external. I opine that external C names should never be
mangled...
Phil
- API change between GCC 12.3.0 and 13.2.0?,
Philip Munts <=