Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 25 Jul 2014 12:14:49 -0400
From: Rich Felker <>
Subject: Re: C11 threads

On Fri, Jul 25, 2014 at 03:04:39PM +0200, Szabolcs Nagy wrote:
> > The term "inequal function pointer" had nothing pop up. Could you give
> > a reference to the relevant part in POSIX that makes the requirement
> > for a "strong" symbol?
> hm i might be wrong:
> there is a requirement in c and posix that the address of a
> standard function can be taken and that == is only true for
> function pointers if they point to the same function
> but i don't see any requirement that each library function
> must be distinct
> and there is a dr that implies the opposite:
> without explanation the response says h can return 0.

Indeed there is no explanation. I don't think it could be related to
macros because my understanding is that only function-like macros are
allowed for the standard functions, i.e. you can override such macros
by using ().

Both C99 and C11 contain in 7.1.4 paragraph 1 a footnote (161 or 185,
respectively) reading:

"This means that an implementation shall provide an actual function
for each library function, even if it also provides a macro for that

This suggests to me that there should be a one-to-one correspondence
between actual functions and library functions, but maybe I'm reading
too much into it.

> the musl math library currently defines distinct long double
> functions even if long double and double have the same
> representation, they could be weak aliases if the standard
> allows this..

Indeed. If this issue is resolved to allow it, I think we should make
this change and remove some otherwise-useless bloat.


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.