[HEADSUP] Dropping libopenssl098 from distro
Ken Brown
kbrown@cornell.edu
Thu Jan 29 20:25:00 GMT 2015
On 1/23/2015 8:48 AM, Ken Brown wrote:
> My guess is correct. lisp.exe uses bit 31 (counting from the LSB) as a marker
> during garbage collection, and this is incompatible with Cygwin's use of high
> memory for the heap. I think I know how to fix this (by defining
> LINUX_NOEXEC_HEAPCODES in the Cygwin build), but I haven't finished testing it yet.
I've now built clisp-2.48 with this change (32-bit only), and I've tested it as
well as I can, given that I'm not a clisp user. The build passes all but a
handful of about 12,000 tests, so I think it's probably OK. (None of the test
failures involved crashes.)
I'm attaching the patches that I applied (on top of Reini's patches) in order to
make the build succeed. I also had to use libdb4.5 instead of libdb4.8.
Reini, if you're still lurking, maybe you could take a look at the patches.
Ken
-------------- next part --------------
--- origsrc/clisp-2.48/src/unix.d 2009-06-17 10:26:40.000000000 -0400
+++ src/clisp-2.48/src/unix.d 2015-01-26 12:11:27.111212000 -0500
@@ -716,7 +716,10 @@ extern int wait2 (PID_T pid); /* see uni
/* Interpretation of FILETIME structure: */
#ifdef UNIX_CYGWIN32
#define WIN32_LEAN_AND_MEAN
+ #pragma push_macro ("Handle")
+ #undef Handle
#include <windows.h>
+ #pragma pop_macro ("Handle")
#undef WIN32
extern long time_t_from_filetime (const FILETIME * ptr);
extern void time_t_to_filetime (time_t time_in, FILETIME * out);
-------------- next part --------------
--- origsrc/clisp-2.48/src/lispbibl.d 2009-07-28 09:58:03.000000000 -0400
+++ src/clisp-2.48/src/lispbibl.d 2015-01-26 12:14:01.822061000 -0500
@@ -2603,7 +2603,7 @@ Long-Float, Ratio and Complex (only if S
malloc results (and hence also of shared libraries) are randomized;
only the code address is fixed around 0x1C000000 and the stack address
is around 0xCF000000. In this case, we also use LINUX_NOEXEC_HEAPCODES. */
- #if (defined(I80386) && defined(UNIX_LINUX)) || (defined(I80386) && defined(UNIX_OPENBSD) && defined(ADDRESS_RANGE_RANDOMIZED))
+ #if (defined(I80386) && defined(UNIX_LINUX)) || (defined(I80386) && defined(UNIX_OPENBSD) && defined(ADDRESS_RANGE_RANDOMIZED)) || (defined(I80386) && defined(UNIX_CYGWIN32))
#define LINUX_NOEXEC_HEAPCODES
#else
#define STANDARD_HEAPCODES
-------------- next part --------------
--- origsrc/clisp-2.48/modules/syscalls/calls.c 2009-07-22 21:12:31.000000000 -0400
+++ src/clisp-2.48/modules/syscalls/calls.c 2015-01-26 12:28:34.091951900 -0500
@@ -3302,6 +3302,7 @@ DEFUN(POSIX::DUPLICATE-HANDLE, old &opti
#if defined(WIN32_NATIVE) || defined(UNIX_CYGWIN32)
#include <shlobj.h>
+#include <shlguid.h>
DEFCHECKER(check_file_attributes, type=DWORD, reverse=uint32_to_I, \
default=, prefix=FILE_ATTRIBUTE, bitmasks=both, \
ARCHIVE COMPRESSED :DEVICE :DIRECTORY ENCRYPTED HIDDEN :NORMAL \
--- origsrc/clisp-2.48/modules/syscalls/configure 2009-07-28 12:33:13.000000000 -0400
+++ src/clisp-2.48/modules/syscalls/configure 2015-01-26 12:09:16.528743100 -0500
@@ -4085,7 +4085,7 @@ fi
done
if test "$ac_cv_header_shlobj_h" = yes ; then
- LIBS=${LIBS}' -luser32 -lole32 -loleaut32 -luuid';
+ LIBS=${LIBS}' -luser32 -lole32 -loleaut32 -L/usr/lib/w32api -luuid';
fi
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
More information about the Cygwin-apps
mailing list