summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure219
1 files changed, 216 insertions, 3 deletions
diff --git a/configure b/configure
index e894235..51ef10f 100755
--- a/configure
+++ b/configure
@@ -72,8 +72,11 @@ if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then
72 SFLAGS=${CFLAGS-"-fPIC -O3"} 72 SFLAGS=${CFLAGS-"-fPIC -O3"}
73 CFLAGS="$cflags" 73 CFLAGS="$cflags"
74 case `(uname -s || echo unknown) 2>/dev/null` in 74 case `(uname -s || echo unknown) 2>/dev/null` in
75 Linux | linux) LDSHARED=${LDSHARED-"gcc -shared -Wl,-soname,libz.so.1"};; 75 Linux | linux) LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1"};;
76 *) LDSHARED=${LDSHARED-"gcc -shared"};; 76 HP-UX*) LDSHARED=${LDSHARED-"$cc -shared $SFLAGS"}
77 shared_ext='.sl'
78 SHAREDLIB='libz.sl';;
79 *) LDSHARED=${LDSHARED-"$cc -shared"};;
77 esac 80 esac
78else 81else
79 # find system name and corresponding cc options 82 # find system name and corresponding cc options
@@ -116,6 +119,10 @@ else
116 SFLAGS=${CFLAGS-"-Kconform_pic -O"} 119 SFLAGS=${CFLAGS-"-Kconform_pic -O"}
117 CFLAGS=${CFLAGS-"-O"} 120 CFLAGS=${CFLAGS-"-O"}
118 LDSHARED=${LDSHARED-"cc -G"};; 121 LDSHARED=${LDSHARED-"cc -G"};;
122 OpenUNIX\ 5)
123 SFLAGS=${CFLAGS-"-KPIC -O"}
124 CFLAGS=${CFLAGS-"-O"}
125 LDSHARED=${LDSHARED-"cc -G"};;
119 # send working options for other systems to support@gzip.org 126 # send working options for other systems to support@gzip.org
120 *) SFLAGS=${CFLAGS-"-O"} 127 *) SFLAGS=${CFLAGS-"-O"}
121 CFLAGS=${CFLAGS-"-O"} 128 CFLAGS=${CFLAGS-"-O"}
@@ -149,13 +156,219 @@ cat > $test.c <<EOF
149int main() { return 0; } 156int main() { return 0; }
150EOF 157EOF
151if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then 158if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
152 CFLAGS="$CFLAGS -DHAVE_UNISTD_H" 159 sed < zconf.in.h "/HAVE_UNISTD_H/s%0%1%" > zconf.h
153 echo "Checking for unistd.h... Yes." 160 echo "Checking for unistd.h... Yes."
154else 161else
162 cp -p zconf.in.h zconf.h
155 echo "Checking for unistd.h... No." 163 echo "Checking for unistd.h... No."
156fi 164fi
157 165
158cat > $test.c <<EOF 166cat > $test.c <<EOF
167#include <stdio.h>
168#include <stdlib.h>
169
170#if (defined(__MSDOS__) || defined(_WINDOWS) || defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__STDC__) || defined(__cplusplus) || defined(__OS2__)) && !defined(STDC)
171# define STDC
172#endif
173
174int main()
175{
176#ifndef STDC
177 choke me
178#endif
179
180 return 0;
181}
182EOF
183
184if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
185 echo "Checking whether to use vsnprintf() or snprintf()... using vsnprintf()"
186
187 cat > $test.c <<EOF
188#include <stdio.h>
189#include <stdarg.h>
190
191int mytest(char *fmt, ...)
192{
193 char buf[20];
194 va_list ap;
195
196 va_start(ap, fmt);
197 vsnprintf(buf, sizeof(buf), fmt, ap);
198 va_end(ap);
199 return 0;
200}
201
202int main()
203{
204 return (mytest("Hello%d\n", 1));
205}
206EOF
207
208 if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
209 echo "Checking for vsnprintf() in stdio.h... Yes."
210
211 cat >$test.c <<EOF
212#include <stdio.h>
213#include <stdarg.h>
214
215int mytest(char *fmt, ...)
216{
217 int i;
218 char buf[20];
219 va_list ap;
220
221 va_start(ap, fmt);
222 i = vsnprintf(buf, sizeof(buf), fmt, ap);
223 va_end(ap);
224 return 0;
225}
226
227int main()
228{
229 return (mytest("Hello%d\n", 1));
230}
231EOF
232
233 if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
234 echo "Checking for return value of vsnprintf()... Yes."
235 else
236 CFLAGS="$CFLAGS -DHAS_vsnprintf_void"
237 echo "Checking for return value of vsnprintf()... No."
238 echo " WARNING: apparently vsnprintf() does not return a value. zlib"
239 echo " can build but will be open to possible string-format security"
240 echo " vulnerabilities."
241 fi
242 else
243 CFLAGS="$CFLAGS -DNO_vsnprintf"
244 echo "Checking for vsnprintf() in stdio.h... No."
245 echo " WARNING: vsnprintf() not found, falling back to vsprintf(). zlib"
246 echo " can build but will be open to possible buffer-overflow security"
247 echo " vulnerabilities."
248
249 cat >$test.c <<EOF
250#include <stdio.h>
251#include <stdarg.h>
252
253int mytest(char *fmt, ...)
254{
255 int i;
256 char buf[20];
257 va_list ap;
258
259 va_start(ap, fmt);
260 i = vsprintf(buf, fmt, ap);
261 va_end(ap);
262 return 0;
263}
264
265int main()
266{
267 return (mytest("Hello%d\n", 1));
268}
269EOF
270
271 if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
272 echo "Checking for return value of vsprintf()... Yes."
273 else
274 CFLAGS="$CFLAGS -DHAS_vsprintf_void"
275 echo "Checking for return value of vsprintf()... No."
276 echo " WARNING: apparently vsprintf() does not return a value. zlib"
277 echo " can build but will be open to possible string-format security"
278 echo " vulnerabilities."
279 fi
280 fi
281else
282 echo "Checking whether to use vsnprintf() or snprintf()... using snprintf()"
283
284 cat >$test.c <<EOF
285#include <stdio.h>
286#include <stdarg.h>
287
288int mytest()
289{
290 char buf[20];
291
292 snprintf(buf, sizeof(buf), "%s", "foo");
293 return 0;
294}
295
296int main()
297{
298 return (mytest());
299}
300EOF
301
302 if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
303 echo "Checking for snprintf() in stdio.h... Yes."
304
305 cat >$test.c <<EOF
306#include <stdio.h>
307#include <stdarg.h>
308
309int mytest(char *fmt, ...)
310{
311 int i;
312 char buf[20];
313
314 i = snprintf(buf, sizeof(buf), "%s", "foo");
315 return 0;
316}
317
318int main()
319{
320 return (mytest());
321}
322EOF
323
324 if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
325 echo "Checking for return value of snprintf()... Yes."
326 else
327 CFLAGS="$CFLAGS -DHAS_snprintf_void"
328 echo "Checking for return value of snprintf()... No."
329 echo " WARNING: apparently snprintf() does not return a value. zlib"
330 echo " can build but will be open to possible string-format security"
331 echo " vulnerabilities."
332 fi
333 else
334 CFLAGS="$CFLAGS -DNO_snprintf"
335 echo "Checking for snprintf() in stdio.h... No."
336 echo " WARNING: snprintf() not found, falling back to sprintf(). zlib"
337 echo " can build but will be open to possible buffer-overflow security"
338 echo " vulnerabilities."
339
340 cat >$test.c <<EOF
341#include <stdio.h>
342#include <stdarg.h>
343
344int mytest(char *fmt, ...)
345{
346 int i;
347 char buf[20];
348
349 i = sprintf(buf, "%s", "foo");
350 return 0;
351}
352
353int main()
354{
355 return (mytest());
356}
357EOF
358
359 if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
360 echo "Checking for return value of sprintf()... Yes."
361 else
362 CFLAGS="$CFLAGS -DHAS_sprintf_void"
363 echo "Checking for return value of sprintf()... No."
364 echo " WARNING: apparently sprintf() does not return a value. zlib"
365 echo " can build but will be open to possible string-format security"
366 echo " vulnerabilities."
367 fi
368 fi
369fi
370
371cat >$test.c <<EOF
159#include <errno.h> 372#include <errno.h>
160int main() { return 0; } 373int main() { return 0; }
161EOF 374EOF