pure: update and fix by patching

This commit is contained in:
Vladimír Čunát 2013-02-17 10:59:43 +01:00
parent 524d9b656e
commit b2f8432ad3
2 changed files with 69 additions and 5 deletions

View File

@ -1,5 +1,5 @@
x@{builderDefsPackage
, llvm, gmp, mpfr, readline
, llvm, gmp, mpfr, readline, bison, flex
, ...}:
builderDefsPackage
(a :
@ -12,11 +12,11 @@ let
sourceInfo = rec {
baseName="pure";
project="pure-lang";
version="0.49";
version="0.56";
name="${baseName}-${version}";
extension="tar.gz";
url="http://${project}.googlecode.com/files/${name}.${extension}";
hash="0kkrcmmqks82g3qlkvs3cd23v6b5948rw3xsdadd1jidh74jg33x";
hash="1ll29j31lp7ymp1kq57328q8md7pkp8jmwsadp67j4cdlzc3zdhj";
};
in
rec {
@ -29,8 +29,10 @@ rec {
inherit buildInputs;
/* doConfigure should be removed if not needed */
phaseNames = ["doConfigure" "doMakeInstall"];
phaseNames = ["doPatch" "doConfigure" "doMakeInstall"];
patches = [ ./new-gcc.patch ];
meta = {
description = "A purely functional programming language based on term rewriting";
maintainers = with a.lib.maintainers;

View File

@ -0,0 +1,62 @@
diff --git a/runtime.cc b/runtime.cc
index 04cbc40..54a0b43 100644
--- a/runtime.cc
+++ b/runtime.cc
@@ -13121,39 +13121,6 @@ unsigned int sleep(unsigned int secs)
}
#endif
-/* Horrible kludge to get round, trunc and the inverse hyperbolic functions
- from libmingwex.a (these are in C99, but not in the Windows system
- libraries, and LLVM doesn't know how to get them either). */
-
-extern "C"
-double __round(double x)
-{
- return round(x);
-}
-
-extern "C"
-double __trunc(double x)
-{
- return trunc(x);
-}
-
-extern "C"
-double __asinh(double x)
-{
- return asinh(x);
-}
-
-extern "C"
-double __acosh(double x)
-{
- return acosh(x);
-}
-
-extern "C"
-double __atanh(double x)
-{
- return atanh(x);
-}
/* File type bits. */
diff --git a/util.hh b/util.hh
index ae95b79..eab3330 100644
--- a/util.hh
+++ b/util.hh
@@ -58,13 +58,6 @@ char *default_encoding();
double my_strtod(const char *nptr, char **endptr);
char *my_formatd(char *buffer, const char *format, double d);
-/* Windows doesn't have strptime, so we provide a suitable replacement from
- GNU libc (see strptime.c). */
-
-#ifndef HAVE_STRPTIME
-extern "C"
-char *strptime(const char *s, const char *format, struct tm *tm);
-#endif
/* Windows doesn't have mkstemp, so we provide a suitable replacement. */