a2ps-4.13c compile fix on uclibc (patch included)
Yuri Vasilevski <[email protected]> Sat, 27 May 2006 13:06:53 -0500
| Newsgroups | gmane.comp.printing.a2ps.bugs |
|---|---|
| Message-ID | <[email protected]> |
Hi, a2ps fails to compile on uclibc systems. This is with a2ps-4.13c (gentoo package app-text/a2ps-4.13c-r4) on uclibc-0.9.28 on a gentoo embedded system. The configure script detects that fnmatch function is broken, but the replacement provided in the lib dir does not work as expected because of two problems: 1) the configure script correctly redefines fnmatch to rpl_fnmatch, but the replacement defines fnmatch (so rpl_fnmatch is undefined). 2) uclibc aiming to be GNU libc compatible defines __GNU_LIBRARY__, so the check inside fnmatch.c for some reason decides that the configure script was wrong and that there is no need to build the replacement. :-S For more details please see gentoo bug: http://bugs.gentoo.org/show_bug.cgi?id=134546 Best wishes, Yuri. _______________________________________________ bug-a2ps mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-a2ps
a2ps-4.13c-fnmatch-replacement.patch
(text/x-patch, 1.5 KB)
diff -Naurp a2ps-4.13.orig/lib/fnmatch.c a2ps-4.13/lib/fnmatch.c
--- a2ps-4.13.orig/lib/fnmatch.c 2002-03-04 12:46:25 -0600
+++ a2ps-4.13/lib/fnmatch.c 2006-05-27 11:41:15 -0500
@@ -27,18 +27,6 @@
#include <fnmatch.h>
#include <ctype.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
- actually compiling the library itself. This code is part of the GNU C
- Library, but also included in many other GNU distributions. Compiling
- and linking in this code is a waste when using the GNU C library
- (especially if it is a shared library). Rather than having every GNU
- program understand `configure --with-gnu-libc' and omit the object files,
- it is simpler to just do this in the source for each such file. */
-
-#if defined _LIBC || !defined __GNU_LIBRARY__
-
-
# if defined STDC_HEADERS || !defined isascii
# define ISASCII(c) 1
# else
@@ -52,10 +40,13 @@
extern int errno;
# endif
+/* fnmatch replacement taken from the GNU C Library for systems that
+ provide a broken implementation. */
+
/* Match STRING against the filename pattern PATTERN, returning zero if
it matches, nonzero if not. */
int
-fnmatch (const char *pattern, const char *string, int flags)
+rpl_fnmatch (const char *pattern, const char *string, int flags)
{
register const char *p = pattern, *n = string;
register char c;
@@ -233,5 +224,3 @@ fnmatch (const char *pattern, const char
# undef FOLD
}
-
-#endif /* _LIBC or not __GNU_LIBRARY__. */