From: Prof B. R. <ri...@st...> - 2010-08-25 12:23:18
|
On Wed, 25 Aug 2010, Earnie wrote: > John E. / TDM wrote: >> On 8/24/2010 3:24 PM, Ruben Van Boxem wrote: >>> I think there needs to be some code written to link win32-pthreads >>> to the gcc std::thread API, just like OpenMP also uses >>> win32-pthreads. Is this line of thought correct? >> >> This is correct -- and also extremely inconvenient. It would probably >> be quite simple to let the std::thread API use pthreads-w32 on >> Windows, but unfortunately this would add a direct dependency of >> libstdc++ on pthreads-w32, which has two extreme ramifications: >> >> * Every C++ program would require the pthreads-w32 DLL to be >> distributed with it. > > You mean every thread enabled program would need to distribute it, > correct? Wouldn't libstdc++ be coded to be conditionally dependent on > the threads library if it were available? Is this any different than > Linux where pthreads is common? > >> * Every C++ program would thereby require the More precisely, every C++ program that linked to libstdc++: not all do. >> entire pthreads-w32 source code to be distributed with it, due to >> clause 4 of the LGPL. > > Doesn't it just say you have to have the source code available for > delivery in the same manner as the binary in the event someone asks for > it? Although it is usually good advice to distribute the source for the > binary with the binary to avoid having to store the source for X period > of time. There is no such thing as 'the LGPL', and it matters which version. Version 2.1 (which seems the relevant version) requires you to distribute source code in its clause 4, and so does LGPL-3. But note that similar requirements (from GPL-3) already apply to libstdc++.dll: see e.g. this thread http://gcc.gnu.org/ml/gcc/2004-06/msg01123.html >> I deem it acceptable for the use of OpenMP create a dependency on >> pthreads-w32; I do *not* deem it acceptable for every C++ program to >> have that dependency. >> > > I see no harm in a C++ program using std::thread to require pthreads-w32. > >> It would be far preferable to me for someone to extend GCC to use >> Win32 gthreads for std::thread. >> > > Why not code pthreads to use Windows gthreads? It would get wider > acceptance in GCC if the library normally used for threading with GCC is > used for the implementation. > > Earnie > > P.S. The w32 and Win32 speak needs to be modified to be Windows. -- Brian D. Ripley, ri...@st... Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 |