Re: abi-compliance-checker

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: abi-compliance-checker
Дата
Msg-id 20230610202424.lgrfdrc5wqa3zs5o@awork3.anarazel.de
обсуждение исходный текст
Ответ на Re: abi-compliance-checker  (Andres Freund <andres@anarazel.de>)
Ответы Re: abi-compliance-checker  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: abi-compliance-checker  (Peter Eisentraut <peter@eisentraut.org>)
Список pgsql-hackers
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



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tomas Vondra
Дата:
Сообщение: Re: Do we want a hashset type?
Следующее
От: Tomas Vondra
Дата:
Сообщение: Re: Do we want a hashset type?