Hi
I have dowloaded the latest release 3.5 in order to generate a win64
version.
I had to apply the following patch in order to be able to compile
successfully
diff -ruN diffutils-3.5/src/sdiff.c diffutils-3.5.mod/src/sdiff.c
--- diffutils-3.5/src/sdiff.c 2016-08-04 19:37:45.000000000 -0400
+++ diffutils-3.5.mod/src/sdiff.c 2016-08-24 16:14:33.032000000
-0400
@@ -805,7 +805,8 @@
/* Yield an exit status indicating that a signal was
received. */
untrapsig (s);
- kill (getpid (), s);
+ raise(s);
+// kill (getpid (), s);
/* That didn't work, so exit with error status. */
exit (EXIT_TROUBLE);
diff -ruN diffutils-3.5/src/system.h diffutils-3.5.mod/src/system.h
--- diffutils-3.5/src/system.h 2016-08-04 19:37:45.000000000
-0400
+++ diffutils-3.5.mod/src/system.h 2016-08-24 11:42:36.344000000
-0400
@@ -134,7 +134,9 @@
#define LIN_MAX PTRDIFF_MAX
verify (TYPE_SIGNED (lin));
verify (sizeof (ptrdiff_t) <= sizeof (lin));
+#ifndef __MINGW32__
verify (sizeof (lin) <= sizeof (long int));
+#endif
/* Limit so that 2 * CONTEXT + 1 does not overflow. */
diff -ruN diffutils-3.5/src/util.c diffutils-3.5.mod/src/util.c
--- diffutils-3.5/src/util.c 2016-08-17 16:37:55.000000000 -0400
+++ diffutils-3.5.mod/src/util.c 2016-08-24 16:13:19.112000000
-0400
@@ -224,7 +224,7 @@
if (stops)
{
stop_signal_count = stops - 1;
- sig = SIGSTOP;
+ sig = SIGTERM;
}
else
signal (sig, SIG_DFL);
@@ -244,11 +244,8 @@
/* The signals that are trapped, and the number of such signals.
*/
static int const sig[] =
{
- /* This one is handled specially. */
- SIGTSTP,
-
/* The usual suspects. */
- SIGALRM, SIGHUP, SIGINT, SIGPIPE, SIGQUIT, SIGTERM,
+ SIGINT, SIGTERM,
#ifdef SIGPOLL
SIGPOLL,
#endif
@@ -298,7 +295,7 @@
caught_sig[j] = (signal (sig[j], SIG_IGN) != SIG_IGN);
if (caught_sig[j])
{
- signal (sig[j], sig[j] == SIGTSTP ? stophandler :
sighandler);
+ signal (sig[j], sig[j] == SIGTERM ? stophandler :
sighandler);
siginterrupt (sig[j], 0);
}
}
I am aware that my problem may be arised from my patch but I don't
think so.
The configure command I used was
./configure --host=x86_64-w64-mingw32 --prefix=/tmp/diffutils-3.5-mingw64
diff.exe was generated and executes. My problem is that it does not
produce any differences when it should.
Here is the output difference between the version 3.5 I produced
and a version 2.7 I found on the net
Test_case_insensitive>\diff --version
diff - GNU diffutils version 2.7
Test_case_insensitive>\diff File1.txt File2.txt
6c6
< The character changing case will be the one comprised between
the next one "S".
---
> The character changing case will be the one comprised between
the next one "s".
10,14c10,14
< Once upon a time there were two little girls raised by their
parents.
< They were not rich but they had the greatest treasur of all,
they had each other's love.
< But there come a time in life when envy is being felt, and this
came early in life...
< Well this story is rather long and I do not want to bother you
with it.
< You will have to get the end of this story by yourself. Have
fun finding it... If you can.
---
> oNCE UPON A TIME THERE WERE TWO LITTLE GIRLS RAISED BY THEIR
PARENTS.
> tHEY WERE NOT RICH BUT THEY HAD THE GREATEST TREASUR OF ALL,
THEY HAD EACH OTHER'S LOVE.
> bUT THERE COME A TIME IN LIFE WHEN ENVY IS BEING FELT, AND THIS
CAME EARLY IN LIFE...
> wELL THIS STORY IS RATHER LONG AND i DO NOT WANT TO BOTHER YOU
WITH IT.
> yOU WILL HAVE TO GET THE END OF THIS STORY BY YOURSELF. hAVE
FUN FINDING IT... iF YOU CAN.
Test_case_insensitive>\tools\diff.exe --version
diff (GNU diffutils) 3.5
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Paul Eggert, Mike Haertel, David Hayes,
Richard Stallman, and Len Tower.
Test_case_insensitive>\tools\diff.exe File1.txt File2.txt
Test_case_insensitive>\tools\diff.exe File1.txt File2.txt
Test_case_insensitive>
Thanks
Claude Lamy