Re: [HEADSUP] Dropping libopenssl098 from distro

2015-01-29 Thread Ken Brown

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
--- origsrc/clisp-2.48/src/unix.d   2009-06-17 10:26:40.0 -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 
+  #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);
--- origsrc/clisp-2.48/src/lispbibl.d   2009-07-28 09:58:03.0 -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 0x1C00 and the stack address
  is around 0xCF00. 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
--- origsrc/clisp-2.48/modules/syscalls/calls.c 2009-07-22 21:12:31.0 
-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 
+#include 
 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.0 -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


Re: Setup patch to keep test version if test version installed

2015-01-29 Thread Achim Gratz
Corinna Vinschen writes:
>> Thank you for this!
>
> Well, I added it for entirely selfish reasons, so I'm not sure I deserve
> getting thanks :)

I thanked you for the selfish reason that I got this crossed off my TODO
list without any effort on my part, so we're even.  ;-)


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds


Re: Cygwin Subprocesses on XEmacs

2015-01-29 Thread Corinna Vinschen
On Jan 29 06:49, Vin Shelton wrote:
> On Thu, Jan 29, 2015 at 4:39 AM, Corinna Vinschen wrote:
> > On Jan 28 22:32, Vin Shelton wrote:
> >> I think I have verified this behavior - I restored the old sysdep.c
> >> module and moved the disconnect_controlling_terminal() call [which
> >> calls setsid()] from right after the fork() to just before the exec()
> >> call and M-x shell works on Cygwin as it always has on linux.
> >
> > Good news!  So the XEmacs code is in a state now that Volker can
> > start creating a Cygwin package?
> 
> Yes, the 21.4 code in the hg repository builds and runs on Cygwin.

Super!


Thanks a lot,
Corinna

-- 
Corinna Vinschen  Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat


pgppDOSBGqaPR.pgp
Description: PGP signature


Re: Cygwin Subprocesses on XEmacs

2015-01-29 Thread Vin Shelton
On Thu, Jan 29, 2015 at 4:39 AM, Corinna Vinschen wrote:
> On Jan 28 22:32, Vin Shelton wrote:
>> I think I have verified this behavior - I restored the old sysdep.c
>> module and moved the disconnect_controlling_terminal() call [which
>> calls setsid()] from right after the fork() to just before the exec()
>> call and M-x shell works on Cygwin as it always has on linux.
>
> Good news!  So the XEmacs code is in a state now that Volker can
> start creating a Cygwin package?

Yes, the 21.4 code in the hg repository builds and runs on Cygwin.

Regards,
  Vin


Re: Setup patch to keep test version if test version installed

2015-01-29 Thread Corinna Vinschen
On Jan 28 22:55, Achim Gratz wrote:
> Corinna Vinschen writes:
> > This version also introduces an experimental option -m/--mirror-mode.
> 
> Thank you for this!

Well, I added it for entirely selfish reasons, so I'm not sure I deserve
getting thanks :)

In the meantime I tried what happens if the mirror is broken.  For
instance, if a file which is supposed to be installed, is missing.
Fortunately this situation is catched by the checksum check performed
right before uninstalling the old packages.  Setup opens a dialog asking
if this package should be skipped.  That's reassuring.


Thanks,
Corinna

-- 
Corinna Vinschen  Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat


pgpFtskFjINXL.pgp
Description: PGP signature


Re: Cygwin Subprocesses on XEmacs

2015-01-29 Thread Corinna Vinschen
Hi Vin,

On Jan 28 22:32, Vin Shelton wrote:
> Dear Corinna, et al -
> 
> On Wed, Jan 28, 2015 at 8:58 AM, Corinna Vinschen wrote:
> > On Jan 28 08:20, Vin Shelton wrote:
> >> On Wed, Jan 28, 2015 at 4:53 AM, Corinna Vinschen wrote:
> >> > On Jan 27 23:05, Vin Shelton wrote:
> >> >> I spent some time debugging M-x shell in XEmacs on 32-bit Cygwin.
> >> >> Here's what I found out.
> >> >>
> >> >> In the child after fork() but before exec(), the setsid() call in
> >> >> disconnect_controlling_terminal() is causing the subprocess not to
> >> >> function after it gets spawned.
> >> >
> >> > Can you define "not function" a bit more detailed?  Does no process work
> >> > at all, or do only processes requiring a tty not work?  For instance,
> >> > does something like an "echo foo > bar" still work?
> >> [...]
> >> >> Thanks for any insight you can offer.
> >> >
> >> > Hmm, not off the top of my head.  Is there a chance that you could
> >> > provide a simple, self contained testcase to reproduce the setsid
> >> > behaviour?  I think I have to debug that.
> >>
> >> You mean a simpler test case than XEmacs?  That seems like a low bar.  :-)
> >
> > LOL.
> 
> After thinking about this for awhile, it dawned on me that the problem
> is not with setsid() per se, but rather with the sequence of events
> _following_ the setsid() call.  That is, setsid() causes some of the
> ensuing ioctl() (or similar) calls that set up the pty to fail.
> 
> I think I have verified this behavior - I restored the old sysdep.c
> module and moved the disconnect_controlling_terminal() call [which
> calls setsid()] from right after the fork() to just before the exec()
> call and M-x shell works on Cygwin as it always has on linux.

Good news!  So the XEmacs code is in a state now that Volker can
start creating a Cygwin package?

> I will endeavor to create a STC for Cygwin that includes all the code
> involved in setting up the terminal so we can experiment with moving
> the setsid() call between the beginning and the end of the function.

Ok, thanks.  Hopefully we can find the snag in Cygwin.


Corinna

-- 
Corinna Vinschen  Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat


pgpjF3dNvZ_LJ.pgp
Description: PGP signature