Re: [HEADSUP] Dropping libopenssl098 from distro
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
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
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
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
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
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