[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#555035: FTBFS: wvmodemscan.cc:542: error: invalid conversion from 'int (*)(const dirent**, const dirent**)' to 'int (*)(const void*, const void*)'



Package: wvdial
Version: 1.60.3
Severity: important
Tags: patch

Hi,

When we installed eglibc-2.9, this package become the build error. (ex. mips)
https://buildd.debian.org/fetch.cgi?pkg=wvdial;ver=1.60.3;arch=mips;stamp=1257624220

But When we installed eglibc-2.10.1, this do not become the build error.

-----
wvmodemscan.cc:27: warning: deprecated conversion from string constant to 'char*'
wvmodemscan.cc:27: warning: deprecated conversion from string constant to 'char*'
wvmodemscan.cc:27: warning: deprecated conversion from string constant to 'char*'
wvmodemscan.cc: In constructor 'WvModemScanList::WvModemScanList(const WvFastString&)':
wvmodemscan.cc:542: error: invalid conversion from 'int (*)(const dirent**, const dirent**)' to 'int (*)(const void*, const void*)'
wvmodemscan.cc:542: error:   initializing argument 4 of 'int scandir(const char*, dirent***, int (*)(const dirent*), int (*)(const void*, const void*))'
make[1]: *** [wvmodemscan.o] Error 1
make[1]: Leaving directory `/build/buildd/wvdial-1.60.3'
make: *** [binary-arch] Error 2
dpkg-buildpackage: error: /usr/bin/fakeroot debian/rules binary-arch gave error exit status 2
******************************************************************************
-----

This problem can fix following patch.
--- wvmodemscan.cc.orig 2009-11-08 04:57:46.000000000 +0000
+++ wvmodemscan.cc      2009-11-08 04:46:20.000000000 +0000
@@ -495,8 +495,17 @@
        // (no internal ISDN support)   || !strncmp(e->d_name, "ttyI", 4);
 }
 
+#if defined(__GLIBC__) && __GLIBC_PREREQ(2, 10)
 static int filesort(const struct dirent **e1, const struct dirent **e2)
+#else
+static int filesort(const void *_e1, const void *_e2)
+#endif
 {
+#if !(defined(__GLIBC__) && __GLIBC_PREREQ(2, 10))
+     dirent const * const *e1 = (dirent const * const *)_e1;
+     dirent const * const *e2 = (dirent const * const *)_e2;
+#endif
+
     const char *p1, *p2;
     int diff;
     
The base of this patch is
http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-dialup/wvdial/files/wvdial-1.60-dirent.patch?view=markup

Best regards,
  Nobuhiro
-- 
Nobuhiro Iwamatsu




Reply to: