Re: Why does load_external_function() return PGFunction?

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: Why does load_external_function() return PGFunction?
Дата
Msg-id fbedf006-d77a-024e-7ae4-4e99499badbf@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: Why does load_external_function() return PGFunction?  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On 2/7/18 09:35, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
>> On 2018-02-06 15:43:29 -0500, Tom Lane wrote:
>>> void* isn't necessarily compatible with function pointers --- there are
>>> platforms where they're physically different widths, though possibly
>>> you'd never get PG to run on such hardware anyway.
> 
>> Fair point. Although we're relying on dlsym like infrastructure, which
>> returns just a void *.
> 
> Yeah.  Presumably, a platform where they were really different would have
> to provide some unstandardized variant of dlsym for fetching function
> pointers.  We could cope with that fairly easily as things stand, since
> we have platform-specific wrappers for dlsym anyway.  But if we made the
> API for the wrappers dependent on data and code pointers being the same,
> we'd be in trouble.

Some years ago, this issue was identified as a defect in the POSIX
standard.  At the time, it seemed they were moving in the direction of
changing the dlsym() signature to return an opaque function pointer.
However, it seems the latest version published by the Open Group says
effectively, while this is not required to work in ISO C, this standard
requires it to work.

FreeBSD has added a dlfunc() function as a workaround, but it apparently
hasn't spread anywhere else.

So, um, I don't know.  Carry on.  ;-)

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


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

Предыдущее
От: Andrey Borodin
Дата:
Сообщение: Re: [HACKERS] Can ICU be used for a database's default sort order?
Следующее
От: Tom Lane
Дата:
Сообщение: Re: CALL stmt, ERROR: unrecognized node type: 113 bug