Skip to content

Commit

Permalink
Trac #22191: update ECL to 20.4.24
Browse files Browse the repository at this point in the history
ECL-20.4.24 has been released (on 2020/04/24)

https://common-lisp.net/project/ecl/posts/ECL-20424-release.html

We should update, as it will resolve some Maxima bugs, and is essential
for resolving other Maxima bugs.

'''Tarball''': see checksums.ini [upstream_url].
(To configure Sage to download from the upstream URL, use `./configure
--enable-download-from-upstream-url`)

URL: https://trac.sagemath.org/22191
Reported by: dimpase
Ticket author(s): Marius Gerbershagen, Nils Bruin, Dima Pasechnik, Erik
Bray
Reviewer(s): Dima Pasechnik, Nils Bruin, François Bissey, Emmanuel
Charpentier, Matthias Koeppe
  • Loading branch information
Release Manager committed Jul 8, 2020
2 parents 02b0be1 + f82c716 commit 2497712
Show file tree
Hide file tree
Showing 25 changed files with 710 additions and 322 deletions.
9 changes: 5 additions & 4 deletions build/pkgs/ecl/checksums.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
tarball=ecl-VERSION.tar.bz2
sha1=66f99db852b23660668e8c1d5304ec842558d1a2
md5=14740f65bb971127bb10caaff855361e
cksum=1956945543
tarball=ecl-VERSION.tgz
sha1=96daa970ae31821c44d9e8ee344f62106d6d79a0
md5=93ba832d2ec609d49132a7076e5c14ae
cksum=3753868648
upstream_url=https://common-lisp.net/project/ecl/static/files/release/ecl-VERSION.tgz
2 changes: 1 addition & 1 deletion build/pkgs/ecl/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
16.1.2.p5
20.4.24.p0
14 changes: 0 additions & 14 deletions build/pkgs/ecl/patches/16.1.2-getcwd.patch

This file was deleted.

202 changes: 202 additions & 0 deletions build/pkgs/ecl/patches/214.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
diff --git a/src/configure b/src/configure
index 103f4102be537c5521889ad14f7d4151245bd4b2..5c7cfc2b8b4822a7477c0ba2883993a8ef185d09 100755
--- a/src/configure
+++ b/src/configure
@@ -3932,6 +3932,184 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
# sets variable CC
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
+$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
+if ${ac_cv_prog_cc_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdio.h>
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+#define debug(...) fprintf (stderr, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+ int x = 1234;
+ int y = 5678;
+ debug ("Flag");
+ debug ("X = %d\n", x);
+ showlist (The first, second, and third items.);
+ report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+ your preprocessor is broken;
+#endif
+#if BIG_OK
+#else
+ your preprocessor is broken;
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+ int datasize;
+ double data[];
+};
+
+struct named_init {
+ int number;
+ const wchar_t *name;
+ double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+ // See if C++-style comments work.
+ // Iterate through items via the restricted pointer.
+ // Also check for declarations in for loops.
+ for (unsigned int i = 0; *(text+i) != '\0'; ++i)
+ continue;
+ return 0;
+}
+
+// Check varargs and va_copy.
+static void
+test_varargs (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ va_list args_copy;
+ va_copy (args_copy, args);
+
+ const char *str;
+ int number;
+ float fnumber;
+
+ while (*format)
+ {
+ switch (*format++)
+ {
+ case 's': // string
+ str = va_arg (args_copy, const char *);
+ break;
+ case 'd': // int
+ number = va_arg (args_copy, int);
+ break;
+ case 'f': // float
+ fnumber = va_arg (args_copy, double);
+ break;
+ default:
+ break;
+ }
+ }
+ va_end (args_copy);
+ va_end (args);
+}
+
+int
+main ()
+{
+
+ // Check bool.
+ _Bool success = false;
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ test_varargs ("s, d' f .", "string", 65, 34.234);
+ test_varargs_macros ();
+
+ // Check flexible array members.
+ struct incomplete_array *ia =
+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ ia->datasize = 10;
+ for (int i = 0; i < ia->datasize; ++i)
+ ia->data[i] = i * 1.234;
+
+ // Check named initializers.
+ struct named_init ni = {
+ .number = 34,
+ .name = L"Test wide string",
+ .average = 543.34343,
+ };
+
+ ni.number = 58;
+
+ int dynamic_array[ni.number];
+ dynamic_array[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+ || dynamic_array[ni.number - 1] != 543);
+
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c99" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c99"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c99" != xno; then :
+
+fi
+
+ # checks that CC by default accepts C99 code, if not,
+ # tries adding -std=gnu-99, if this has no effect, throws an error.
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
diff --git a/src/configure.ac b/src/configure.ac
index 4e615408e7b336329b4228cb40ca820f12adacba..df7a90c84538a32ca45f2dbc4f398c4c51bec3ae 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -334,6 +334,8 @@ AC_CANONICAL_HOST
dnl =====================================================================
dnl Checks for programs
AC_PROG_CC # sets variable CC
+AC_PROG_CC_C99 # checks that CC by default accepts C99 code, if not,
+ # tries adding -std=gnu-99, if this has no effect, throws an error.
AC_PROG_CXX # sets variable CXX
AC_PROG_CPP # sets variable CPP
AC_PROG_RANLIB # sets variable RANLIB
Loading

0 comments on commit 2497712

Please sign in to comment.