about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/haskell-modules/patches
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-04-14 17:50:16 +0000
committerAlyssa Ross <hi@alyssa.is>2019-04-14 17:50:16 +0000
commit439ebf093f2779d73bc76484a36be2889cc807bf (patch)
tree7dd3b84fb345c228165c2dae6c7cdd54b433db9e /nixpkgs/pkgs/development/haskell-modules/patches
parentd7417c2c1096b13fe903af802c7cf019fca14a7b (diff)
parent0c0954781e257b8b0dc49341795a2fe7d96945a3 (diff)
downloadnixlib-439ebf093f2779d73bc76484a36be2889cc807bf.tar
nixlib-439ebf093f2779d73bc76484a36be2889cc807bf.tar.gz
nixlib-439ebf093f2779d73bc76484a36be2889cc807bf.tar.bz2
nixlib-439ebf093f2779d73bc76484a36be2889cc807bf.tar.lz
nixlib-439ebf093f2779d73bc76484a36be2889cc807bf.tar.xz
nixlib-439ebf093f2779d73bc76484a36be2889cc807bf.tar.zst
nixlib-439ebf093f2779d73bc76484a36be2889cc807bf.zip
Merge commit '0c0954781e257b8b0dc49341795a2fe7d96945a3'
Diffstat (limited to 'nixpkgs/pkgs/development/haskell-modules/patches')
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/patches/clock-0.7.2.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/haskell-modules/patches/clock-0.7.2.patch b/nixpkgs/pkgs/development/haskell-modules/patches/clock-0.7.2.patch
new file mode 100644
index 000000000000..8354c7fa5890
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/patches/clock-0.7.2.patch
@@ -0,0 +1,59 @@
+diff --git a/System/Clock.hsc b/System/Clock.hsc
+index 297607b..c21196b 100644
+--- a/System/Clock.hsc
++++ b/System/Clock.hsc
+@@ -41,7 +41,9 @@ import GHC.Generics (Generic)
+ #  endif
+ #endif
+
+-#let alignment t = "%lu", (unsigned long)offsetof(struct {char x__; t (y__); }, y__)
++#if __GLASGOW_HASKELL__ < 800
++#  let alignment t = "%lu", (unsigned long)offsetof(struct {char x__; t (y__); }, y__)
++#endif
+
+ -- | Clock types. A clock may be system-wide (that is, visible to all processes)
+ --   or per-process (measuring time that is meaningful only within a process).
+diff --git a/cbits/hs_clock_win32.c b/cbits/hs_clock_win32.c
+index 5dcc2a9..ebdb7fe 100644
+--- a/cbits/hs_clock_win32.c
++++ b/cbits/hs_clock_win32.c
+@@ -28,12 +28,22 @@ static void to_timespec_from_100ns(ULONGLONG t_100ns, long long *t)
+     t[1] = 100*(long)(t_100ns % 10000000UL);
+ }
+
++/* See https://ghc.haskell.org/trac/ghc/ticket/15094 */
++#if defined(_WIN32) && !defined(_WIN64)
++__attribute__((optimize("-fno-expensive-optimizations")))
++#endif
+ void hs_clock_win32_gettime_monotonic(long long* t)
+ {
+    LARGE_INTEGER time;
+-   LARGE_INTEGER frequency;
++   static LARGE_INTEGER frequency;
++   static int hasFreq = 0;
++
+    QueryPerformanceCounter(&time);
+-   QueryPerformanceFrequency(&frequency);
++   if (!hasFreq)
++   {
++      hasFreq = 1;
++      QueryPerformanceFrequency(&frequency);
++   }
+    // seconds
+    t[0] = time.QuadPart / frequency.QuadPart;
+    // nanos =
+diff --git a/clock.cabal b/clock.cabal
+index 0f2d18a..67d232e 100644
+--- a/clock.cabal
++++ b/clock.cabal
+@@ -41,8 +41,8 @@ description:   A package for convenient access to high-resolution clock and
+ copyright:     Copyright © Cetin Sert 2009-2016, Eugene Kirpichov 2010, Finn Espen Gundersen 2013, Gerolf Seitz 2013, Mathieu Boespflug 2014 2015, Chris Done 2015, Dimitri Sabadie 2015, Christian Burger 2015, Mario Longobardi 2016
+ license:       BSD3
+ license-file:  LICENSE
+-author:        Cetin Sert <cetin@corsis.eu>, Corsis Research
+-maintainer:    Cetin Sert <cetin@corsis.eu>, Corsis Research
++author:        Cetin Sert <cetin@corsis.tech>, Corsis Research
++maintainer:    Cetin Sert <cetin@corsis.tech>, Corsis Research
+ homepage:      https://github.com/corsis/clock
+ bug-reports:   https://github.com/corsis/clock/issues
+ category:      System