| |
1 ## |
| |
2 ## rpm.patch.porting -- Annotated OpenPKG RPM Patch file |
| |
3 ## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/> |
| |
4 ## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/> |
| |
5 ## |
| |
6 ## This file assembles changes to existing RPM source files between |
| |
7 ## the original RedHat RPM and the OpenPKG RPM variant. It can be |
| |
8 ## automatically applied to a vanilla RedHat RPM source tree with the |
| |
9 ## 'patch' tool to upgrade those files. Each patch snippet is annotated |
| |
10 ## with a short description. |
| |
11 ## |
| |
12 ## Created on: 13-Sep-2006 |
| |
13 ## |
| |
14 ## ATTENTION: THIS PATCH FILE WAS AUTO-GENERATED FROM AN OPENPKG |
| |
15 ## RPM CVS REPOSITORY, HENCE DO NOT EDIT THIS FILE. |
| |
16 ## |
| |
17 |
| |
18 +--------------------------------------------------------------------------- |
| |
19 | Evil hack to get GNU libtool working under NetBSD 1.6 |
| |
20 | with the ugly way RPM currently has to use it. |
| |
21 +--------------------------------------------------------------------------- |
| |
22 Index: ltconfig |
| |
23 --- ltconfig 17 Jan 2001 16:22:58 -0000 1.1.1.7 |
| |
24 +++ ltconfig 29 Apr 2004 13:07:28 -0000 1.4 |
| |
25 @@ -2017,6 +2017,7 @@ |
| |
26 dynamic_linker='NetBSD ld.elf_so' |
| |
27 fi |
| |
28 shlibpath_var=LD_LIBRARY_PATH |
| |
29 + deplibs_check_method=pass_all |
| |
30 ;; |
| |
31 |
| |
32 openbsd*) |
| |
33 |
| |
34 +--------------------------------------------------------------------------- |
| |
35 | Disable special RedHat NPTL handling. |
| |
36 +--------------------------------------------------------------------------- |
| |
37 Index: configure.ac |
| |
38 --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 |
| |
39 +++ configure.ac 13 Sep 2006 13:40:20 -0000 |
| |
40 @@ -150,10 +151,10 @@ |
| |
41 dnl XXX Test for libpthread.a that is NPTL aware (static link only). |
| |
42 dnl |
| |
43 LDFLAGS_NPTL= |
| |
44 -if test -f /usr/lib/nptl/libpthread.a ; then |
| |
45 - LDFLAGS_NPTL="-L/usr/lib/nptl" |
| |
46 -# INCPATH="$INCPATH -I/usr/include/nptl" |
| |
47 -fi |
| |
48 +dnl if test -f /usr/lib/nptl/libpthread.a ; then |
| |
49 +dnl LDFLAGS_NPTL="-L/usr/lib/nptl" |
| |
50 +dnl # INCPATH="$INCPATH -I/usr/include/nptl" |
| |
51 +dnl fi |
| |
52 AC_SUBST(LDFLAGS_NPTL) |
| |
53 |
| |
54 dnl |
| |
55 |
| |
56 +--------------------------------------------------------------------------- |
| |
57 | Disable any POSIX Pthread stuff because in OpenPKG we use |
| |
58 | non-Pthread mutexes in Berkeley-DB. |
| |
59 +--------------------------------------------------------------------------- |
| |
60 Index: configure.ac |
| |
61 --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 |
| |
62 +++ configure.ac 13 Sep 2006 13:40:21 -0000 |
| |
63 @@ -446,14 +447,17 @@ |
| |
64 AC_CHECK_LIB(socket, socket) |
| |
65 ]) |
| |
66 |
| |
67 -AC_CHECK_HEADERS(thread.h pthread.h synch.h semaphore.h) |
| |
68 +dnl # required for HP-UX because of RPC stuff in DB |
| |
69 +AC_CHECK_LIB(nsl, svc_run) |
| |
70 |
| |
71 -AC_CHECK_LIB(pthread, pthread_mutex_trylock, [], [ |
| |
72 - dnl OSF 5.0 has the the symbols prefixed with __ in libpthread. |
| |
73 - AC_CHECK_LIB(pthread, __pthread_mutex_trylock, [], [ |
| |
74 - AC_CHECK_LIB(thread, mutex_lock) |
| |
75 - ]) |
| |
76 -]) |
| |
77 +dnl AC_CHECK_HEADERS(thread.h pthread.h synch.h semaphore.h) |
| |
78 +dnl |
| |
79 +dnl AC_CHECK_LIB(pthread, pthread_mutex_trylock, [], [ |
| |
80 +dnl dnl OSF 5.0 has the the symbols prefixed with __ in libpthread. |
| |
81 +dnl AC_CHECK_LIB(pthread, __pthread_mutex_trylock, [], [ |
| |
82 +dnl AC_CHECK_LIB(thread, mutex_lock) |
| |
83 +dnl ]) |
| |
84 +dnl ]) |
| |
85 |
| |
86 AC_CHECK_HEADERS(aio.h) |
| |
87 AC_SEARCH_LIBS(aio_read, [c rt aio posix4]) |
| |
88 |
| |
89 +--------------------------------------------------------------------------- |
| |
90 | Add support for BSD getmntinfo(3). |
| |
91 +--------------------------------------------------------------------------- |
| |
92 Index: configure.ac |
| |
93 --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 |
| |
94 +++ configure.ac 13 Sep 2006 13:40:23 -0000 |
| |
95 @@ -963,12 +967,13 @@ |
| |
96 AC_CHECK_FUNCS(getpassphrase) |
| |
97 |
| |
98 AC_CHECK_FUNC(getmntent, AC_DEFINE(HAVE_GETMNTENT, 1, [Define if you have the getmntent() function]), [ |
| |
99 + AC_CHECK_FUNC(getmntinfo, AC_DEFINE(HAVE_GETMNTINFO, 1, [Define as 1 if you have the getmntinfo() function]), [ |
| |
100 AC_CHECK_FUNC(mntctl, AC_DEFINE(HAVE_MNTCTL, 1, [Define as 1 if you have mntctl() (only aix?)]),[ |
| |
101 AC_CHECK_FUNC(getmntinfo_r, AC_DEFINE(HAVE_GETMNTINFO_R, 1, [Define as 1 if you have getmntinfo_r() (only osf?)]), [ |
| |
102 AC_CHECK_LIB(c_r, getmntinfo_r, [LIBS="$LIBS -lc_r"; |
| |
103 AC_DEFINE(HAVE_GETMNTINFO_R, 1, [Define as 1 if you have getmntinfo_r() (only osf?)])], [ |
| |
104 AC_DEFINE([USE_GETMNTENT], 1, [Defined if getmntent replacement is used]) |
| |
105 - AC_LIBOBJ(getmntent)])])])]) |
| |
106 + AC_LIBOBJ(getmntent)])])])])]) |
| |
107 |
| |
108 AC_CHECK_FUNC(lchown, |
| |
109 [__CHOWN_RHF="%{__chown} -Rhf" |
| |
110 |
| |
111 +--------------------------------------------------------------------------- |
| |
112 | Remove RPM's "lib64" hack because we do not install |
| |
113 | into any system locations at all. |
| |
114 +--------------------------------------------------------------------------- |
| |
115 Index: configure.ac |
| |
116 --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 |
| |
117 +++ configure.ac 13 Sep 2006 13:40:25 -0000 |
| |
118 @@ -1141,9 +1146,6 @@ |
| |
119 |
| |
120 dnl XXX Choose /usr/lib or /usr/lib64 for library installs. |
| |
121 MARK64= |
| |
122 -case "${target_cpu}" in |
| |
123 -x86_64*|ppc64*|powerpc64*|sparc64*|s390x*) MARK64=64 ;; |
| |
124 -esac |
| |
125 AC_SUBST(MARK64) |
| |
126 |
| |
127 dnl Determine the canonical arch-vendor-os for the build machine |
| |
128 |
| |
129 +--------------------------------------------------------------------------- |
| |
130 | Provide fallback definitions for uintX_t stuff, which is used by |
| |
131 | build/rpmfile.h and not available on all platforms. We do this by |
| |
132 | adding the same Autoconf checks file/configure already used for its |
| |
133 | original file.h. |
| |
134 | Additionally, do not try to configure in an internal |
| |
135 | beecrypt subdirectory. |
| |
136 +--------------------------------------------------------------------------- |
| |
137 Index: configure.ac |
| |
138 --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 |
| |
139 +++ configure.ac 13 Sep 2006 13:40:29 -0000 |
| |
140 @@ -1249,11 +1251,40 @@ |
| |
141 |
| |
142 AC_SUBST(OBJDUMP) |
| |
143 |
| |
144 +dnl OpenPKG: rpmfile.h (used in RPM) from file(1) needs additional checks |
| |
145 +dnl for its use of uintXX_t (which are available in file/config.h, but which |
| |
146 +dnl we cannot include into RPM because of conflicts with RPM's config.h) |
| |
147 +AC_DEFUN([AC_CHECK_TYPE_STDC], |
| |
148 +[AC_REQUIRE([AC_HEADER_STDC])dnl |
| |
149 +AC_MSG_CHECKING(for $1) |
| |
150 +AC_CACHE_VAL(ac_cv_type_$1, |
| |
151 +[AC_EGREP_CPP(dnl |
| |
152 +[(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]], |
| |
153 +[#if HAVE_STDINT_H |
| |
154 +#include <stdint.h> |
| |
155 +#endif |
| |
156 +#include <sys/types.h> |
| |
157 +#if STDC_HEADERS |
| |
158 +#include <stdlib.h> |
| |
159 +#include <stddef.h> |
| |
160 +#endif], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl |
| |
161 +AC_MSG_RESULT($ac_cv_type_$1) |
| |
162 +if test $ac_cv_type_$1 = no; then |
| |
163 + AC_DEFINE($1, $2, $1) |
| |
164 +fi]) |
| |
165 +AC_CHECK_TYPE_STDC(uint8_t, unsigned char) |
| |
166 +AC_CHECK_TYPE_STDC(uint16_t, unsigned short) |
| |
167 +AC_CHECK_TYPE_STDC(uint32_t, unsigned int) |
| |
168 + |
| |
169 +dnl OpenPKG: some strange platforms (like Unixware) really have MADV_XXX |
| |
170 +dnl but no madvise(2) function itself, so check for madvise explicitly. |
| |
171 +AC_CHECK_FUNC(madvise) |
| |
172 + |
| |
173 dnl XXX this causes popt to depend on zlib et al |
| |
174 dnl # XXX Propagate -lucb to popt ... |
| |
175 dnl export LIBS INCPATH CONFIG_SITE |
| |
176 |
| |
177 -AC_CONFIG_SUBDIRS(popt beecrypt zlib elfutils file db3) |
| |
178 +AC_CONFIG_SUBDIRS(popt zlib elfutils file db3) |
| |
179 |
| |
180 AC_OUTPUT([ Doxyfile Makefile rpmrc macros platform rpmpopt rpm.spec |
| |
181 rpmio/Makefile rpmdb/Makefile lib/Makefile build/Makefile |
| |
182 |
| |
183 +--------------------------------------------------------------------------- |
| |
184 | Remove RPM's "lib64" hack because we do not install |
| |
185 | into any system locations at all. |
| |
186 +--------------------------------------------------------------------------- |
| |
187 Index: popt/configure.ac |
| |
188 --- popt/configure.ac 27 Mar 2003 17:23:18 -0000 1.1.1.3 |
| |
189 +++ popt/configure.ac 12 May 2004 14:34:35 -0000 1.2 |
| |
190 @@ -53,9 +53,6 @@ |
| |
191 |
| |
192 dnl XXX Choose /usr/lib or /usr/lib64 for library installs. |
| |
193 MARK64= |
| |
194 -case "${target_cpu}" in |
| |
195 -x86_64*|powerpc64*|ppc64*|sparc64*|s390x*) MARK64=64 ;; |
| |
196 -esac |
| |
197 AC_SUBST(MARK64) |
| |
198 |
| |
199 AC_CHECK_HEADERS(alloca.h float.h libintl.h mcheck.h unistd.h) |
| |
200 |
| |
201 +--------------------------------------------------------------------------- |
| |
202 | Prevent (at least NetBSD's) gcc 2.95 from optimizing (at least sha1.c) |
| |
203 | and this way run into a resource (virtual memory) exhaustion situation. |
| |
204 | Not all Bourne-Shells support embedded TAB characters in |
| |
205 | here-document style constructs. Insert the TAB character indirectly |
| |
206 | to workaround problems. |
| |
207 | Additionally, there is no need to build a shared library version of |
| |
208 | Berkeley-DB. |
| |
209 | Finally, enforce the use of the standard UNIX/fcntl mutex type for |
| |
210 | full portability and to get rid of Pthread library dependencies |
| |
211 | (which especially are nasty for the external RPM API users). |
| |
212 +--------------------------------------------------------------------------- |
| |
213 Index: db3/configure |
| |
214 --- db3/configure 18 Jan 2003 14:04:22 -0000 1.1.1.4 |
| |
215 +++ db3/configure 6 Jun 2005 15:53:05 -0000 1.3 |
| |
216 @@ -7,19 +7,29 @@ |
| |
217 # XXX edit CFLAGS= ... out of invocation args ??? |
| |
218 ARGS="`echo $* | sed -e 's% [^ ]*CFLAGS=[^ ]*%%' -e 's% -[^-][^ ]*%%g' -e 's%--cache-file=.*$%%'`" |
| |
219 |
| |
220 +# prevent gcc 2.95 from optimizing (at least sha1.c) |
| |
221 +# and this way get into a resource exhaustion situation |
| |
222 +if [ ".`($CC -v; $CC --version) </dev/null 2>&1 | grep -i 'gcc'`" != . ]; then |
| |
223 + case "`$CC -dumpversion 2>/dev/null`" in |
| |
224 + 3.* ) ;; |
| |
225 + * ) CFLAGS=`echo " $CFLAGS -O0" | sed -e 's; -O[0-9]* ; ;g' -e 's;^ *;;'` ;; |
| |
226 + esac |
| |
227 +fi |
| |
228 + |
| |
229 CC="$CC" CFLAGS="$CFLAGS" $db_dist/configure $ARGS \ |
| |
230 - --enable-shared --enable-static --enable-rpc \ |
| |
231 - --with-uniquename=_rpmdb --srcdir=$db_dist |
| |
232 + --disable-shared --enable-static --enable-rpc \ |
| |
233 + --with-uniquename=_rpmdb --srcdir=$db_dist \ |
| |
234 + --with-mutex="UNIX/fcntl" --disable-largefile |
| |
235 |
| |
236 mv Makefile Makefile.orig |
| |
237 cat Makefile.orig | sed -e '/^install[:-]/c\ |
| |
238 .PHONY: listobjs\ |
| |
239 listobjs:\ |
| |
240 - @echo $(OBJS) $(C_OBJS) \ |
| |
241 +~@echo $(OBJS) $(C_OBJS) \ |
| |
242 \ |
| |
243 distdir install check:\ |
| |
244 \ |
| |
245 -db4_install: all install_setip' > Makefile |
| |
246 +db4_install: all install_setip' | tr '~' ' ' > Makefile |
| |
247 |
| |
248 mv db.h db.h.orig |
| |
249 cat db.h.orig | sed \ |
| |
250 |
| |
251 +--------------------------------------------------------------------------- |
| |
252 | Add support for BSD getmntinfo(3). |
| |
253 +--------------------------------------------------------------------------- |
| |
254 Index: lib/fs.c |
| |
255 --- lib/fs.c 4 Jun 2003 18:09:43 -0000 1.1.1.13 |
| |
256 +++ lib/fs.c 25 Nov 2004 09:32:16 -0000 1.3 |
| |
257 @@ -164,6 +164,15 @@ |
| |
258 int nextMount = 0; |
| |
259 |
| |
260 getmntinfo_r(&mounts, flags, &mntCount, &bufSize); |
| |
261 +# elif HAVE_GETMNTINFO |
| |
262 +# if defined(__NetBSD__) && (__NetBSD_Version__ > 200030000) |
| |
263 +# define statfs statvfs |
| |
264 +# endif |
| |
265 + struct statfs * mounts = NULL; |
| |
266 + int mntCount, flags = MNT_NOWAIT; |
| |
267 + int nextMount = 0; |
| |
268 + |
| |
269 + mntCount = getmntinfo(&mounts, flags); |
| |
270 # endif |
| |
271 |
| |
272 filesystems = xcalloc((numAlloced + 1), sizeof(*filesystems)); /* XXX memory leak */ |
| |
273 @@ -193,6 +202,9 @@ |
| |
274 # elif HAVE_GETMNTINFO_R |
| |
275 if (nextMount == mntCount) break; |
| |
276 mntdir = mounts[nextMount++].f_mntonname; |
| |
277 +# elif HAVE_GETMNTINFO |
| |
278 + if (nextMount == mntCount) break; |
| |
279 + mntdir = mounts[nextMount++].f_mntonname; |
| |
280 # endif |
| |
281 |
| |
282 if (stat(mntdir, &sb)) { |
| |
283 |
| |
284 +--------------------------------------------------------------------------- |
| |
285 | Add support for Compaq/HP OSF1/Tru64. |
| |
286 +--------------------------------------------------------------------------- |
| |
287 Index: misc/fnmatch.h |
| |
288 --- misc/fnmatch.h 22 Feb 2002 17:12:15 -0000 1.1.1.3 |
| |
289 +++ misc/fnmatch.h 22 Jan 2004 21:42:26 -0000 1.2 |
| |
290 @@ -55,7 +55,7 @@ |
| |
291 #define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ |
| |
292 #define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ |
| |
293 |
| |
294 -#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE |
| |
295 +#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _GNU_SOURCE || defined __osf__ |
| |
296 # define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ |
| |
297 # define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ |
| |
298 # define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ |
| |
299 |
| |
300 +--------------------------------------------------------------------------- |
| |
301 | Use more correct Autoconf based size_t check. |
| |
302 | Add support for Compaq/HP OSF1/Tru64 and SCO UnixWare. |
| |
303 +--------------------------------------------------------------------------- |
| |
304 Index: misc/glob.h |
| |
305 --- misc/glob.h 11 Mar 2000 20:59:30 -0000 1.1.1.3 |
| |
306 +++ misc/glob.h 22 Jan 2004 21:42:27 -0000 1.2 |
| |
307 @@ -46,7 +46,7 @@ |
| |
308 #endif /* C++ or ANSI C. */ |
| |
309 |
| |
310 /* We need `size_t' for the following definitions. */ |
| |
311 -#ifndef __size_t |
| |
312 +#if !defined(__size_t) && !defined(_SIZE_T_DECLARED) |
| |
313 # if defined __GNUC__ && __GNUC__ >= 2 |
| |
314 typedef __SIZE_TYPE__ __size_t; |
| |
315 # ifdef _XOPEN_SOURCE |
| |
316 @@ -74,7 +74,7 @@ |
| |
317 #define GLOB_PERIOD (1 << 7)/* Leading `.' can be matched by metachars. */ |
| |
318 |
| |
319 #if (!defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 2 || defined _BSD_SOURCE \ |
| |
320 - || defined _GNU_SOURCE) |
| |
321 + || defined _GNU_SOURCE || defined __osf__ ) |
| |
322 # define GLOB_MAGCHAR (1 << 8)/* Set in gl_flags if any metachars seen. */ |
| |
323 # define GLOB_ALTDIRFUNC (1 << 9)/* Use gl_opendir et al functions. */ |
| |
324 # define GLOB_BRACE (1 << 10)/* Expand "{a,b}" to "a" "b". */ |
| |
325 @@ -151,7 +151,8 @@ |
| |
326 `glob' returns GLOB_ABEND; if it returns zero, the error is ignored. |
| |
327 If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned. |
| |
328 Otherwise, `glob' returns zero. */ |
| |
329 -#if _FILE_OFFSET_BITS != 64 |
| |
330 +/* #if _FILE_OFFSET_BITS != 64 || defined(OPENPKG_UNIXWARE) */ |
| |
331 +#if !defined(__linux__) |
| |
332 extern int glob __P ((__const char *__pattern, int __flags, |
| |
333 int (*__errfunc) (__const char *, int), |
| |
334 glob_t *__pglob)); |
| |
335 |
| |
336 +--------------------------------------------------------------------------- |
| |
337 | Better portability. |
| |
338 +--------------------------------------------------------------------------- |
| |
339 Index: misc/glob.c |
| |
340 --- misc/glob.c 11 Mar 2000 21:13:18 -0000 1.1.1.4 |
| |
341 +++ misc/glob.c 22 Jan 2004 21:42:26 -0000 1.2 |
| |
342 @@ -813,6 +813,7 @@ |
| |
343 |
| |
344 |
| |
345 /* Free storage allocated in PGLOB by a previous `glob' call. */ |
| |
346 +#if !defined(__linux__) || (defined(__linux__) && (_FILE_OFFSET_BITS != 64) || (__GNUC__ >= 2)) |
| |
347 void |
| |
348 globfree (pglob) |
| |
349 register glob_t *pglob; |
| |
350 @@ -826,7 +827,7 @@ |
| |
351 free ((__ptr_t) pglob->gl_pathv); |
| |
352 } |
| |
353 } |
| |
354 - |
| |
355 +#endif |
| |
356 |
| |
357 /* Do a collated comparison of A and B. */ |
| |
358 static int |
| |
359 |
| |
360 +--------------------------------------------------------------------------- |
| |
361 | Add libmisc.a for platform portability. |
| |
362 +--------------------------------------------------------------------------- |
| |
363 Index: tools/Makefile.am |
| |
364 --- tools/Makefile.am 29 May 2003 17:40:17 -0000 1.1.1.14 |
| |
365 +++ tools/Makefile.am 22 Jan 2004 21:42:34 -0000 1.2 |
| |
366 @@ -22,7 +22,7 @@ |
| |
367 |
| |
368 LDADD = \ |
| |
369 $(top_builddir)/lib/librpm.la \ |
| |
370 - @INTLLIBS@ |
| |
371 + @INTLLIBS@ @LIBMISC@ |
| |
372 |
| |
373 staticLDFLAGS = @LDFLAGS_STATIC@ @LDFLAGS_NPTL@ |
| |
374 |
| |
375 |
| |
376 +--------------------------------------------------------------------------- |
| |
377 | Add libmisc.a for platform portability. |
| |
378 +--------------------------------------------------------------------------- |
| |
379 Index: tools/Makefile.in |
| |
380 --- tools/Makefile.in 16 Jul 2003 17:05:51 -0000 1.1.1.20 |
| |
381 +++ tools/Makefile.in 22 Jan 2004 21:42:35 -0000 1.2 |
| |
382 @@ -275,7 +275,7 @@ |
| |
383 |
| |
384 LDADD = \ |
| |
385 $(top_builddir)/lib/librpm.la \ |
| |
386 - @INTLLIBS@ |
| |
387 + @INTLLIBS@ @LIBMISC@ |
| |
388 |
| |
389 |
| |
390 staticLDFLAGS = @LDFLAGS_STATIC@ @LDFLAGS_NPTL@ |
| |
391 |
| |
392 +--------------------------------------------------------------------------- |
| |
393 | Drop GCC "inline" attribute if not compiling with GCC. |
| |
394 | Workaround some other GCC'isms, too. |
| |
395 | Do not take over "const" replacements from Zlib. |
| |
396 +--------------------------------------------------------------------------- |
| |
397 Index: file/system.h |
| |
398 --- file/system.h 24 Jan 2003 19:41:56 -0000 1.1.1.1 |
| |
399 +++ file/system.h 6 Jun 2005 15:53:05 -0000 1.4 |
| |
400 @@ -13,6 +13,9 @@ |
| |
401 #endif |
| |
402 |
| |
403 #include <sys/types.h> |
| |
404 +#ifdef HAVE_INTTYPES_H |
| |
405 +#include <inttypes.h> |
| |
406 +#endif |
| |
407 |
| |
408 #include <sys/stat.h> |
| |
409 #include <stdio.h> |
| |
410 @@ -53,6 +56,8 @@ |
| |
411 #else |
| |
412 #if HAVE_ERROR && HAVE_ERROR_H |
| |
413 #include <error.h> |
| |
414 +#else |
| |
415 +extern void error(int status, int errnum, const char *format, ...); |
| |
416 #endif |
| |
417 #endif |
| |
418 |
| |
419 @@ -194,6 +199,7 @@ |
| |
420 |
| |
421 #ifdef HAVE_LIBZ |
| |
422 #include <zlib.h> |
| |
423 +#undef const |
| |
424 #endif |
| |
425 |
| |
426 #ifndef HAVE_STRERROR |
| |
427 @@ -246,7 +252,11 @@ |
| |
428 */ |
| |
429 /*@-shadow@*/ |
| |
430 /*@unused@*/ /*@exits@*/ /*@only@*/ |
| |
431 +#if defined(__GNUC__) |
| |
432 static inline void * vmefail(/*@unused@*/ size_t nb) |
| |
433 +#else |
| |
434 +static void * vmefail(/*@unused@*/ size_t nb) |
| |
435 +#endif |
| |
436 /*@globals fileSystem @*/ |
| |
437 /*@modifies fileSystem @*/ |
| |
438 { |
| |
439 @@ -286,9 +296,33 @@ |
| |
440 |
| |
441 #if !defined(__LCLINT__) |
| |
442 /* Memory allocation via macro defs to get meaningful locations from mtrace() */ |
| |
443 +#if defined(__GNUC__) |
| |
444 #define xmalloc(_size) (malloc(_size) ? : vmefail(0)) |
| |
445 #define xcalloc(_nmemb, _size) (calloc((_nmemb), (_size)) ? : vmefail(0)) |
| |
446 #define xrealloc(_ptr, _size) (realloc((_ptr), (_size)) ? : vmefail(0)) |
| |
447 +#else |
| |
448 +static void *xmalloc(size_t size) |
| |
449 +{ |
| |
450 + void *vp = malloc(size); |
| |
451 + if (vp == NULL) |
| |
452 + vmefail(0); |
| |
453 + return vp; |
| |
454 +} |
| |
455 +static void *xcalloc(size_t number, size_t size) |
| |
456 +{ |
| |
457 + void *vp = calloc(number, size); |
| |
458 + if (vp == NULL) |
| |
459 + vmefail(0); |
| |
460 + return vp; |
| |
461 +} |
| |
462 +static void *xrealloc(void *ptr, size_t size) |
| |
463 +{ |
| |
464 + void *vp = realloc(ptr, size); |
| |
465 + if (vp == NULL) |
| |
466 + vmefail(0); |
| |
467 + return vp; |
| |
468 +} |
| |
469 +#endif |
| |
470 #define xstrdup(_str) (strcpy(xmalloc(strlen(_str)+1), (_str))) |
| |
471 #endif |
| |
472 |
| |
473 @@ -314,9 +348,14 @@ |
| |
474 |
| |
475 #if defined(__LCLINT__) |
| |
476 #define FILE_RCSID(id) |
| |
477 -#else |
| |
478 +#elif defined(__GNUC__) |
| |
479 #define FILE_RCSID(id) \ |
| |
480 static inline const char *rcsid(const char *p) { \ |
| |
481 + return rcsid(p = id); \ |
| |
482 +} |
| |
483 +#else |
| |
484 +#define FILE_RCSID(id) \ |
| |
485 +static const char *rcsid(const char *p) { \ |
| |
486 return rcsid(p = id); \ |
| |
487 } |
| |
488 #endif |
| |
489 |
| |
490 +--------------------------------------------------------------------------- |
| |
491 | Use GCC extensional features only if compiled with GCC. |
| |
492 +--------------------------------------------------------------------------- |
| |
493 Index: file/file.h |
| |
494 --- file/file.h 24 Jan 2003 19:41:56 -0000 1.1.1.1 |
| |
495 +++ file/file.h 22 Jan 2004 21:42:22 -0000 1.2 |
| |
496 @@ -95,7 +95,11 @@ |
| |
497 } value; /* either number or string */ |
| |
498 uint32_t mask; /* mask before comparison with value */ |
| |
499 char desc[MAXDESC]; /* description */ |
| |
500 +#if defined(__GNUC__) |
| |
501 } __attribute__((__packed__)); |
| |
502 +#else |
| |
503 +}; |
| |
504 +#endif |
| |
505 |
| |
506 #define BIT(A) (1 << (A)) |
| |
507 #define STRING_IGNORE_LOWERCASE BIT(0) |
| |
508 |
| |
509 +--------------------------------------------------------------------------- |
| |
510 | Add int32_t detection and automatic fallback support. |
| |
511 +--------------------------------------------------------------------------- |
| |
512 Index: file/config.h.in |
| |
513 --- file/config.h.in 7 Mar 2003 19:39:18 -0000 1.1.1.1 |
| |
514 +++ file/config.h.in 13 Sep 2006 13:40:49 -0000 |
| |
515 @@ -106,6 +106,9 @@ |
| |
516 /* Define to 1 if you have the <unistd.h> header file. */ |
| |
517 #undef HAVE_UNISTD_H |
| |
518 |
| |
519 +/* Define to 1 if you have the `vsnprintf' function. */ |
| |
520 +#undef HAVE_VSNPRINTF |
| |
521 + |
| |
522 /* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>. |
| |
523 */ |
| |
524 #undef MAJOR_IN_MKDEV |
| |
525 @@ -162,12 +165,16 @@ |
| |
526 /* Define to empty if `const' does not conform to ANSI C. */ |
| |
527 #undef const |
| |
528 |
| |
529 +/* int32_t */ |
| |
530 +#undef int32_t |
| |
531 + |
| |
532 /* Define to `long' if <sys/types.h> does not define. */ |
| |
533 #undef off_t |
| |
534 |
| |
535 /* Define to `unsigned' if <sys/types.h> does not define. */ |
| |
536 #undef size_t |
| |
537 |
| |
538 +#ifndef HAVE_STDINT_H |
| |
539 /* uint16_t */ |
| |
540 #undef uint16_t |
| |
541 |
| |
542 @@ -179,3 +186,4 @@ |
| |
543 |
| |
544 /* uint8_t */ |
| |
545 #undef uint8_t |
| |
546 +#endif |
| |
547 |
| |
548 +--------------------------------------------------------------------------- |
| |
549 | Add int32_t detection and automatic fallback support. |
| |
550 +--------------------------------------------------------------------------- |
| |
551 Index: file/configure.ac |
| |
552 --- file/configure.ac 1 Dec 2002 21:34:06 -0000 1.1.1.1 |
| |
553 +++ file/configure.ac 6 Jun 2005 15:53:05 -0000 1.2 |
| |
554 @@ -92,6 +92,7 @@ |
| |
555 AC_CHECK_TYPE_STDC(uint8_t, unsigned char) |
| |
556 AC_CHECK_TYPE_STDC(uint16_t, unsigned short) |
| |
557 AC_CHECK_TYPE_STDC(uint32_t, unsigned int) |
| |
558 +AC_CHECK_TYPE_STDC(int32_t, int) |
| |
559 AC_C_LONG_LONG |
| |
560 if test $ac_cv_c_long_long = yes; then |
| |
561 long64='unsigned long long'; |
| |
562 @@ -107,7 +108,7 @@ |
| |
563 AC_CHECK_SIZEOF_STDC_HEADERS(uint64_t, 0) |
| |
564 |
| |
565 dnl Checks for functions |
| |
566 -AC_CHECK_FUNCS(error mtrace mkstemp mmap strdup strerror strtoul) |
| |
567 +AC_CHECK_FUNCS(error mtrace mkstemp mmap strdup strerror strtoul vsnprintf) |
| |
568 |
| |
569 dnl Checks for libraries |
| |
570 AC_CHECK_LIB(z, gzopen) |
| |
571 |
| |
572 +--------------------------------------------------------------------------- |
| |
573 | Add int32_t detection and automatic fallback support. |
| |
574 +--------------------------------------------------------------------------- |
| |
575 Index: file/configure |
| |
576 --- file/configure 16 Jul 2003 17:05:25 -0000 1.1.1.2 |
| |
577 +++ file/configure 6 Jun 2005 15:53:05 -0000 1.2 |
| |
578 @@ -10847,6 +10847,46 @@ |
| |
579 |
| |
580 fi |
| |
581 |
| |
582 +echo "$as_me:$LINENO: checking for int32_t" >&5 |
| |
583 +echo $ECHO_N "checking for int32_t... $ECHO_C" >&6 |
| |
584 +if test "${ac_cv_type_int32_t+set}" = set; then |
| |
585 + echo $ECHO_N "(cached) $ECHO_C" >&6 |
| |
586 +else |
| |
587 + cat >conftest.$ac_ext <<_ACEOF |
| |
588 +#line $LINENO "configure" |
| |
589 +/* confdefs.h. */ |
| |
590 +_ACEOF |
| |
591 +cat confdefs.h >>conftest.$ac_ext |
| |
592 +cat >>conftest.$ac_ext <<_ACEOF |
| |
593 +/* end confdefs.h. */ |
| |
594 +#if HAVE_STDINT_H |
| |
595 +#include <stdint.h> |
| |
596 +#endif |
| |
597 +#include <sys/types.h> |
| |
598 +#if STDC_HEADERS |
| |
599 +#include <stdlib.h> |
| |
600 +#include <stddef.h> |
| |
601 +#endif |
| |
602 +_ACEOF |
| |
603 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | |
| |
604 + $EGREP "(^|[^a-zA-Z_0-9])int32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then |
| |
605 + ac_cv_type_int32_t=yes |
| |
606 +else |
| |
607 + ac_cv_type_int32_t=no |
| |
608 +fi |
| |
609 +rm -f conftest* |
| |
610 + |
| |
611 +fi |
| |
612 +echo "$as_me:$LINENO: result: $ac_cv_type_int32_t" >&5 |
| |
613 +echo "${ECHO_T}$ac_cv_type_int32_t" >&6 |
| |
614 +if test $ac_cv_type_int32_t = no; then |
| |
615 + |
| |
616 +cat >>confdefs.h <<\_ACEOF |
| |
617 +#define int32_t int |
| |
618 +_ACEOF |
| |
619 + |
| |
620 +fi |
| |
621 + |
| |
622 echo "$as_me:$LINENO: checking for long long" >&5 |
| |
623 echo $ECHO_N "checking for long long... $ECHO_C" >&6 |
| |
624 if test "${ac_cv_c_long_long+set}" = set; then |
| |
625 @@ -11220,7 +11260,8 @@ |
| |
626 |
| |
627 |
| |
628 |
| |
629 -for ac_func in error mtrace mkstemp mmap strdup strerror strtoul |
| |
630 + |
| |
631 +for ac_func in error mtrace mkstemp mmap strdup strerror strtoul vsnprintf |
| |
632 do |
| |
633 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` |
| |
634 echo "$as_me:$LINENO: checking for $ac_func" >&5 |
| |
635 |
| |
636 +--------------------------------------------------------------------------- |
| |
637 | Fallback to vsprintf(3) if vsnprintf(3) does not exist. |
| |
638 +--------------------------------------------------------------------------- |
| |
639 Index: file/print.c |
| |
640 --- file/print.c 24 Jan 2003 19:41:56 -0000 1.1.1.1 |
| |
641 +++ file/print.c 6 Jun 2005 15:53:05 -0000 1.2 |
| |
642 @@ -187,7 +187,11 @@ |
| |
643 |
| |
644 va_start(va, f); |
| |
645 /*@-boundswrite@*/ |
| |
646 +#ifdef HAVE_VSNPRINTF |
| |
647 rc = vsnprintf(fm->obp, fm->nob, f, va); |
| |
648 +#else |
| |
649 + rc = vsprintf(fm->obp, f, va); |
| |
650 +#endif |
| |
651 /*@=boundswrite@*/ |
| |
652 va_end(va); |
| |
653 |
| |
654 |
| |
655 +--------------------------------------------------------------------------- |
| |
656 | Use GNU libtool's weaker -static (link with own static libraries) |
| |
657 | instead of the strong -all-static (link even with static libc, etc), |
| |
658 | because OpenPKG does not need to be fully static. |
| |
659 +--------------------------------------------------------------------------- |
| |
660 Index: rpmdb/Makefile.am |
| |
661 --- rpmdb/Makefile.am 2 Jul 2003 20:14:07 -0000 1.1.1.7 |
| |
662 +++ rpmdb/Makefile.am 22 Jan 2004 21:42:29 -0000 1.2 |
| |
663 @@ -18,7 +18,7 @@ |
| |
664 EXTRA_PROGRAMS = tjfn |
| |
665 |
| |
666 tjfn_SOURCES = tjfn.c |
| |
667 -tjfn_LDFLAGS = -all-static |
| |
668 +tjfn_LDFLAGS = -static |
| |
669 tjfn_LDADD = librpmdb.la |
| |
670 |
| |
671 pkgincdir = $(pkgincludedir) |
| |
672 @@ -180,4 +180,4 @@ |
| |
673 $(LINT) $(DEFS) $(INCLUDES) $(librpmdb_la_SOURCES) |
| |
674 |
| |
675 tdbi: librpmdb.la tdbi.o |
| |
676 - $(LINK) -all-static $@.o $< $(mylibpaths) $(mylibs) $(LIBS) |
| |
677 + $(LINK) -static $@.o $< $(mylibpaths) $(mylibs) $(LIBS) |
| |
678 |
| |
679 +--------------------------------------------------------------------------- |
| |
680 | Use GNU libtool's weaker -static (link with own static libraries) |
| |
681 | instead of the strong -all-static (link even with static libc, etc), |
| |
682 | because OpenPKG does not need to be fully static. |
| |
683 +--------------------------------------------------------------------------- |
| |
684 Index: rpmdb/Makefile.in |
| |
685 --- rpmdb/Makefile.in 16 Jul 2003 17:05:48 -0000 1.1.1.7 |
| |
686 +++ rpmdb/Makefile.in 22 Jan 2004 21:42:29 -0000 1.2 |
| |
687 @@ -273,7 +273,7 @@ |
| |
688 EXTRA_PROGRAMS = tjfn |
| |
689 |
| |
690 tjfn_SOURCES = tjfn.c |
| |
691 -tjfn_LDFLAGS = -all-static |
| |
692 +tjfn_LDFLAGS = -static |
| |
693 tjfn_LDADD = librpmdb.la |
| |
694 |
| |
695 pkgincdir = $(pkgincludedir) |
| |
696 @@ -952,7 +952,7 @@ |
| |
697 $(LINT) $(DEFS) $(INCLUDES) $(librpmdb_la_SOURCES) |
| |
698 |
| |
699 tdbi: librpmdb.la tdbi.o |
| |
700 - $(LINK) -all-static $@.o $< $(mylibpaths) $(mylibs) $(LIBS) |
| |
701 + $(LINK) -static $@.o $< $(mylibpaths) $(mylibs) $(LIBS) |
| |
702 # Tell versions [3.59,3.63) of GNU make to not export all variables. |
| |
703 # Otherwise a system limit (for SysV at least) may be exceeded. |
| |
704 .NOEXPORT: |
| |
705 |
| |
706 +--------------------------------------------------------------------------- |
| |
707 | Use GNU libtool's weaker -static (link with own static libraries) |
| |
708 | instead of the strong -all-static (link even with static libc, etc), |
| |
709 | because OpenPKG does not need to be fully static. |
| |
710 +--------------------------------------------------------------------------- |
| |
711 Index: rpmio/Makefile.am |
| |
712 --- rpmio/Makefile.am 5 Jun 2003 12:05:23 -0000 1.1.1.9 |
| |
713 +++ rpmio/Makefile.am 22 Jan 2004 21:42:31 -0000 1.2 |
| |
714 @@ -68,27 +68,27 @@ |
| |
715 tdigest_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
716 |
| |
717 tdir_SOURCES = tdir.c |
| |
718 -tdir_LDFLAGS = -all-static |
| |
719 +tdir_LDFLAGS = -static |
| |
720 tdir_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
721 |
| |
722 tfts_SOURCES = tfts.c |
| |
723 -tfts_LDFLAGS = -all-static |
| |
724 +tfts_LDFLAGS = -static |
| |
725 tfts_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
726 |
| |
727 tglob_SOURCES = tglob.c |
| |
728 -tglob_LDFLAGS = -all-static |
| |
729 +tglob_LDFLAGS = -static |
| |
730 tglob_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
731 |
| |
732 tinv_SOURCES = tinv.c |
| |
733 -tinv_LDFLAGS = -all-static |
| |
734 +tinv_LDFLAGS = -static |
| |
735 tinv_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
736 |
| |
737 tkey_SOURCES = tkey.c |
| |
738 -tkey_LDFLAGS = -all-static |
| |
739 +tkey_LDFLAGS = -static |
| |
740 tkey_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
741 |
| |
742 tring_SOURCES = tring.c |
| |
743 -tring_LDFLAGS = -all-static |
| |
744 +tring_LDFLAGS = -static |
| |
745 tring_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
746 |
| |
747 trpmio_SOURCES = trpmio.c |
| |
748 |
| |
749 +--------------------------------------------------------------------------- |
| |
750 | Use GNU libtool's weaker -static (link with own static libraries) |
| |
751 | instead of the strong -all-static (link even with static libc, etc), |
| |
752 | because OpenPKG does not need to be fully static. |
| |
753 | Additionally, remove hard-coded Linux'ism of linking against POSIX |
| |
754 | rt/pthread libraries (is not needed even under Linux itself) and |
| |
755 | make sure the build does not break by an empty argument list when |
| |
756 | iterating over (the not existing) BeeCrypt objects. |
| |
757 +--------------------------------------------------------------------------- |
| |
758 Index: rpmio/Makefile.in |
| |
759 --- rpmio/Makefile.in 16 Jul 2003 17:05:49 -0000 1.1.1.9 |
| |
760 +++ rpmio/Makefile.in 22 Jan 2004 21:42:31 -0000 1.2 |
| |
761 @@ -288,8 +288,7 @@ |
| |
762 librpmio_la_LDFLAGS = -release 4.2 \ |
| |
763 @WITH_BEECRYPT_LIB@ \ |
| |
764 $(top_builddir)/file/libfmagic.la \ |
| |
765 - @WITH_ZLIB_LIB@ \ |
| |
766 - -lrt -lpthread |
| |
767 + @WITH_ZLIB_LIB@ |
| |
768 |
| |
769 librpmio_la_LIBADD = $(BEECRYPTLOBJS) |
| |
770 librpmio_la_DEPENDENCIES = .created |
| |
771 @@ -298,27 +297,27 @@ |
| |
772 tdigest_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
773 |
| |
774 tdir_SOURCES = tdir.c |
| |
775 -tdir_LDFLAGS = -all-static |
| |
776 +tdir_LDFLAGS = -static |
| |
777 tdir_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
778 |
| |
779 tfts_SOURCES = tfts.c |
| |
780 -tfts_LDFLAGS = -all-static |
| |
781 +tfts_LDFLAGS = -static |
| |
782 tfts_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
783 |
| |
784 tglob_SOURCES = tglob.c |
| |
785 -tglob_LDFLAGS = -all-static |
| |
786 +tglob_LDFLAGS = -static |
| |
787 tglob_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
788 |
| |
789 tinv_SOURCES = tinv.c |
| |
790 -tinv_LDFLAGS = -all-static |
| |
791 +tinv_LDFLAGS = -static |
| |
792 tinv_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
793 |
| |
794 tkey_SOURCES = tkey.c |
| |
795 -tkey_LDFLAGS = -all-static |
| |
796 +tkey_LDFLAGS = -static |
| |
797 tkey_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
798 |
| |
799 tring_SOURCES = tring.c |
| |
800 -tring_LDFLAGS = -all-static |
| |
801 +tring_LDFLAGS = -static |
| |
802 tring_LDADD = librpmio.la $(top_builddir)/popt/libpopt.la |
| |
803 |
| |
804 trpmio_SOURCES = trpmio.c |
| |
805 @@ -743,8 +742,8 @@ |
| |
806 .created: |
| |
807 if test X"@WITH_BEECRYPT_SUBDIR@" != X; then \ |
| |
808 ${MAKE} -C $(top_builddir)/@WITH_BEECRYPT_SUBDIR@ listobjs ; \ |
| |
809 - for lo in $(BEECRYPTLOBJS); do \ |
| |
810 - [ -f $$lo ] || $(LN_S) $(top_builddir)/@WITH_BEECRYPT_SUBDIR@/$$lo $$lo ; \ |
| |
811 + for lo in $(BEECRYPTLOBJS) ''; do \ |
| |
812 + [ ".$$lo" = . ] || [ -f $$lo ] || $(LN_S) $(top_builddir)/@WITH_BEECRYPT_SUBDIR@/$$lo $$lo ; \ |
| |
813 done \ |
| |
814 fi |
| |
815 touch $@ |
| |
816 |
| |
817 +--------------------------------------------------------------------------- |
| |
818 | Add Unixware support. |
| |
819 +--------------------------------------------------------------------------- |
| |
820 Index: rpmio/fts.h |
| |
821 --- rpmio/fts.h 18 Jan 2003 16:13:17 -0000 1.1.1.3 |
| |
822 +++ rpmio/fts.h 22 Jan 2004 21:42:32 -0000 1.2 |
| |
823 @@ -51,7 +51,7 @@ |
| |
824 # define _LARGEFILE64_SOURCE |
| |
825 #endif |
| |
826 |
| |
827 -#if defined(sun) |
| |
828 +#if defined(sun) || defined(OPENPKG_UNIXWARE) |
| |
829 # define _D_EXACT_NAMLEN(d) ((d)->d_reclen) |
| |
830 #endif |
| |
831 |
| |
832 |
| |
833 +--------------------------------------------------------------------------- |
| |
834 | Add FreeBSD/NetBSD/OpenBSD support. |
| |
835 | Workaround some GCC'isms. |
| |
836 +--------------------------------------------------------------------------- |
| |
837 Index: rpmio/fts.c |
| |
838 --- rpmio/fts.c 18 Jan 2003 16:13:17 -0000 1.1.1.3 |
| |
839 +++ rpmio/fts.c 8 Jun 2005 13:16:25 -0000 1.5 |
| |
840 @@ -34,6 +34,8 @@ |
| |
841 static char sccsid[] = "@(#)fts.c 8.6 (Berkeley) 8/14/94"; |
| |
842 #endif /* LIBC_SCCS and not lint */ |
| |
843 |
| |
844 +#include <limits.h> |
| |
845 + |
| |
846 #if defined(_LIBC) |
| |
847 #include <sys/param.h> |
| |
848 #include <include/sys/stat.h> |
| |
849 @@ -45,20 +47,49 @@ |
| |
850 #include <string.h> |
| |
851 #include <unistd.h> |
| |
852 #else |
| |
853 -#if defined(hpux) |
| |
854 +#if defined(OPENPKG_HPUX) |
| |
855 # define _INCLUDE_POSIX_SOURCE |
| |
856 # define __errno_location() (&errno) |
| |
857 # define dirfd(dirp) -1 |
| |
858 # define stat64 stat |
| |
859 # define _STAT_VER 0 |
| |
860 # define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) |
| |
861 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen) |
| |
862 #endif |
| |
863 -#if defined(sun) |
| |
864 +#if defined(sun) || defined(OPENPKG_UNIXWARE) |
| |
865 # define __errno_location() (&errno) |
| |
866 # define dirfd(dirp) -1 |
| |
867 # define _STAT_VER 0 |
| |
868 # define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) |
| |
869 #endif |
| |
870 +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENPKG_DARWIN) |
| |
871 +# define __errno_location() (&errno) |
| |
872 +# define stat64 stat |
| |
873 +# define _STAT_VER 0 |
| |
874 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) |
| |
875 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen) |
| |
876 +#endif |
| |
877 +#if defined(__osf__) |
| |
878 +# define __errno_location() (&errno) |
| |
879 +# define dirfd(dirp) -1 |
| |
880 +# define stat64 stat |
| |
881 +# define _STAT_VER 0 |
| |
882 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) |
| |
883 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen) |
| |
884 +#endif |
| |
885 +#if defined(OPENPKG_IRIX64) |
| |
886 +# define __errno_location() (&errno) |
| |
887 +# define dirfd(dirp) -1 |
| |
888 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) |
| |
889 +# define _D_EXACT_NAMLEN(d) ((d)->d_reclen) |
| |
890 +#endif |
| |
891 +#if defined(OPENPKG_AIX) |
| |
892 +# define __errno_location() (&errno) |
| |
893 +# define _STAT_VER 0 |
| |
894 +# define dirfd(dirp) ((dirp)->dd_fd) |
| |
895 +# define __fxstat64(_stat_ver, _fd, _sbp) fstat((_fd), (_sbp)) |
| |
896 +# define _D_EXACT_NAMLEN(d) ((d)->d_namlen) |
| |
897 +#endif |
| |
898 #include "system.h" |
| |
899 #include "fts.h" |
| |
900 #include "rpmio.h" |
| |
901 @@ -73,7 +104,12 @@ |
| |
902 /* Largest alignment size needed, minus one. |
| |
903 Usually long double is the worst case. */ |
| |
904 #ifndef ALIGNBYTES |
| |
905 +#if defined(__GNUC__) |
| |
906 #define ALIGNBYTES (__alignof__ (long double) - 1) |
| |
907 +#else |
| |
908 +/* not accurate enough (usually too large), but sufficient (and this way equal safe) */ |
| |
909 +#define ALIGNBYTES (sizeof (long double) - 1) |
| |
910 +#endif |
| |
911 #endif |
| |
912 /* Align P to that size. */ |
| |
913 #ifndef ALIGN |
| |
914 @@ -107,9 +143,13 @@ |
| |
915 /*@modifies fileSystem, internalState @*/; |
| |
916 |
| |
917 #ifndef MAX |
| |
918 +#if defined(__GNUC__) |
| |
919 #define MAX(a, b) ({ __typeof__ (a) _a = (a); \ |
| |
920 __typeof__ (b) _b = (b); \ |
| |
921 _a > _b ? _a : _b; }) |
| |
922 +#else |
| |
923 +#define MAX(a, b) ((a) > (b) ? (a) : (b)) |
| |
924 +#endif |
| |
925 #endif |
| |
926 |
| |
927 #define ISDOT(a) (a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2]))) |
| |
928 |
| |
929 +--------------------------------------------------------------------------- |
| |
930 | Remove inclusion of system <glob.h> because RPM uses its own glob(3) |
| |
931 | implementation and this can conflict with the system one. |
| |
932 +--------------------------------------------------------------------------- |
| |
933 Index: rpmio/rpmio.h |
| |
934 --- rpmio/rpmio.h 12 Jun 2003 18:22:18 -0000 1.1.1.7 |
| |
935 +++ rpmio/rpmio.h 22 Jan 2004 21:42:33 -0000 1.2 |
| |
936 @@ -9,9 +9,6 @@ |
| |
937 #include <sys/types.h> |
| |
938 #include <sys/stat.h> |
| |
939 #include <dirent.h> |
| |
940 -/*@-noparams@*/ |
| |
941 -#include <glob.h> |
| |
942 -/*@=noparams@*/ |
| |
943 #include <stdio.h> |
| |
944 #include <stdlib.h> |
| |
945 #include <unistd.h> |
| |
946 |
| |
947 +--------------------------------------------------------------------------- |
| |
948 | Make this whole "dirent" fiddling at least working on |
| |
949 | FreeBSD/NetBSD/OpenBSD, Solaris, HPUX and Unixware. This certainly |
| |
950 | is a bad corner of RPM which inherently leads to portability |
| |
951 | problems. |
| |
952 +--------------------------------------------------------------------------- |
| |
953 Index: rpmio/rpmrpc.c |
| |
954 --- rpmio/rpmrpc.c 29 May 2003 22:14:04 -0000 1.1.1.8 |
| |
955 +++ rpmio/rpmrpc.c 8 Jun 2005 13:16:26 -0000 1.5 |
| |
956 @@ -1079,6 +1079,8 @@ |
| |
957 return rc; |
| |
958 } |
| |
959 |
| |
960 +#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(sun) && !defined(OPENPKG_DARWIN) |
| |
961 + |
| |
962 struct __dirstream { |
| |
963 int fd; /* File descriptor. */ |
| |
964 char * data; /* Directory block. */ |
| |
965 @@ -1091,6 +1093,8 @@ |
| |
966 #endif |
| |
967 }; |
| |
968 |
| |
969 +#endif |
| |
970 + |
| |
971 #if !defined(DT_DIR) |
| |
972 # define DT_UNKNOWN 0 |
| |
973 # define DT_FIFO 1 |
| |
974 @@ -1101,14 +1105,30 @@ |
| |
975 # define DT_LNK 10 |
| |
976 # define DT_SOCK 12 |
| |
977 # define DT_WHT 14 |
| |
978 -typedef struct __dirstream * FTPDIR; |
| |
979 -#else |
| |
980 -typedef DIR * FTPDIR; |
| |
981 #endif |
| |
982 |
| |
983 +struct mydirstreament { |
| |
984 + unsigned char type; |
| |
985 + char *name; |
| |
986 +}; |
| |
987 +struct mydirstream { |
| |
988 + DIR dir; |
| |
989 + struct dirent ent; |
| |
990 + unsigned int offset; |
| |
991 + unsigned int size; |
| |
992 + struct mydirstreament av[1]; |
| |
993 +}; |
| |
994 +typedef struct mydirstream *FTPDIR; |
| |
995 + |
| |
996 /*@unchecked@*/ |
| |
997 static int ftpmagicdir = 0x8440291; |
| |
998 -#define ISFTPMAGIC(_dir) (!memcmp((_dir), &ftpmagicdir, sizeof(ftpmagicdir))) |
| |
999 +#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(sun) && !defined(OPENPKG_UNIXWARE) && !defined(OPENPKG_DARWIN) && !defined(__osf__) && !defined(OPENPKG_IRIX64) && !defined(OPENPKG_HPUX) && !defined(OPENPKG_AIX) |
| |
1000 +#define SETFTPMAGIC(_dir) ((_dir)->fd) = ftpmagicdir |
| |
1001 +#define ISFTPMAGIC(_dir) ((_dir)->fd == ftpmagicdir) |
| |
1002 +#else |
| |
1003 +#define SETFTPMAGIC(_dir) ((_dir)->dd_fd) = ftpmagicdir |
| |
1004 +#define ISFTPMAGIC(_dir) ((_dir)->dd_fd == ftpmagicdir) |
| |
1005 +#endif |
| |
1006 |
| |
1007 /*@-boundswrite@*/ |
| |
1008 /*@-type@*/ /* FIX: abstract DIR */ |
| |
1009 @@ -1121,8 +1141,7 @@ |
| |
1010 struct dirent * dp; |
| |
1011 size_t nb; |
| |
1012 const char * s, * sb, * se; |
| |
1013 - const char ** av; |
| |
1014 - unsigned char * dt; |
| |
1015 + struct mydirstreament * av; |
| |
1016 char * t; |
| |
1017 int ac; |
| |
1018 int c; |
| |
1019 @@ -1165,28 +1184,22 @@ |
| |
1020 } |
| |
1021 } |
| |
1022 |
| |
1023 - nb += sizeof(*mydir) + sizeof(*dp) + ((ac + 1) * sizeof(*av)) + (ac + 1); |
| |
1024 + nb = sizeof(*mydir) + (ac * sizeof(*av)) + nb; |
| |
1025 mydir = xcalloc(1, nb); |
| |
1026 /*@-abstract@*/ |
| |
1027 - dp = (struct dirent *) (mydir + 1); |
| |
1028 - av = (const char **) (dp + 1); |
| |
1029 - dt = (char *) (av + (ac + 1)); |
| |
1030 - t = (char *) (dt + ac + 1); |
| |
1031 + dp = &mydir->ent; |
| |
1032 + av = &mydir->av[0]; |
| |
1033 + t = (char *)&mydir->av[ac+1]; |
| |
1034 /*@=abstract@*/ |
| |
1035 |
| |
1036 - mydir->fd = ftpmagicdir; |
| |
1037 -/*@-usereleased@*/ |
| |
1038 - mydir->data = (char *) dp; |
| |
1039 -/*@=usereleased@*/ |
| |
1040 - mydir->allocation = nb; |
| |
1041 - mydir->size = ac; |
| |
1042 - mydir->offset = -1; |
| |
1043 - mydir->filepos = 0; |
| |
1044 + SETFTPMAGIC((DIR *)mydir); |
| |
1045 + mydir->size = ac; |
| |
1046 + mydir->offset = 0; |
| |
1047 |
| |
1048 ac = 0; |
| |
1049 /*@-dependenttrans -unrecog@*/ |
| |
1050 - dt[ac] = DT_DIR; av[ac++] = t; t = stpcpy(t, "."); t++; |
| |
1051 - dt[ac] = DT_DIR; av[ac++] = t; t = stpcpy(t, ".."); t++; |
| |
1052 + av[ac].type = DT_DIR; av[ac].name = t; t = stpcpy(t, "."); ++ac; |
| |
1053 + av[ac].type = DT_DIR; av[ac].name = t; t = stpcpy(t, ".."); ++ac; |
| |
1054 /*@=dependenttrans =unrecog@*/ |
| |
1055 sb = NULL; |
| |
1056 s = se = ftpBuf; |
| |
1057 @@ -1198,34 +1211,34 @@ |
| |
1058 /*@switchbreak@*/ break; |
| |
1059 case '\r': |
| |
1060 /*@-dependenttrans@*/ |
| |
1061 - av[ac] = t; |
| |
1062 + av[ac].name = t; |
| |
1063 /*@=dependenttrans@*/ |
| |
1064 if (sb == NULL) { |
| |
1065 /*@-unrecog@*/ |
| |
1066 switch(*s) { |
| |
1067 case 'p': |
| |
1068 - dt[ac] = DT_FIFO; |
| |
1069 + av[ac].type = DT_FIFO; |
| |
1070 /*@innerbreak@*/ break; |
| |
1071 case 'c': |
| |
1072 - dt[ac] = DT_CHR; |
| |
1073 + av[ac].type = DT_CHR; |
| |
1074 /*@innerbreak@*/ break; |
| |
1075 case 'd': |
| |
1076 - dt[ac] = DT_DIR; |
| |
1077 + av[ac].type = DT_DIR; |
| |
1078 /*@innerbreak@*/ break; |
| |
1079 case 'b': |
| |
1080 - dt[ac] = DT_BLK; |
| |
1081 + av[ac].type = DT_BLK; |
| |
1082 /*@innerbreak@*/ break; |
| |
1083 case '-': |
| |
1084 - dt[ac] = DT_REG; |
| |
1085 + av[ac].type = DT_REG; |
| |
1086 /*@innerbreak@*/ break; |
| |
1087 case 'l': |
| |
1088 - dt[ac] = DT_LNK; |
| |
1089 + av[ac].type = DT_LNK; |
| |
1090 /*@innerbreak@*/ break; |
| |
1091 case 's': |
| |
1092 - dt[ac] = DT_SOCK; |
| |
1093 + av[ac].type = DT_SOCK; |
| |
1094 /*@innerbreak@*/ break; |
| |
1095 default: |
| |
1096 - dt[ac] = DT_UNKNOWN; |
| |
1097 + av[ac].type = DT_UNKNOWN; |
| |
1098 /*@innerbreak@*/ break; |
| |
1099 } |
| |
1100 /*@=unrecog@*/ |
| |
1101 @@ -1243,7 +1256,7 @@ |
| |
1102 /*@switchbreak@*/ break; |
| |
1103 } |
| |
1104 } |
| |
1105 - av[ac] = NULL; |
| |
1106 + av[ac].name = NULL; |
| |
1107 |
| |
1108 /*@-kepttrans@*/ |
| |
1109 return (DIR *) mydir; |
| |
1110 @@ -1258,43 +1271,50 @@ |
| |
1111 { |
| |
1112 FTPDIR mydir = (FTPDIR)dir; |
| |
1113 struct dirent * dp; |
| |
1114 - const char ** av; |
| |
1115 - unsigned char * dt; |
| |
1116 + struct mydirstreament * av; |
| |
1117 int ac; |
| |
1118 int i; |
| |
1119 |
| |
1120 /*@+voidabstract@*/ |
| |
1121 - if (mydir == NULL || !ISFTPMAGIC(mydir) || mydir->data == NULL) { |
| |
1122 + if (dir == NULL || !ISFTPMAGIC(dir)) { |
| |
1123 /* XXX TODO: EBADF errno. */ |
| |
1124 return NULL; |
| |
1125 } |
| |
1126 /*@=voidabstract@*/ |
| |
1127 |
| |
1128 - dp = (struct dirent *) mydir->data; |
| |
1129 - av = (const char **) (dp + 1); |
| |
1130 + dp = &mydir->ent; |
| |
1131 + av = &mydir->av[0]; |
| |
1132 ac = mydir->size; |
| |
1133 - dt = (char *) (av + (ac + 1)); |
| |
1134 - i = mydir->offset + 1; |
| |
1135 + i = mydir->offset + 1; |
| |
1136 |
| |
1137 /*@-boundsread@*/ |
| |
1138 - if (i < 0 || i >= ac || av[i] == NULL) |
| |
1139 + if (i < 0 || i >= ac || av[i].name == NULL) |
| |
1140 return NULL; |
| |
1141 /*@=boundsread@*/ |
| |
1142 |
| |
1143 mydir->offset = i; |
| |
1144 |
| |
1145 +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(OPENPKG_DARWIN) |
| |
1146 + dp->d_ino = i + 1; |
| |
1147 + dp->d_reclen = 0; |
| |
1148 + dp->d_type = av[i].type; |
| |
1149 + strncpy(dp->d_name, av[i].name, sizeof(dp->d_name) - 1); |
| |
1150 + dp->d_name[sizeof(dp->d_name)-1] = '\0'; |
| |
1151 + dp->d_namlen = strlen(dp->d_name); |
| |
1152 +#elif defined(OPENPKG_HPUX) || defined(sun) || defined(OPENPKG_UNIXWARE) || defined(__osf__) || defined(OPENPKG_IRIX64) || defined(OPENPKG_AIX) |
| |
1153 + /* XXX glob(3) uses REAL_DIR_ENTRY(dp) test on d_ino */ |
| |
1154 + dp->d_ino = i + 1; /* W2DO? */ |
| |
1155 + dp->d_reclen = 0; /* W2DO? */ |
| |
1156 + strncpy(dp->d_name, av[i].name, sizeof(dp->d_name)); |
| |
1157 +#else |
| |
1158 /* XXX glob(3) uses REAL_DIR_ENTRY(dp) test on d_ino */ |
| |
1159 dp->d_ino = i + 1; /* W2DO? */ |
| |
1160 dp->d_reclen = 0; /* W2DO? */ |
| |
1161 - |
| |
1162 -#if !defined(hpux) && !defined(sun) |
| |
1163 dp->d_off = 0; /* W2DO? */ |
| |
1164 -/*@-boundsread@*/ |
| |
1165 - dp->d_type = dt[i]; |
| |
1166 -/*@=boundsread@*/ |
| |
1167 + dp->d_type = av[i].type; |
| |
1168 + strncpy(dp->d_name, av[i].name, sizeof(dp->d_name)); |
| |
1169 #endif |
| |
1170 |
| |
1171 - strncpy(dp->d_name, av[i], sizeof(dp->d_name)); |
| |
1172 /*@+voidabstract@*/ |
| |
1173 if (_ftp_debug) |
| |
1174 fprintf(stderr, "*** ftpReaddir(%p) %p \"%s\"\n", (void *)mydir, dp, dp->d_name); |
| |
1175 @@ -1313,7 +1333,7 @@ |
| |
1176 /*@+voidabstract@*/ |
| |
1177 if (_ftp_debug) |
| |
1178 fprintf(stderr, "*** ftpClosedir(%p)\n", (void *)mydir); |
| |
1179 - if (mydir == NULL || !ISFTPMAGIC(mydir)) { |
| |
1180 + if (dir == NULL || !ISFTPMAGIC(dir)) { |
| |
1181 /* XXX TODO: EBADF errno. */ |
| |
1182 return -1; |
| |
1183 } |
| |
1184 |
| |
1185 +--------------------------------------------------------------------------- |
| |
1186 | Remove inclusion of ancient (and since years deprecated) <malloc.h> |
| |
1187 | header. This especially makes sure RPM build does not break on |
| |
1188 | strict platforms like FreeBSD 5. |
| |
1189 +--------------------------------------------------------------------------- |
| |
1190 Index: system.h |
| |
1191 --- system.h 1 Mar 2003 19:53:08 -0000 1.1.1.10 |
| |
1192 +++ system.h 8 Jun 2005 13:15:16 -0000 1.4 |
| |
1193 @@ -256,10 +256,6 @@ |
| |
1194 #include <err.h> |
| |
1195 #endif |
| |
1196 |
| |
1197 -#if HAVE_MALLOC_H && !defined(__LCLINT__) |
| |
1198 -#include <malloc.h> |
| |
1199 -#endif |
| |
1200 - |
| |
1201 /*@-declundef -incondefs @*/ /* FIX: these are macros */ |
| |
1202 /** |
| |
1203 */ |
| |
1204 |
| |
1205 +--------------------------------------------------------------------------- |
| |
1206 | Add support for BSD getmntinfo(3). |
| |
1207 +--------------------------------------------------------------------------- |
| |
1208 Index: system.h |
| |
1209 --- system.h 1 Mar 2003 19:53:08 -0000 1.1.1.10 |
| |
1210 +++ system.h 8 Jun 2005 13:15:16 -0000 1.4 |
| |
1211 @@ -550,7 +546,7 @@ |
| |
1212 #define lchown chown |
| |
1213 #endif |
| |
1214 |
| |
1215 -#if HAVE_GETMNTINFO_R || HAVE_MNTCTL |
| |
1216 +#if HAVE_GETMNTINFO_R || HAVE_GETMNTINFO || HAVE_MNTCTL |
| |
1217 # define GETMNTENT_ONE 0 |
| |
1218 # define GETMNTENT_TWO 0 |
| |
1219 # if HAVE_SYS_MNTCTL_H |
| |
1220 |
| |
1221 +--------------------------------------------------------------------------- |
| |
1222 | Drop GCC "inline" attribute if not compiling with GCC. |
| |
1223 +--------------------------------------------------------------------------- |
| |
1224 Index: system.h |
| |
1225 --- system.h 1 Mar 2003 19:53:08 -0000 1.1.1.10 |
| |
1226 +++ system.h 8 Jun 2005 13:15:16 -0000 1.4 |
| |
1227 @@ -603,11 +599,24 @@ |
| |
1228 |
| |
1229 #if defined(__LCLINT__) |
| |
1230 #define FILE_RCSID(id) |
| |
1231 -#else |
| |
1232 +#elif defined(__GNUC__) |
| |
1233 #define FILE_RCSID(id) \ |
| |
1234 static inline const char *rcsid(const char *p) { \ |
| |
1235 return rcsid(p = id); \ |
| |
1236 } |
| |
1237 +#else |
| |
1238 +#define FILE_RCSID(id) \ |
| |
1239 +static const char *rcsid(const char *p) { \ |
| |
1240 + return rcsid(p = id); \ |
| |
1241 +} |
| |
1242 +#endif |
| |
1243 + |
| |
1244 +/* for basename(3) and dirname(3) */ |
| |
1245 +#if !defined(OPENPKG_AIX) |
| |
1246 +#include <libgen.h> |
| |
1247 +#endif |
| |
1248 +#if defined(OPENPKG_AIX) |
| |
1249 +#define unsetenv(x) /* unsetenv() is used in RPM just for malloc debugging purposes */ |
| |
1250 #endif |
| |
1251 |
| |
1252 #endif /* H_SYSTEM */ |
| |
1253 |
| |
1254 +--------------------------------------------------------------------------- |
| |
1255 | Remove GCC'ism. |
| |
1256 +--------------------------------------------------------------------------- |
| |
1257 Index: build/rpmfile.h |
| |
1258 --- build/rpmfile.h 24 Jan 2003 19:41:56 -0000 1.1.1.1 |
| |
1259 +++ build/rpmfile.h 22 Jan 2004 21:42:14 -0000 1.2 |
| |
1260 @@ -95,7 +95,11 @@ |
| |
1261 } value; /* either number or string */ |
| |
1262 uint32_t mask; /* mask before comparison with value */ |
| |
1263 char desc[MAXDESC]; /* description */ |
| |
1264 +#if defined(__GNUC__) |
| |
1265 } __attribute__((__packed__)); |
| |
1266 +#else |
| |
1267 +}; |
| |
1268 +#endif |
| |
1269 |
| |
1270 #define BIT(A) (1 << (A)) |
| |
1271 #define STRING_IGNORE_LOWERCASE BIT(0) |
| |
1272 |
| |
1273 +--------------------------------------------------------------------------- |
| |
1274 | Better portability for madvise(2) usage. |
| |
1275 +--------------------------------------------------------------------------- |
| |
1276 Index: rpmdb/legacy.c |
| |
1277 --- rpmdb/legacy.c 18 Dec 2002 22:40:19 -0000 1.1.1.4 |
| |
1278 +++ rpmdb/legacy.c 22 Jan 2004 21:42:30 -0000 1.2 |
| |
1279 @@ -182,7 +182,7 @@ |
| |
1280 break; |
| |
1281 } |
| |
1282 |
| |
1283 -#ifdef MADV_SEQUENTIAL |
| |
1284 +#if defined(HAVE_MADVISE) && defined(MADV_SEQUENTIAL) |
| |
1285 xx = madvise(mapped, fsize, MADV_SEQUENTIAL); |
| |
1286 #endif |
| |
1287 |
| |
1288 |
| |
1289 +--------------------------------------------------------------------------- |
| |
1290 | Better portability for madvise(2) usage. |
| |
1291 +--------------------------------------------------------------------------- |
| |
1292 Index: lib/fsm.c |
| |
1293 --- lib/fsm.c 3 Mar 2003 21:28:12 -0000 1.1.1.5 |
| |
1294 +++ lib/fsm.c 22 Jan 2004 21:42:23 -0000 1.2 |
| |
1295 @@ -879,7 +879,7 @@ |
| |
1296 rdbuf = fsm->rdbuf; |
| |
1297 fsm->rdbuf = (char *) mapped; |
| |
1298 fsm->rdlen = nmapped = st->st_size; |
| |
1299 -#if defined(MADV_DONTNEED) |
| |
1300 +#if defined(HAVE_MADVISE) && defined(MADV_DONTNEED) |
| |
1301 xx = madvise(mapped, nmapped, MADV_DONTNEED); |
| |
1302 #endif |
| |
1303 } |
| |
1304 @@ -909,7 +909,7 @@ |
| |
1305 #if HAVE_MMAP |
| |
1306 if (mapped != (void *)-1) { |
| |
1307 xx = msync(mapped, nmapped, MS_ASYNC); |
| |
1308 -#if defined(MADV_DONTNEED) |
| |
1309 +#if defined(HAVE_MADVISE) && defined(MADV_DONTNEED) |
| |
1310 xx = madvise(mapped, nmapped, MADV_DONTNEED); |
| |
1311 #endif |
| |
1312 /*@-noeffect@*/ xx = munmap(mapped, nmapped) /*@=noeffect@*/; |
| |
1313 |
| |
1314 +--------------------------------------------------------------------------- |
| |
1315 | Support UnixWare 7.1.3 and OpenDarwin 6.6.2, too. |
| |
1316 +--------------------------------------------------------------------------- |
| |
1317 Index: aclocal.m4 |
| |
1318 --- aclocal.m4 16 Jul 2003 17:05:28 -0000 1.1.1.10 |
| |
1319 +++ aclocal.m4 6 Jun 2005 15:53:03 -0000 1.4 |
| |
1320 @@ -2838,7 +2838,7 @@ |
| |
1321 runpath_var=LD_RUN_PATH |
| |
1322 ;; |
| |
1323 |
| |
1324 - sysv5uw7* | unixware7*) |
| |
1325 + sysv5uw7* | unixware7* | sysv5UnixWare7* ) |
| |
1326 no_undefined_flag='${wl}-z ${wl}text' |
| |
1327 if test "$GCC" = yes; then |
| |
1328 archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' |
| |
1329 @@ -4311,6 +4311,7 @@ |
| |
1330 ;; |
| |
1331 *) # Darwin 1.3 on |
| |
1332 lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' |
| |
1333 + lt_cv_deplibs_check_method=pass_all |
| |
1334 ;; |
| |
1335 esac |
| |
1336 ;; |
| |
1337 @@ -4336,7 +4337,7 @@ |
| |
1338 ;; |
| |
1339 |
| |
1340 hpux10.20*|hpux11*) |
| |
1341 - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' |
| |
1342 + lt_cv_deplibs_check_method='pass_all' |
| |
1343 lt_cv_file_magic_cmd=/usr/bin/file |
| |
1344 lt_cv_file_magic_test_file=/usr/lib/libc.sl |
| |
1345 ;; |
| |
1346 @@ -4375,11 +4376,7 @@ |
| |
1347 ;; |
| |
1348 |
| |
1349 netbsd*) |
| |
1350 - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then |
| |
1351 - lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$' |
| |
1352 - else |
| |
1353 - lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$' |
| |
1354 - fi |
| |
1355 + lt_cv_deplibs_check_method='pass_all' |
| |
1356 ;; |
| |
1357 |
| |
1358 newos6*) |
| |
1359 @@ -4414,7 +4411,7 @@ |
| |
1360 lt_cv_file_magic_test_file=/lib/libc.so |
| |
1361 ;; |
| |
1362 |
| |
1363 -sysv5uw[[78]]* | sysv4*uw2*) |
| |
1364 +sysv5uw[[78]]* | sysv4*uw2* | sysv5UnixWare7* ) |
| |
1365 lt_cv_deplibs_check_method=pass_all |
| |
1366 ;; |
| |
1367 |
| |
1368 |
| |
1369 +--------------------------------------------------------------------------- |
| |
1370 | Use Linux i386 assembly specific stuff on Linux only. |
| |
1371 +--------------------------------------------------------------------------- |
| |
1372 Index: rpmio/rpmsw.c |
| |
1373 --- rpmio/rpmsw.c 5 Jun 2003 12:04:05 -0000 1.1.1.1 |
| |
1374 +++ rpmio/rpmsw.c 22 Jan 2004 21:42:33 -0000 1.2 |
| |
1375 @@ -27,7 +27,7 @@ |
| |
1376 /*@unchecked@*/ |
| |
1377 static int rpmsw_initialized = 0; |
| |
1378 |
| |
1379 -#if defined(__i386__) |
| |
1380 +#if defined(__linux__) && defined(__i386__) |
| |
1381 /* Swiped from glibc-2.3.2 sysdeps/i386/i686/hp-timing.h */ |
| |
1382 |
| |
1383 #define HP_TIMING_ZERO(Var) (Var) = (0) |
| |
1384 |
| |
1385 +--------------------------------------------------------------------------- |
| |
1386 | Fix "environ" declaration. |
| |
1387 +--------------------------------------------------------------------------- |
| |
1388 Index: lib/signature.c |
| |
1389 --- lib/signature.c 29 May 2003 18:42:23 -0000 1.1.1.23 |
| |
1390 +++ lib/signature.c 22 Jan 2004 21:42:25 -0000 1.2 |
| |
1391 @@ -27,7 +27,7 @@ |
| |
1392 /*@access pgpDigParams@*/ |
| |
1393 |
| |
1394 #if !defined(__GLIBC__) |
| |
1395 -char ** environ = NULL; |
| |
1396 +extern char ** environ; |
| |
1397 #endif |
| |
1398 |
| |
1399 int rpmLookupSignatureType(int action) |
| |
1400 |
| |
1401 +--------------------------------------------------------------------------- |
| |
1402 | Rename own mergesort(3) implementation to avoid conflicts |
| |
1403 | with a possibly existing vendor version. |
| |
1404 +--------------------------------------------------------------------------- |
| |
1405 Index: rpmdb/merge.c |
| |
1406 --- rpmdb/merge.c 22 Jun 2002 18:51:58 -0000 1.1.1.2 |
| |
1407 +++ rpmdb/merge.c 22 Jan 2004 21:42:30 -0000 1.2 |
| |
1408 @@ -204,7 +204,7 @@ |
| |
1409 * Arguments are as for qsort. |
| |
1410 */ |
| |
1411 int |
| |
1412 -mergesort(void *base, size_t nmemb, size_t size, |
| |
1413 +rpmdb_mergesort(void *base, size_t nmemb, size_t size, |
| |
1414 int (*cmp) (const void *, const void *)) |
| |
1415 { |
| |
1416 register int i, sense; |
| |
1417 |
| |
1418 +--------------------------------------------------------------------------- |
| |
1419 | Rename own mergesort(3) implementation to avoid conflicts |
| |
1420 | with a possibly existing vendor version. |
| |
1421 +--------------------------------------------------------------------------- |
| |
1422 Index: rpmdb/rpmdb.h |
| |
1423 --- rpmdb/rpmdb.h 18 Jan 2003 14:04:35 -0000 1.1.1.5 |
| |
1424 +++ rpmdb/rpmdb.h 22 Jan 2004 21:42:31 -0000 1.2 |
| |
1425 @@ -1080,7 +1080,7 @@ |
| |
1426 * Mergesort, same arguments as qsort(2). |
| |
1427 */ |
| |
1428 /*@unused@*/ |
| |
1429 -int mergesort(void *base, size_t nmemb, size_t size, |
| |
1430 +int rpmdb_mergesort(void *base, size_t nmemb, size_t size, |
| |
1431 int (*cmp) (const void *, const void *)) |
| |
1432 /*@globals errno @*/ |
| |
1433 /*@modifies base, errno @*/; |
| |
1434 |
| |
1435 +--------------------------------------------------------------------------- |
| |
1436 | Rename own mergesort(3) implementation to avoid conflicts |
| |
1437 | with a possibly existing vendor version. |
| |
1438 +--------------------------------------------------------------------------- |
| |
1439 Index: rpmdb/rpmdb.c |
| |
1440 --- rpmdb/rpmdb.c 2 Jul 2003 19:21:54 -0000 1.1.1.6 |
| |
1441 +++ rpmdb/rpmdb.c 22 Jan 2004 21:42:30 -0000 1.2 |
| |
1442 @@ -2361,7 +2361,7 @@ |
| |
1443 sizeof(*mi->mi_set->recs), hdrNumCmp); |
| |
1444 /*@=boundsread@*/ |
| |
1445 #else |
| |
1446 - mergesort(mi->mi_set->recs, mi->mi_set->count, |
| |
1447 + rpmdb_mergesort(mi->mi_set->recs, mi->mi_set->count, |
| |
1448 sizeof(*mi->mi_set->recs), hdrNumCmp); |
| |
1449 #endif |
| |
1450 mi->mi_sorted = 1; |
| |
1451 |
| |
1452 +--------------------------------------------------------------------------- |
| |
1453 | Workaround a double-inclusion problem under AIX. |
| |
1454 +--------------------------------------------------------------------------- |
| |
1455 Index: lib/getdate.y |
| |
1456 --- lib/getdate.y 24 Sep 2001 21:53:15 -0000 1.1.1.2 |
| |
1457 +++ lib/getdate.y 8 Jun 2005 13:16:22 -0000 1.2 |
| |
1458 @@ -30,7 +30,9 @@ |
| |
1459 #undef static |
| |
1460 #endif |
| |
1461 |
| |
1462 +#ifndef OPENPKG_AIX |
| |
1463 #include <stdio.h> |
| |
1464 +#endif |
| |
1465 #include <ctype.h> |
| |
1466 |
| |
1467 /* The code at the top of get_date which figures out the offset of the |
| |
1468 |
| |
1469 +--------------------------------------------------------------------------- |
| |
1470 | Workaround a double-inclusion problem under AIX. |
| |
1471 +--------------------------------------------------------------------------- |
| |
1472 Index: lib/getdate.c |
| |
1473 --- lib/getdate.c 2 Jul 2003 19:21:45 -0000 1.1.1.4 |
| |
1474 +++ lib/getdate.c 8 Jun 2005 13:16:21 -0000 1.2 |
| |
1475 @@ -50,7 +50,9 @@ |
| |
1476 #undef static |
| |
1477 #endif |
| |
1478 |
| |
1479 +#ifndef OPENPKG_AIX |
| |
1480 #include <stdio.h> |
| |
1481 +#endif |
| |
1482 #include <ctype.h> |
| |
1483 |
| |
1484 /* The code at the top of get_date which figures out the offset of the |