summaryrefslogtreecommitdiffstats
path: root/pkgs/os-specific/windows
diff options
context:
space:
mode:
authorYegor Timoshenko <yegortimoshenko@transumption.com>2019-08-14 09:15:27 +0000
committerYegor Timoshenko <yegortimoshenko@transumption.com>2019-08-15 08:44:54 +0000
commit31d5005cd6aa11e299f9b980968907d874ddf8ee (patch)
treec544d959ee70cdba2aa4e2ea0d38759538d38032 /pkgs/os-specific/windows
parent0fcffe88db6713d67be4847d3727f143d5bf324b (diff)
pthreads-w32: 1.10.0 -> 2.9.1
Diffstat (limited to 'pkgs/os-specific/windows')
-rw-r--r--pkgs/os-specific/windows/pthread-w32/default.nix70
1 files changed, 19 insertions, 51 deletions
diff --git a/pkgs/os-specific/windows/pthread-w32/default.nix b/pkgs/os-specific/windows/pthread-w32/default.nix
index 226bbfb16df1..de0f36dac5fa 100644
--- a/pkgs/os-specific/windows/pthread-w32/default.nix
+++ b/pkgs/os-specific/windows/pthread-w32/default.nix
@@ -1,61 +1,29 @@
-{ fetchurl, stdenv, mingwrt }:
+{ stdenv, fetchzip }:
-# This file is tweaked for cross-compilation only.
-assert stdenv.hostPlatform != stdenv.buildPlatform;
+stdenv.mkDerivation rec {
+ name = "pthreads-w32-${version}";
+ version = "2.9.1";
-stdenv.mkDerivation {
- name = "pthread-w32-1.10.0";
-
- src = fetchurl {
- url = "ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-1-10-0-release.tar.gz";
- sha256 = "1vllxxfa9a7mssb1x98a2r736vsv5ll3sjizbr7a8hw8j9p18j7n";
+ src = fetchzip {
+ url = "https://sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.tar.gz";
+ sha256 = "1s8iny7g06z289ahdj0kzaxj0cd3wvjbd8j3bh9xlg7g444lhy9w";
};
- configurePhase =
- '' sed -i GNUmakefile \
- -e 's/CC=gcc/CC=i686-pc-mingw32-gcc/g ;
- s/windres/i686-pc-mingw32-windres/g ;
- s/dlltool/i686-pc-mingw32-dlltool/g'
- '';
-
- buildInputs = [ mingwrt ];
-
- buildPhase = "make GC"; # to build the GNU C dll with C cleanup code
-
- installPhase =
- '' mkdir -p "$out" "$out/include" "$out/lib"
- cp -v *pthread*{dll,a} "$out/lib"
- cp -v pthread.h semaphore.h sched.h "$out/include"
- '';
-
- postFixup =
- # By default `mingw_headers' is propagated. Prevent that, because
- # otherwise MinGW headers appear twice in `-I', and thus the
- # "#include_next <float.h>" in MinGW's <float.h> picks up itself instead
- # of picking up GCC's (hence, FLT_RADIX is left undefined, for instance.)
- '' rm -f "$out/nix-support/propagated-build-inputs"
- '';
-
- meta = {
- description = "POSIX threads for Woe32";
+ makeFlags = [ "CROSS=${stdenv.cc.targetPrefix}" "GC-static" ];
- longDescription =
- '' The POSIX 1003.1-2001 standard defines an application programming
- interface (API) for writing multithreaded applications. This
- interface is known more commonly as pthreads. A good number of
- modern operating systems include a threading library of some kind:
- Solaris (UI) threads, Win32 threads, DCE threads, DECthreads, or any
- of the draft revisions of the pthreads standard. The trend is that
- most of these systems are slowly adopting the pthreads standard API,
- with application developers following suit to reduce porting woes.
+ installPhase = ''
+ runHook preInstall
- Woe32 does not, and is unlikely to ever, support pthreads natively.
- This project seeks to provide a freely available and high-quality
- solution to this problem.
- '';
+ install -D libpthreadGC2.a $out/lib/libpthread.a
- homepage = http://sourceware.org/pthreads-win32/;
+ runHook postInstall
+ '';
- license = stdenv.lib.licenses.lgpl21Plus;
+ meta = with stdenv.lib; {
+ description = "POSIX threads library for Windows";
+ homepage = "https://sourceware.org/pthreads-win32";
+ license = licenses.lgpl21Plus;
+ maintainers = with maintainers; [ yegortimoshenko ];
+ platforms = platforms.windows;
};
}