[backfire] backport r27648
[openwrt-10.03/.git] / tools / squashfs4 / patches / 120-cygwin_fixes.patch
1 --- a/squashfs-tools/global.h
2 +++ b/squashfs-tools/global.h
3 @@ -44,6 +44,11 @@ typedef long long squashfs_fragment_inde
4  typedef squashfs_inode_t squashfs_inode;
5  typedef squashfs_block_t squashfs_block;
6  
7 +#ifdef __CYGWIN__
8 +#include <sys/termios.h>
9 +#define FNM_EXTMATCH  (1 << 5)
10 +#endif
11 +
12  #ifndef FNM_EXTMATCH
13  #define FNM_EXTMATCH 0
14  #endif
15 --- a/squashfs-tools/mksquashfs.c
16 +++ b/squashfs-tools/mksquashfs.c
17 @@ -49,10 +49,12 @@
18  #include <sys/wait.h>
19  
20  #ifndef linux
21 +#ifndef __CYGWIN__
22  #define __BYTE_ORDER BYTE_ORDER
23  #define __BIG_ENDIAN BIG_ENDIAN
24  #define __LITTLE_ENDIAN LITTLE_ENDIAN
25  #include <sys/sysctl.h>
26 +#endif /* __CYGWIN__ */
27  #else
28  #include <endian.h>
29  #include <sys/sysinfo.h>
30 @@ -817,6 +819,7 @@ void sigusr1_handler()
31  
32  void sigwinch_handler()
33  {
34 +#ifndef __CYGWIN__
35         struct winsize winsize;
36  
37         if(ioctl(1, TIOCGWINSZ, &winsize) == -1) {
38 @@ -826,6 +829,9 @@ void sigwinch_handler()
39                 columns = 80;
40         } else
41                 columns = winsize.ws_col;
42 +#else
43 +       columns = 80;
44 +#endif
45  }
46  
47  
48 @@ -3853,7 +3859,9 @@ void initialise_threads()
49                 BAD_ERROR("Failed to set signal mask in intialise_threads\n");
50  
51         signal(SIGUSR1, sigusr1_handler);
52 -
53 +#ifdef __CYGWIN__
54 +       processors = atoi(getenv("NUMBER_OF_PROCESSORS"));
55 +#else
56         if(processors == -1) {
57  #ifndef linux
58                 int mib[2];
59 @@ -3875,6 +3883,7 @@ void initialise_threads()
60                 processors = get_nprocs();
61  #endif
62         }
63 +#endif /* __CYGWIN__ */
64  
65         if((thread = malloc((2 + processors * 2) * sizeof(pthread_t))) == NULL)
66                 BAD_ERROR("Out of memory allocating thread descriptors\n");
67 --- a/squashfs-tools/read_fs.c
68 +++ b/squashfs-tools/read_fs.c
69 @@ -39,9 +39,11 @@ extern unsigned int get_guid(unsigned in
70  #include <sys/mman.h>
71  
72  #ifndef linux
73 +#ifndef __CYGWIN__
74  #define __BYTE_ORDER BYTE_ORDER
75  #define __BIG_ENDIAN BIG_ENDIAN
76  #define __LITTLE_ENDIAN LITTLE_ENDIAN
77 +#endif
78  #else
79  #include <endian.h>
80  #endif
81 --- a/squashfs-tools/swap.c
82 +++ b/squashfs-tools/swap.c
83 @@ -20,9 +20,11 @@
84   */
85  
86  #ifndef linux
87 +#ifndef __CYGWIN__
88  #define __BYTE_ORDER BYTE_ORDER
89  #define __BIG_ENDIAN BIG_ENDIAN
90  #define __LITTLE_ENDIAN LITTLE_ENDIAN
91 +#endif
92  #else
93  #include <endian.h>
94  #endif
95 --- a/squashfs-tools/unsquashfs.c
96 +++ b/squashfs-tools/unsquashfs.c
97 @@ -112,6 +112,7 @@ void update_progress_bar();
98  
99  void sigwinch_handler()
100  {
101 +#ifndef __CYGWIN__
102         struct winsize winsize;
103  
104         if(ioctl(1, TIOCGWINSZ, &winsize) == -1) {
105 @@ -121,6 +122,9 @@ void sigwinch_handler()
106                 columns = 80;
107         } else
108                 columns = winsize.ws_col;
109 +#else
110 +       columns = 80;
111 +#endif
112  }
113  
114  
115 @@ -1787,7 +1791,9 @@ void initialise_threads(int fragment_buf
116         if(sigprocmask(SIG_BLOCK, &sigmask, &old_mask) == -1)
117                 EXIT_UNSQUASH("Failed to set signal mask in intialise_threads"
118                         "\n");
119 -
120 +#ifdef __CYGWIN__
121 +       processors = atoi(getenv("NUMBER_OF_PROCESSORS"));
122 +#else
123         if(processors == -1) {
124  #ifndef linux
125                 int mib[2];
126 @@ -1809,6 +1815,7 @@ void initialise_threads(int fragment_buf
127                 processors = get_nprocs();
128  #endif
129         }
130 +#endif /* __CYGWIN__ */
131  
132         if((thread = malloc((3 + processors) * sizeof(pthread_t))) == NULL)
133                 EXIT_UNSQUASH("Out of memory allocating thread descriptors\n");
134 --- a/squashfs-tools/unsquashfs.h
135 +++ b/squashfs-tools/unsquashfs.h
136 @@ -45,10 +45,12 @@
137  #include <sys/time.h>
138  
139  #ifndef linux
140 +#ifndef __CYGWIN__
141  #define __BYTE_ORDER BYTE_ORDER
142  #define __BIG_ENDIAN BIG_ENDIAN
143  #define __LITTLE_ENDIAN LITTLE_ENDIAN
144  #include <sys/sysctl.h>
145 +#endif /* __CYGWIN__ */
146  #else
147  #include <endian.h>
148  #include <sys/sysinfo.h>