There is a gcc 4.2 patch in the Debian bugtracker.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=361933
http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=krusader
Can someone take a look at it?
Thanks
Frank
---------- Forwarded message ----------
From: Martin Michlmayr <t...@cyrius.com>
Date: Apr 11, 2006 12:20 PM
Subject: Bug#361933: FTBFS with GCC 4.2: invalid pure specifier
To: sub...@bugs.debian.org
Package: krusader
Version: 1.70.0-1
Tags: patch
Your package fails to build with GCC 4.2. Version 4.2 has not been
released yet but I'm building with a snapshot in order to find errors
and give people an advance warning. The bug below is in your package
and not because I'm using a snapshot of the compiler so please take a
look at it. You can reproduce this with the gcc-snapshot package.
> Automatic build of krusader_1.70.0-1 on em64t by sbuild/amd64 1.112
...
> if x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/include/kde -I/usr/include/qt3 -I. -DQT_THREAD_SUPPORT -D_REENTRANT -D_LARGEFILE64_SOURCE -DKDE_NO_COMPAT -DQT_NO_ASCII_CAST -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -O2 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -MT krbookmarkhandler.o -MD -MP -MF ".deps/krbookmarkhandler.Tpo" \
> -c -o krbookmarkhandler.o `test -f 'krbookmarkhandler.cpp' || echo './'`krbookmarkhandler.cpp; \
> then mv -f ".deps/krbookmarkhandler.Tpo" ".deps/krbookmarkhandler.Po"; \
> else rm -f ".deps/krbookmarkhandler.Tpo"; exit 1; \
> fi
> ../VFS/vfs.h:137: error: invalid pure specifier (only `= 0' is allowed) before ';' token
> /usr/include/kde/kbookmarkmanager.h:312: warning: 'class KBookmarkOwner' has virtual functions but non-virtual destructor
> make[4]: *** [krbookmarkhandler.o] Error 1
--- ./krusader/VFS/vfs.h~ 2006-04-11 09:49:09.000000000 +0000
+++ ./krusader/VFS/vfs.h 2006-04-11 09:49:13.000000000 +0000
@@ -134,7 +134,7 @@
protected:
/// Feel the vfs dictionary with vfiles, must be implemented
for each vfs
- virtual bool populateVfsList(const KURL& origin, bool showHidden) = 0L;
+ virtual bool populateVfsList(const KURL& origin, bool showHidden) = 0;
/// Set the vfile list pointer
void setVfsFilesP(vfileDict* dict);
/// clear and delete all current vfiles
--
Martin Michlmayr
http://www.cyrius.com/
Just out of curiosity, where is "0L" defined, and how is it different from 0
or NULL (i suppose it's not)?
--
Dirk Eschler <mailto:dirk.e...@gmx.net>
http://www.krusader.org
Hi!
0L is just the "long" version of 0, whatever this means (the meaning is
compiler dependent). I think, that
virtual bool populateVfsList(const KURL& origin, bool showHidden) = 0L;
is syntactically wrong, but gcc < 4.2 just allows it. From the bug report I
further guess, that gcc 4.2 will not allow it any more. Can't check it, as I
am still using gcc 3.4.2,
In any case the fix should not harm.
Heiner
Thanks for the explanation. Since Rafi is working on the VFS right now, the
fix is better committed by him.
From what I know 0 is the mathemtical zero while 0L is a null-adress
(used for pointers) - if there is the need to distinguish between
numerical values and adresses...
bye,
Jonas
bye,
Frank