This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Cygwin RCS Build Instructions (or sometimes ash does not like a.out)


Hi,

it's gonna get a bit complex. Please see below.

Jason Tishler writes:
 > On Thu, Oct 12, 2000 at 05:08:50PM +0000, Markus Hoenicka wrote:
 > > I just tried your build instructions but they seem to fail on my
 > > system.
 > 
 > Can anyone else confirm the above?  I just ate my own dog food (again)
 > and it still works.
 > 
 > > The problem is that patch claims that your second patch is a
 > > reverse patch.
 > 
 > I just verified that my patch.exe is the same as the one on a Cygwin
 > mirror.  Markus, please verify that your version of patch.exe is
 > current.
 > 

I did a CygWin update just last week, but I ran it again to be sure. I
also downloaded the patch.tar.gz from a mirror and compared patch -v
output, the timestamp and filesize - all looks ok. And of course I
made sure with 'which patch' that I actually run the right one.

But there are two problems with patching the rcs sources:

1) I still maintain that your patch is at least partly a reverse
patch. Did you go ahead and paste the patch from your mail back into a
file and test it? Compare e.g. the beginning of the first hunk of
rcs-5.7-cygwinb20.patchb and your patch:

rcs-5.7-cygwinb20.patchb:
-----------------------------------------------------------
diff -rc rcs-5.7/src/conf.sh rcs-5.7-good/src/conf.sh
*** rcs-5.7/src/conf.sh	Mon Nov 15 07:17:49 1999
--- rcs-5.7-good/src/conf.sh	Mon Nov 15 08:49:40 1999
***************
*** 311,325 ****
  # We must do has_readlink next, because it might generate
  # #include directives that affect later definitions.
  
! $ech >&3 "$0: configuring has_readlink, readlink_isreg_errno $dots"
  cat >a.c <<EOF
  #include "$A_H"
  static char b[7];
  int
! main() {
  	if (readlink("a.sym2",b,7) == 6  &&  strcmp(b,"a.sym1") == 0  &&
  		readlink("a.c",b,7) == -1  &&  errno != ENOENT
  	) {
  		if (errno == EINVAL)
  			printf("EINVAL\n");
  		else
--- 311,338 ----
  # We must do has_readlink next, because it might generate
  # #include directives that affect later definitions.
  
! $ech >&3 "$0: configuring has_readlink, readlink_isreg_errno, bad_readlink_enoent $dots"
  cat >a.c <<EOF
  #include "$A_H"
  static char b[7];
  int
! main(argc, argv) int argc; char **argv; {
[...]

rcs-5.7-cygwin2.patch
-----------------------------------------------------------------
diff -rc rcs-5.7/src/conf.sh rcs-5.7-good/src/conf.sh
*** rcs-5.7/src/conf.sh	Mon Nov 15 07:17:49 1999
--- rcs-5.7-good/src/conf.sh	Mon Nov 15 08:49:40 1999
***************
*** 311,325 ****
  # We must do has_readlink next, because it might generate
  # #include directives that affect later definitions.
  
! $ech >&3 "$0: configuring has_readlink, readlink_isreg_errno $dots"
  cat >a.c <<EOF
  #include "$A_H"
  static char b[7];
  int
! main() {
  	if (readlink("a.sym2",b,7) == 6  &&  strcmp(b,"a.sym1") == 0  &&
  		readlink("a.c",b,7) == -1  &&  errno != ENOENT
  	) {
  		if (errno == EINVAL)
  			printf("EINVAL\n");
  		else
--- 311,338 ----
  # We must do has_readlink next, because it might generate
  # #include directives that affect later definitions.
  
! $ech >&3 "$0: configuring has_readlink, readlink_isreg_errno, bad_readlink_enoent $dots"
  cat >a.c <<EOF
  #include "$A_H"
  static char b[7];
  int
! main(argc, argv) int argc; char **argv; {
[...]
------------------------------------------------------------

This is pretty much the same, so I'd be surprised if patch did not
complain when you apply your patch after the first one. I'm afraid you
pasted a wrong patch file into your mail.

2) If I only apply your patch, the last hunk fails. I scrutinized this
and found that on my box the patched files end up with CR/LF. The last
hunk is actually a second patch for conf.sh, so it fails because I try
to patch a file with CR/LF endings. If I split the patch file and
revert conf.sh back to LF after the first hunks, the last hunk also
works.

So I'd be glad if anyone could tell me how I can run patch without
screwing up my line endings. I have only binary mounts. As far as I
understand the User's Guide, CYGWIN=binmode is default anyway, so this
should also be no problem.

Anyway, after getting your patch into place with this somewhat kludgy
procedure, I can again configure (this time it finds diff in
/usr/bin), make, make install without problems. make installcheck
fails again, though. But this could be the same line ending problem as
with patch.

regards,
Markus

-- 
Markus Hoenicka, PhD
UT Houston Medical School
Dept. of Integrative Biology and Pharmacology
6431 Fannin MSB4.114
Houston, TX 77030
(713) 500-6313, -7477
(713) 500-7444 (fax)
Markus.Hoenicka@uth.tmc.edu
http://ourworld.compuserve.com/homepages/hoenicka_markus/


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]