Bug 180643 - dev-util/synopsis-0.8 fails with extra qualification error on > gcc-3.4.*
Bug#: 180643 Product:  Gentoo Linux Version: unspecified Platform: x86
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: treecleaner@gentoo.org Reported By: kentfredric@gmail.com
Component: Development
URL:  http://synopsis.fresco.org/issues/bug82
Summary: dev-util/synopsis-0.8 fails with extra qualification error on > gcc-3.4.*
Keywords:  
Status Whiteboard: Vote
Opened: 2007-06-02 13:58 0000
Description:   Opened: 2007-06-02 13:58 0000
This looks to  be a GCC3->GCC4 transitioning problem.

It looks like the problem is feasibly fixed upstream in 0.8.1 and 0.9, but
neither of those are in portage.

Several Problems.

g++ -I . -I /tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src -I
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/gc/include
-pthread -O2 -march=i686 -mtune=athlon-xp -pipe -ggdb3 -gstabs3 -fPIC -c -o
tools/display-ptree.o
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/tools/display-ptree.cc
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/gc/include/gc_cpp.h:178:
error: extra qualification ‘gc::’ on member ‘operator delete []’

This looks like the standard problem a lot of apps had in the GCC3-> GCC4
transition phase. Still compiles fine with 3.4.6-r2

a semi educated guess from my experience with this bug is 

-#   ifndef __BORLANDC__
-      inline void gc::operator delete[]( void*, void* );
-#   endif

+#   ifndef __BORLANDC__
+      inline void operator delete[]( void*, void* );
+#   endif

 Having made this change myself, compiling then proceeds normally untill the
next problem, thus solving bug #1.

Bug number 2 then turns up, 

/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/SymbolLookup/Scope.hh:
In constructor ‘Synopsis::SymbolLookup::FunctionScope::FunctionScope(const
Synopsis::PTree::Declaration*, Synopsis::SymbolLookup::PrototypeScope*, const
Synopsis::SymbolLookup::Scope*)’:
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/SymbolLookup/Scope.hh:70:
error: ‘typedef class std::multimap<Synopsis::PTree::Encoding, const
Synopsis::SymbolLookup::Symbol*, std::less<Synopsis::PTree::Encoding>,
std::allocator<std::pair<const Synopsis::PTree::Encoding, const
Synopsis::SymbolLookup::Symbol*> > >
Synopsis::SymbolLookup::Scope::SymbolTable’ is private
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/SymbolLookup/Scopes.cc:44:
error: within this context
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/SymbolLookup/Scope.hh:
In member function ‘Synopsis::SymbolLookup::Namespace*
Synopsis::SymbolLookup::Namespace::find_namespace(const
Synopsis::PTree::NamespaceSpec*) const’:
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/SymbolLookup/Scope.hh:75:
error: ‘typedef class std::map<const Synopsis::PTree::Node*,
Synopsis::SymbolLookup::Scope*, std::less<const Synopsis::PTree::Node*>,
std::allocator<std::pair<const Synopsis::PTree::Node* const,
Synopsis::SymbolLookup::Scope*> > >
Synopsis::SymbolLookup::Scope::ScopeTable’ is private
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/SymbolLookup/Scopes.cc:206:
error: within this context
make: *** [Synopsis/SymbolLookup/Scopes.o] Error 1

This bug was also reported upstream under windows at given link, but their
patch neither fixes the problem /or/ relates much to the source code, but I
think thats also a transitioning problem, which for me at least, can be gotten
around by going back to the old compiler. 

PATH=/usr/i686-pc-linux-gnu/gcc-bin/3.4.X/:$PATH make
compiling Synopsis/SymbolLookup/Scopes.o
g++ -I . -I /tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src -I
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/gc/include
-pthread -O2 -march=i686 -mtune=athlon-xp -pipe -ggdb3 -gstabs3 -fPIC -c -o
Synopsis/SymbolLookup/Scopes.o
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/SymbolLookup/Scopes.cc
compiling Synopsis/SymbolLookup/Display.o
g++ -I . -I /tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src -I
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/gc/include
-pthread -O2 -march=i686 -mtune=athlon-xp -pipe -ggdb3 -gstabs3 -fPIC -c -o
Synopsis/SymbolLookup/Display.o
/tmp/..var/portage/dev-util/synopsis-0.8/work/synopsis-0.8/src/Synopsis/SymbolLookup/Display.cc




Summary of Workaround:
1. Patch gc_cpp.h 
2. Compile Scopes.cc with a 3.4 compiler until a relevant patch is found, or
until this release is made redundant and versionbumped.                      

Thanks.



Reproducible: Always

------- Comment #1 From Kent Fredric 2007-06-02 14:01:47 0000 -------
Portage 2.1.2.9 (default-linux/x86/2007.0, gcc-4.1.X/default, glibc-2.5-r3,
2.6.21-gentookz i686)
=================================================================
System uname: 2.6.21-gentookz i686 AMD Athlon(TM) XP 2000+
Gentoo Base System release 1.12.10
Timestamp of tree: Sat, 02 Jun 2007 03:30:08 +0000
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632)
[disabled]
ccache version 2.4 [disabled]
app-admin/eselect-compiler: 2.0.0_rc2-r1
dev-java/java-config: 1.3.7, 2.0.33-r1
dev-lang/python:     2.3.6-r2, 2.4.4-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r7
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17
sys-devel/gcc-config: 2.0.0_rc1
sys-devel/libtool:   1.5.23b
virtual/os-headers:  2.6.21
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -mtune=athlon-xp -pipe -ggdb3 -gstabs3"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /opt/openjms/config /usr/kde/3.5/env
/usr/kde/3.5/share/config /usr/kde/3.5/shutdown
/usr/local/kdeextra/share/config /usr/local/kdeextra/shutdown
/usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/eselect/compiler
/etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/
/etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/splash /etc/terminfo
/etc/texmf/web2c"
CXXFLAGS="-O2 -march=i686 -mtune=athlon-xp -pipe -ggdb3 -gstabs3"
DISTDIR="/mnt/fission/distfiles/distfiles"
FEATURES="autoaddcvs cvs distlocks metadata-transfer parallel-fetch sandbox
sfperms splitdebug strict userfetch userpriv usersandbox"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_AU.UTF-8"
LC_ALL="C"
LDFLAGS="-Wl,-O1,-z,combreloc,--sort-common,--enable-new-dtags"
LINGUAS="en_NZ en_GB en en_US"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --delete-after --stats --timeout=180
--exclude=/distfiles --exclude=/local --exclude=/packages
--filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS,
PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

------- Comment #2 From Xake 2007-07-18 09:52:00 0000 -------
There are two apparent portage resolutions for this: Bump to version 0.9 or
remove from tree.
synopsis-0.9 (rename ebuild) compiles fine here (gcc-4.2), while 0.8 does not.

------- Comment #3 From Jakub Moc (RETIRED) 2007-08-31 07:21:29 0000 -------
Unless someone wants to bump it ASAP, I'm voting for removal. It's useless as
it is and looking at bugzilla, noone's really using it anyway, otherwise we'd
have at least some dupes here after the years when gcc-3.4+ has been stable.

------- Comment #4 From Ryan Hill 2007-09-04 04:28:42 0000 -------
Bumped.  Thanks.