Comment 9 for bug 1065547

Revision history for this message
Manfred Hampl (m-hampl) wrote :

The problem for FTBFS seems that gcc 4.7 and higher no more accepts some 'dirty' socurce code that previous versions accepted for compilation.

see also http://gcc.gnu.org/onlinedocs/gcc/Name-lookup.html
and http://stackoverflow.com/questions/10639053/name-lookups-in-c-templates

from the failed build log of kompozer:

In file included from /build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsINIParser.h:47:0,
                 from /build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsINIParser.cpp:41:
/build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsClassHashtable.h: In instantiation of 'PRBool nsClassHashtable<KeyClass, T>::Get(nsClassHashtable<KeyClass, T>::KeyType, T**) const [with KeyClass = nsDepCharHashKey; T = nsINIParser::INIValue; PRBool = int; nsClassHashtable<KeyClass, T>::KeyType = const char*]':
/build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsINIParser.cpp:227:45: required from here
/build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsClassHashtable.h:101:18: error: 'GetEntry' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
/build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsClassHashtable.h:101:18: note: declarations in dependent base 'nsTHashtable<nsBaseHashtableET<nsDepCharHashKey, nsAutoPtr<nsINIParser::INIValue> > >' are not found by unqualified lookup
/build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsClassHashtable.h:101:18: note: use 'this->GetEntry' instead

In file included from /build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsClassHashtable.h:41:0,
                 from /build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsINIParser.h:47,
                 from /build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsINIParser.cpp:41:
/build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsBaseHashtable.h: In instantiation of 'PRBool nsBaseHashtable<KeyClass, DataType, UserDataType>::Put(nsBaseHashtable<KeyClass, DataType, UserDataType>::KeyType, UserDataType) [with KeyClass = nsDepCharHashKey; DataType = nsAutoPtr<nsINIParser::INIValue>; UserDataType = nsINIParser::INIValue*; PRBool = int; nsBaseHashtable<KeyClass, DataType, UserDataType>::KeyType = const char*]':
/build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsINIParser.cpp:241:39: required from here
/build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsBaseHashtable.h:145:35: error: 'PutEntry' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
/build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsBaseHashtable.h:145:35: note: declarations in dependent base 'nsTHashtable<nsBaseHashtableET<nsDepCharHashKey, nsAutoPtr<nsINIParser::INIValue> > >' are not found by unqualified lookup
/build/buildd/kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsBaseHashtable.h:145:35: note: use 'this->PutEntry' instead

changing two lines should allow building in quantal (as long as this was the only problem/error):
kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsClassHashtable.h line 101:
change 'GetEntry' to 'this->GetEntry'
kompozer-0.8~b3.dfsg.1/mozilla/xpcom/glue/nsBaseHashtable.h line 145:
change 'PutEntry' to 'this->PutEntry'