Hi,
On 2023-06-10 12:48:46 -0700, Andres Freund wrote:
> > + <typedef-decl name='pg_enc' type-id='ea65169a' id='66325df6'/>
> > + <enum-decl name='pg_enc' id='ea65169a'>
> > + <underlying-type type-id='9cac1fee'/>
>
> Hm - why is all of this stuff even ending up in the external ABI? It should
> all be internal, unless I am missing something?
>
> I might be looking the wrong way, but to me it sure looks like none of that
> ends up being externally visible?
Looks like we ought to add --exported-interfaces-only?
That still seems to include things that shouldn't be there, but much
less. E.g.:
<class-decl name='AddrInfo' size-in-bits='1152' is-struct='yes' naming-typedef-id='79c324ab' visibility='default'
id='0b3a01e2'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='family' type-id='95e97e5e' visibility='default'/>
</data-member>
<data-member access='public' layout-offset-in-bits='64'>
<var-decl name='addr' type-id='8c37a12f' visibility='default'/>
</data-member>
</class-decl>
and things outside of our control:
<class-decl name='_IO_FILE' size-in-bits='1728' is-struct='yes' visibility='default' id='ec1ed955'>
<data-member access='public' layout-offset-in-bits='0'>
<var-decl name='_flags' type-id='95e97e5e' visibility='default'/>
</data-member>
I guess the latter would have to be suppressed via suppression file. But I
don't understand why things like AddrInfo ends up being included...
I tried using --header-file with --drop-private-types. But that ends up
dropping all enum definitions for some reason.
Independently, I'm a bit confused as to why we export pgresStatus in
exports.txt - I don't see any reason for that. Looks like it might be leftover
from before fa0f24165c0?
We're also a bit schizophrenic about where we install pqexpbuffer.h -
includedir_internal. But at the same time we export all the symbols?
Greetings,
Andres Freund