瀏覽代碼

fix musl compile, partially from alpinelinxu

Waldemar Brodkorb 11 年之前
父節點
當前提交
e3e23911a3

+ 1 - 1
package/findutils/Makefile

@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=		findutils
 PKG_VERSION:=		4.4.2
-PKG_RELEASE:=		2
+PKG_RELEASE:=		3
 PKG_MD5SUM:=		351cc4adb07d54877fa15f75fb77d39f
 PKG_DESCR:=		GNU utilities for finding files
 PKG_SECTION:=		utils

+ 15 - 0
package/findutils/patches/patch-gnulib_lib_freadahead_c

@@ -0,0 +1,15 @@
+--- findutils-4.4.2.orig/gnulib/lib/freadahead.c	2009-05-10 23:23:57.000000000 +0200
++++ findutils-4.4.2/gnulib/lib/freadahead.c	2014-03-23 16:27:43.000000000 +0100
+@@ -19,6 +19,7 @@
+ /* Specification.  */
+ #include "freadahead.h"
+ 
++#ifndef HAVE___FREADAHEAD
+ size_t
+ freadahead (FILE *fp)
+ {
+@@ -64,3 +65,4 @@ freadahead (FILE *fp)
+  #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread on your system, then report this to bug-gnulib."
+ #endif
+ }
++#endif

+ 24 - 0
package/findutils/patches/patch-gnulib_lib_freadahead_h

@@ -0,0 +1,24 @@
+--- findutils-4.4.2.orig/gnulib/lib/freadahead.h	2009-05-10 23:23:57.000000000 +0200
++++ findutils-4.4.2/gnulib/lib/freadahead.h	2014-03-23 16:27:43.000000000 +0100
+@@ -29,8 +29,21 @@ extern "C" {
+ 
+    STREAM must not be wide-character oriented.  */
+ 
++#if HAVE___FREADAHEAD || (defined(__linux__) && !defined(__GLIBC__) && !defined(__UCLIBC__)) /* musl libc */
++
++#ifndef HAVE___FREADAHEAD
++#define HAVE___FREADAHEAD 1
++#endif
++
++# include <stdio_ext.h>
++# define freadahead(stream) __freadahead (stream)
++
++#else
++
+ extern size_t freadahead (FILE *stream);
+ 
++#endif
++
+ #ifdef __cplusplus
+ }
+ #endif

+ 18 - 0
package/findutils/patches/patch-gnulib_lib_fseeko_c

@@ -0,0 +1,18 @@
+--- findutils-4.4.2.orig/gnulib/lib/fseeko.c	2009-05-10 23:25:10.000000000 +0200
++++ findutils-4.4.2/gnulib/lib/fseeko.c	2014-03-23 16:35:34.000000000 +0100
+@@ -94,8 +94,14 @@ rpl_fseeko (FILE *fp, off_t offset, int
+   if ((fp->_Mode & _MWRITE ? fp->_Next == fp->_Buf : fp->_Next == fp->_Rend)
+       && fp->_Rback == fp->_Back + sizeof (fp->_Back)
+       && fp->_Rsave == NULL)
++#elif FUNC_FFLUSH_STDIN < 0 && 200809 <= _POSIX_VERSION
++  /* Cross-compiling to some other system advertising conformance to
++     POSIX.1-2008 or later.  Assume fseeko and fflush work as advertised.
++     If this assumption is incorrect, please report the bug to
++     bug-gnulib.  */
++  if (0)
+ #else
+-  #error "Please port gnulib fseeko.c to your platform! Look at the code in fpurge.c, then report this to bug-gnulib."
++  #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
+ #endif
+     {
+       off_t pos = lseek (fileno (fp), offset, whence);

+ 27 - 0
package/findutils/patches/patch-gnulib_m4_fflush_m4

@@ -0,0 +1,27 @@
+--- findutils-4.4.2.orig/gnulib/m4/fflush.m4	2009-05-10 23:23:57.000000000 +0200
++++ findutils-4.4.2/gnulib/m4/fflush.m4	2014-03-23 16:40:29.000000000 +0100
+@@ -32,14 +32,20 @@ AC_DEFUN([gl_FUNC_FFLUSH],
+ 	   return 4;
+ 	 return !(lseek (fd, 0, SEEK_CUR) == 5);
+        ]])], [gl_cv_func_fflush_stdin=yes], [gl_cv_func_fflush_stdin=no],
+-     [dnl Pessimistically assume fflush is broken.  This is wrong for
+-      dnl at least glibc and cygwin; but lib/fflush.c takes this into account.
+-      gl_cv_func_fflush_stdin=no])
++	[gl_cv_func_fflush_stdin=cross])
+      rm conftest.txt
+     ])
+-  if test $gl_cv_func_fflush_stdin = no; then
++  if test $gl_cv_func_fflush_stdin != yes; then
+     gl_REPLACE_FFLUSH
+   fi
++  case $gl_cv_func_fflush_stdin in
++    yes) gl_func_fflush_stdin=1 ;;
++    no)  gl_func_fflush_stdin=0 ;;
++    *)   gl_func_fflush_stdin='(-1)' ;;
++  esac
++  AC_DEFINE_UNQUOTED([FUNC_FFLUSH_STDIN], [$gl_func_fflush_stdin],
++    [Define to 1 if fflush is known to work on stdin as per POSIX.1-2008,
++     0 if fflush is known to not work, -1 if unknown.])
+ ])
+ 
+ AC_DEFUN([gl_REPLACE_FFLUSH],