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