Bug#294221: prcs: FTBFS (amd64/gcc-4.0): no matching function for call to '__gnu_cxx::stdio_filebuf<char, std::char_traits<char> >::stdio_filebuf(int, const std::_Ios_Openmode&, bool, const int&)'
Package: prcs
Severity: normal
Tags: patch
When building 'prcs' on amd64 with gcc-4.0,
I get the following error:
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I./include -O2 -Wall -c -o rebuild.o `test -f 'rebuild.cc' || echo './'`rebuild.cc
rebuild.cc: In member function 'void RebuildFile::init_stream()':
rebuild.cc:1009: error: '__c_file' was not declared in this scope
rebuild.cc:1009: error: expected primary-expression before ')' token
rebuild.cc:1010: error: expected `;' before ')' token
make[5]: *** [rebuild.o] Error 1
make[5]: Leaving directory `/prcs-1.3.3/src'
With the attached patch 'prcs' can be compiled
on amd64 using gcc-4.0.
Regards
Andreas Jochens
diff -urN ../tmp-orig/prcs-1.3.3/debian/patches/50_g++-3.4.dpatch ./debian/patches/50_g++-3.4.dpatch
--- ../tmp-orig/prcs-1.3.3/debian/patches/50_g++-3.4.dpatch 2005-02-08 16:23:11.938608839 +0100
+++ ./debian/patches/50_g++-3.4.dpatch 2005-02-08 16:22:59.998921585 +0100
@@ -36,7 +36,7 @@
false /* close */, default_segment_size);
buf->pubseekoff(0, ios::end, ios::out);
+#else
-+ buf = new __gnu_cxx::stdio_filebuf<char> ((__c_file*)fdopen(seg->fd()) "w"), ios::out,
++ buf = new __gnu_cxx::stdio_filebuf<char> (seg->fd(), ios::out,
+ default_segment_size);
+ buf->pubseekoff(0, ios::end, ios::out);
#endif
diff -urN ../tmp-orig/prcs-1.3.3/src/hash.cc ./src/hash.cc
--- ../tmp-orig/prcs-1.3.3/src/hash.cc 2004-05-10 02:40:55.000000000 +0200
+++ ./src/hash.cc 2005-02-08 16:20:01.920416570 +0100
@@ -144,7 +144,7 @@
int hash(FileEntry*const& x, int M)
{
- return (unsigned int)x % M;
+ return (unsigned long)x % M;
}
#define generic template<class Key, class Data>
Reply to: