? sysutils/dd_rescue/work Index: sysutils/dd_rescue/distinfo =================================================================== RCS file: /cvs/cvsroot/pkgsrc/sysutils/dd_rescue/distinfo,v retrieving revision 1.7 diff -u -r1.7 distinfo --- sysutils/dd_rescue/distinfo 4 Jun 2013 00:47:46 -0000 1.7 +++ sysutils/dd_rescue/distinfo 13 Jun 2013 07:49:27 -0000 @@ -4,5 +4,5 @@ RMD160 (dd_rescue-1.33.tar.gz) = ed39efddcf3fa6708926cb31c9b32020e0d59208 Size (dd_rescue-1.33.tar.gz) = 36923 bytes SHA1 (patch-aa) = ae11e96371b3b815b066a2dcedd869c90d4b89ff -SHA1 (patch-ab) = 4ff83cbe0528f8d3db0c0af4d1e135ebad055561 +SHA1 (patch-ab) = 4d17f198b390e907877464429e44cd0fb13c755e SHA1 (patch-frandom_c) = dd3c300df7a2f6cee6c981507c1dd17b39c47fb2 Index: sysutils/dd_rescue/patches/patch-ab =================================================================== RCS file: /cvs/cvsroot/pkgsrc/sysutils/dd_rescue/patches/patch-ab,v retrieving revision 1.6 diff -u -r1.6 patch-ab --- sysutils/dd_rescue/patches/patch-ab 4 Jun 2013 00:47:46 -0000 1.6 +++ sysutils/dd_rescue/patches/patch-ab 13 Jun 2013 07:49:27 -0000 @@ -1,11 +1,31 @@ $NetBSD: patch-ab,v 1.6 2013/06/04 00:47:46 mef Exp $ +(1) clang flags: +dd_rescue.c:1494:22: warning: implicit declaration of function 'basename' is invalid in C99 [-Wimplicit-function-declaration] + const char* ibase = basename(inm); +(2) See http://gnats.netbsd.org/38620 dd_rescue: (fatal): allocation of aligned buffer failed! +(3) clang flags: +dd_recue.c:(.text+0x12b4): undefined reference to `mypread' +dd_rescue.c:(.text+0x1374): undefined reference to `mypwrite' + +(4) clag flags: +dd_rescue.c:1495:31: warning: passing 'const char *' to parameter of type 'char *' discards qualifiers [-Wincompatible-pointer-types] + const char* ibase = basename(inm); + --- dd_rescue.c.orig 2013-03-31 04:24:34.000000000 +0900 -+++ dd_rescue.c 2013-04-08 17:03:27.000000000 +0900 -@@ -121,6 +121,10 @@ _syscall6(long, splice, int, fdin, loff_ ++++ dd_rescue.c 2013-06-13 16:44:35.000000000 +0900 +@@ -83,6 +83,7 @@ + #include + #include + #include ++#include + + #include "frandom.h" + #include "list.h" +@@ -121,6 +122,10 @@ # endif #endif @@ -16,7 +36,25 @@ /* fwd decls */ int cleanup(); -@@ -1452,6 +1456,11 @@ unsigned char* zalloc_buf(unsigned int b +@@ -740,7 +745,7 @@ + return ln; + } + +-inline ssize_t mypread(int fd, void* bf, size_t sz, off_t off) ++static inline ssize_t mypread(int fd, void* bf, size_t sz, off_t off) + { + if (i_repeat) { + if (i_rep_init) +@@ -762,7 +767,7 @@ + return pread(fd, bf, sz, off); + } + +-inline ssize_t mypwrite(int fd, void* bf, size_t sz, off_t off) ++static inline ssize_t mypwrite(int fd, void* bf, size_t sz, off_t off) + { + if (o_chr) + return write(fd, bf, sz); +@@ -1452,6 +1457,11 @@ unsigned char *ptr; #ifdef O_DIRECT void *mp; @@ -28,3 +66,12 @@ if (posix_memalign(&mp, pagesize, bs)) { fplog(stderr, "dd_rescue: (fatal): allocation of aligned buffer failed!\n"); cleanup(); exit(18); +@@ -1482,7 +1492,7 @@ + + char* retstrdupcat3(const char* dir, char dirsep, const char* inm) + { +- const char* ibase = basename(inm); ++ const char* ibase = basename((char *) inm); + const int dlen = strlen(dir) + (dirsep>0? 1: dirsep); + char* ret = malloc(dlen + strlen(inm) + 1); + strcpy(ret, dir);