summaryrefslogtreecommitdiff
path: root/packages/monotone/files/configure.ac-no-sync-with-stdio-0.26.patch
blob: 4c56061964b8b2c126b5e9d35209b3f403391262 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
--- /tmp/configure.ac	2006-04-28 16:40:37.670982792 +0200
+++ monotone-0.26/configure.ac	2006-04-28 16:42:22.762006528 +0200
@@ -446,124 +446,8 @@
 AC_CHECK_FUNC(getaddrinfo, [AM_CONDITIONAL(MISSING_GETADDRINFO, false)], 
 			   [AM_CONDITIONAL(MISSING_GETADDRINFO, true)])
 
-# Check whether sync_with_stdio(false) run on C++ streams works correctly.
-# It causes strange problems (EOF returned too early) on some versions of
-# MinGW and OS X.  The first test is for the MinGW issue, the second for
-# the OS X issue.
-#
-# In order to check for this issue, we first generate a large input file
-# (over 128KB) and then try to read it (using a buffer size over 512
-# bytes).  If the amount of bytes read does not match the generated input,
-# the implementation is broken.
-AC_MSG_CHECKING(whether C++ streams support sync_with_stdio)
-AC_RUN_IFELSE([AC_LANG_SOURCE([
-/*
- * Generates the input file.
- */
-#include <cstdlib>
-#include <fstream>
-
-int
-main(void)
-{
-  std::ofstream ofs("_conftest.dat");
-  for (int i = 0; i < 50000; i++)
-    ofs << "0123456789\r\n";
-  ofs.close();
-
-  return EXIT_SUCCESS;
-}
-])])
-AC_RUN_IFELSE([AC_LANG_SOURCE([
-/*
- * Reads the input file.
- */
-#include <cstdlib>
-#include <fstream>
-#include <iostream>
-
-int
-main(int argc, char * argv[])
-{
-  if (argc == 1)
-    return EXIT_SUCCESS;
-
-  std::cin.sync_with_stdio(false);
-  int length = 0;
-  while (std::cin.good())
-    {
-      char buffer@<:@1024@:>@;
-      (void)std::cin.read(buffer, sizeof(buffer));
-      length += std::cin.gcount();
-    }
-
-  return length == 600000 ? EXIT_SUCCESS : EXIT_FAILURE;
-}
-])],
- [if ./conftest$ac_exeext check_it_now <_conftest.dat; then
-    AC_MSG_RESULT(yes)
-    ac_cv_sync_with_stdio=yes
-  else
-    AC_MSG_RESULT(no)
-    ac_cv_sync_with_stdio=no
-  fi
-  rm -f _conftest.dat])
-
-
-# To check for this issue, we have a writer with a short delay between writes,
-# and a reader who has set sync_with_stdio(false).
-AC_MSG_CHECKING(whether C++ streams support sync_with_stdio 2)
-AC_RUN_IFELSE([AC_LANG_SOURCE([
-#include <cstdlib>
-#include <iostream>
-#ifdef WIN32
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#define sleep(x) Sleep((x) * 1000)
-#else
-#include <unistd.h>
-#endif
-
-int
-main(int argc, char * argv[])
-{
-  if (argc == 1)
-    return EXIT_SUCCESS;
-
-  if (argc == 2)
-    {
-      std::cin.sync_with_stdio(false);
-      int length = 0;
-      while (std::cin.good())
-        {
-          char buffer@<:@1024@:>@;
-          (void)std::cin.read(buffer, sizeof(buffer));
-          length += std::cin.gcount();
-        }
-
-      return length == 82 ? EXIT_SUCCESS : EXIT_FAILURE;
-    }
-  else
-    {
-      std::cout << "1234567890123456789012345678901234567890" << std::endl;
-      sleep(1);
-      std::cout << "1234567890123456789012345678901234567890" << std::endl;
-    }
-  return EXIT_SUCCESS;
-}
-])],
- [if ./conftest$ac_exeext check_it_now please | ./conftest$ac_exeext foo; then
-    AC_MSG_RESULT(yes)
-    ac_cv_sync_with_stdio_2=yes
-  else
-    AC_MSG_RESULT(no)
-    ac_cv_sync_with_stdio_2=no
-  fi])
-
-if test $ac_cv_sync_with_stdio = yes && test $ac_cv_sync_with_stdio_2 = yes; then
   AC_DEFINE(SYNC_WITH_STDIO_WORKS, 1,
               [Define to 1 if sync_with_stdio works fine on C++ streams])
-fi
 
 # allow compiling with different flags/optimisation
 # for monotone versus libs, useful for testing.