From 1cab015a482fdf2a2c78aa5bae65199be3b5e3c8 Mon Sep 17 00:00:00 2001 From: "Fifer, Eric" Date: Wed, 2 Jun 1999 16:16:05 +0100 Subject: cygwin32 update Message-Id: <71E287AB0D94D111BBD600600849EC8185EDD9@POST> Subject: [ID 19990602.003] perl5.005_03 (CORE) cygwin32 port p4raw-id: //depot/perl@3582 --- cygwin32/Makefile.SHs | 21 +++++- cygwin32/build-instructions.READFIRST | 28 +++++--- cygwin32/build-instructions.charles-wilson | 96 ++++++++++++++++++-------- cygwin32/build-instructions.sebastien-barre | 9 ++- cygwin32/build-instructions.steven-morlock | 100 ++++++++++++++++------------ cygwin32/build-instructions.steven-morlock2 | 23 ++++--- 6 files changed, 185 insertions(+), 92 deletions(-) (limited to 'cygwin32') diff --git a/cygwin32/Makefile.SHs b/cygwin32/Makefile.SHs index a675d7433d..e4beabecba 100644 --- a/cygwin32/Makefile.SHs +++ b/cygwin32/Makefile.SHs @@ -29,6 +29,24 @@ $spitshell >>Makefile <ld2 + @echo "installing ld2 into $installbin" +# install is included in Cygwin distributions, and we make a note of th +# requirement in the README.cygwin32 file. However, let's give them +# a warning. + @if test -n "`type $1 2>&1 | sed -n -e '/'$1'$/p'`" ; then \ + install -c -m 755 ld2 ${installbin}/ld2 ; \ + else \ + echo "*************************************************" ; \ + echo "Oh, no! You didn't read the README.cygwin32" ; \ + echo "file, which stated that \"install\" was required." ; \ + echo "Make will probably fail in a few more steps." ; \ + echo "When it does, copy \"ld2\" to a directory in" ; \ + echo "your path, other than \".\"." ; \ + echo "\"/usr/local/bin\" or something similar will do." ; \ + echo "Then restart make." ; \ + echo "*************************************************" ; \ + fi + !GROK!THIS! $spitshell >>Makefile <>Makefile < will refer to the perl target/install directory. * Pre-build checklist: - - I found that building Perl on a unmounted partition/drive other than the - root will fail. It appears that the double forward slash that Cygwin32 - uses to reference drives other than the root drive (typically C:) gets - converted to a single forward slash at several points in the build process. - I have not tried, but expect it would work, to mount the non-root drive. - This problem held true for both the drive where the perl source were and - the drive where the Cygwin32 binaries where located. In the build - described in these notes the Perl source and Cygwin32 binaries were located - on the root drive. + - I found that building Perl on a unmounted partition/drive other + than the root will fail. It appears that the double forward slash + that Cygwin32 uses to reference drives other than the root drive + (typically C:) gets converted to a single forward slash at several + points in the build process. I have not tried, but expect it would + work, to mount the non-root drive. This problem held true for both + the drive where the perl source were and the drive where the + Cygwin32 binaries where located. In the build described in these + notes the Perl source and Cygwin32 binaries were located on the + root drive. - Following the instructions in /README.cygwin32: *******CSW******** @@ -82,13 +89,13 @@ the patch does this i_stdarg='define' i_varargs='undef' - This change allows us to pick up the right version of va_start(). - Cygwin32 has both a signal and double parameter versions floating - around in their header files. + This change allows us to pick up the right version of + va_start(). Cygwin32 has both a signal and double parameter + versions floating around in their header files. - + Remove support for dynamic linking. I found that all DynaLoader'd - extensions crashed during the running of the test suite. Add or edit - 'usedl' entry to read: + + Remove support for dynamic linking. I found that all + DynaLoader'd extensions crashed during the running of the + test suite. Add or edit 'usedl' entry to read: *******CSW******** the patch does this ****************** @@ -96,19 +103,20 @@ the patch does this If there is enough push I will try to sort out the problems with dynamic loading. I have made several unsuccessful attempts at - modifying /perlld to fix this problem. If you are interested, - write me. + modifying /perlld to fix this problem. If you are + interested, write me. + Change the path to the Cygwin32 directories. This includes the - entries for 'usrinc', 'libpth', 'lddlflags', 'libc' and 'usrinc'. + entries for 'usrinc', 'libpth', 'lddlflags', 'libc' and + 'usrinc'. *******CSW******** the patch does this ^ ****************** - Edit makedepend.SH. The original version of makedepend.SH produces - dependencies that include double backslashes. This can not be processed - by Cygwin32's 'make'. Apply the following modification to makedepend.SH - to correct these unfortunate filenames: + dependencies that include double backslashes. This can not be + processed by Cygwin32's 'make'. Apply the following modification + to makedepend.SH to correct these unfortunate filenames: *******CSW******** and this, as well \/ ****************** @@ -129,8 +137,9 @@ and this, as well \/ - Edit config_h.SH. The original version of config_h.SH has an bogus #include that gets propagated into the dependency list in Makefile - create from the makedepend script. The Apply the following modification - to config_h.SH to work around this unfortunate filename: + create from the makedepend script. The Apply the following + modification to config_h.SH to work around this unfortunate + filename: *******CSW******** the patch does this, too ****************** @@ -151,23 +160,24 @@ the patch does this, too #endif The real source of the problem appears that the 'make depend' in the - 'x2p' directory has problems. The following messages are generated by - that 'make depend': + 'x2p' directory has problems. The following messages are generated + by that 'make depend': Finding dependencies for hash.o. gcc2: Can't open gcc2 ... [similar messages to above] - You don't seem to have a proper C preprocessor. Using grep instead. + You don't seem to have a proper C preprocessor. Using grep + instead. Updating GNUmakefile... So the grep is pulling the bogus #include from the file. The patch turns the #include'd message into a comment. - - Run the Configure in the directory as described in the document - /README.cygwin32 + - Run the Configure in the directory as described in the + document /README.cygwin32 - I receive the message "THIS PACKAGE SEEMS INCOMPLETE.". This does not - appear to be a problem. + I receive the message "THIS PACKAGE SEEMS INCOMPLETE.". This does + not appear to be a problem. When presented with the list of handy defaults, select 'cygwin32' @@ -181,11 +191,11 @@ the patch does this, too *******CSW******** I didn't see this problem \/ ****************** - - I experience problems when building two files 'pp_sys.o' & 'doio.o'. The - build process will crash with a Windows dialog during the build of these two - files. The way I get by the problem is to control-C the make and issue - the build commands for the two files by hand. In the Perl directory issue - the following commands: + - I experience problems when building two files 'pp_sys.o' & + 'doio.o'. The build process will crash with a Windows dialog + during the build of these two files. The way I get by the problem + is to control-C the make and issue the build commands for the two + files by hand. In the Perl directory issue the following commands: `sh cflags libperl.a pp_sys.o` pp_sys.c `sh cflags libperl.a doio.o` doio.c @@ -198,9 +208,9 @@ I didn't see this problem \/ * Testing: I found that the majority of the tests passed. There were no errors - that I thought particularly scary. There were several unexpected results - such as a couple 'A required .DLL file, CYGWIN1.DLL, was not found' dialogs - and 'Perl perform an illegal operation' dialogs. + that I thought particularly scary. There were several unexpected + results such as a couple 'A required .DLL file, CYGWIN1.DLL, was not + found' dialogs and 'Perl perform an illegal operation' dialogs. *******CSW******** saw the "missing dll" during one test @@ -210,7 +220,8 @@ saw the "missing dll" during one test - Renamed or delete the file /t/lib/io_sock.t so it will not be executed. This test hangs the system. I have made no attempts to - fix the problem. From the directory issue the following command: + fix the problem. From the directory issue the following + command: *******CSW******** I didn't do this, and saw no problems. @@ -223,11 +234,12 @@ I didn't do this, and saw no problems. * Installing: - The install seems to work okay. There are problems when install the man - pages, but we don't need any stinkin' man pages, right? + The install seems to work okay. There are problems when install the + man pages, but we don't need any stinkin' man pages, right? *******CSW******** -the man pages that didn't install were those that had "::" in their filename. +the man pages that didn't install were those that had "::" in their +filename. ****************** - Issue the command 'make install' in the directory . diff --git a/cygwin32/build-instructions.steven-morlock2 b/cygwin32/build-instructions.steven-morlock2 index 0370b7053c..82ff387279 100644 --- a/cygwin32/build-instructions.steven-morlock2 +++ b/cygwin32/build-instructions.steven-morlock2 @@ -1,4 +1,8 @@ -This is an addendum to Steven Morlock's original post. The patch, perl5.005_02.patch, contains the USEMYBINMODE correction described below. +This document is obsolete. Refer to README.cygwin32. + +This is an addendum to Steven Morlock's original post. +perl5.005_03-static-patch, contains the USEMYBINMODE correction described +below. ***************************** Subject: Re: HOWTO: Builiding Perl under Win95/98 using Cygwin32 @@ -12,9 +16,9 @@ details. I'd like to correct that here. There is a need to address the issue of end of lines being CR/NL or NL on the Windows platform. Cygwin32 by default converts NL to CR/NL during file I/O by non Cygwin32-savvy applications. This means that -Perl, since it does not support 'binmode' for the Cygwin32 platform, will -not be able to read & write untranslated/binary files. There are two -methods of over coming this. The first is to mount the Cygwin32 +Perl, since it does not support 'binmode' for the Cygwin32 platform, +will not be able to read & write untranslated/binary files. There are +two methods of over coming this. The first is to mount the Cygwin32 partitions in binary mode. The second is to enable binmode support in Perl. In the original post I had mounted the partition as binary and neglected to include that fact in the post. @@ -32,10 +36,10 @@ and neglected to include that fact in the post. umount / mount -b c:\\ / - You must also get and install the gzip'd version of the Perl source code - archive. The zip'd version of the archive has all NL converted to CR/NL - pairs in all text files. So you should be downloading the files ending in - '.gz', not '.zip'. + You must also get and install the gzip'd version of the Perl source + code archive. The zip'd version of the archive has all NL converted + to CR/NL pairs in all text files. So you should be downloading the + files ending in '.gz', not '.zip'. * Patching Perl to add Cygwin32 binmode support: @@ -60,7 +64,8 @@ and neglected to include that fact in the post. + */ + #define USEMYBINMODE / **/ + #define my_binmode(fp, iotype) \ -+ (PerlLIO_setmode(PerlIO_fileno(fp), O_BINARY) != -1 ? TRUE : NULL) ++ (PerlLIO_setmode(PerlIO_fileno(fp), O_BINARY) != -1 ? +TRUE : NULL) + #endif + #include "regexp.h" -- cgit v1.2.1