Задача
========1) glibc 2.3.6
GNU C Library stable release version 2.3.6, by Roland McGrath et al.
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21).
Compiled on a Linux 2.6.18 system on 2007-02-03.
Available extensions:
GNU libio by Per Bothner
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
linuxthreads-0.10 by Xavier Leroy
BIND-8.2.3-T5B
libthread_db work sponsored by Alpha Processor Inc
NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
Thread-local storage support included.
2) -lpthread -D_REENTANT
слинковано с NPTL тредлибом
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0
3) fd = open() в одном потоке (main)
4) select(fd) в другом
----
Реультат
============
select(fd) возвращает ошибку "Bad file descriptor"
На старой glibc 2.3.2 с linuxthreads ( без NPTL)
дискрипторы нормально разделялись.
Вопрос
==========
Если от схемы не уйти ( open в одном, select в другом), то как можно решить проблему?
Собрать с старым linuxthreads или можно указать что-нибудь при сборке с NTPL lib или ещё как-то?
Подскажите кто сталкивался.