FD_SET and FORTIFY_SOURCE

Carlos O'Donell carlos@redhat.com
Mon Mar 25 17:04:00 GMT 2013


On 03/24/2013 04:17 PM, KOSAKI Motohiro wrote:
> 1. only turn on __FD_ELT check when running on hurd.
> 2. only turn on __FD_ELT check when defined some specific macro. (e.g.
> likes darwin,
>     but disable by default)
> 2-2. make FORTIFY_SOURCE variant and check POSIX compliance if enabled.
> 3. provide select_large_fdset() likes solaris. (I strongly don't
> recommend. all application
>     need to modify and recompilation)
> 
> What do you think?

The value of __FD_SETSIZE is part of the ABI and can't be changed.

Imagine one library using a value >1024 while another uses one
that has a value ==1024. You would have to recompile all of userspace
to ensure it works reliable and that's what we call an ABI breakage.

Therefore #1, #2, and #2-2 would break the ABI.

The only option is #3, as Solaris did, and they probably did it 
exactly for this reason.

Alternatively rewrite using poll/epoll.

Does that make sense?

Cheers,
Carlos.
 



More information about the Libc-alpha mailing list