Today, i use a gcc-3.3.5 and i fixed the compiler error (workaround: cast &click_compare<T> to (int (*)(const void*, const void*, void*)) in template <typename T> int click_qsort(T *base, size_t n) (include/click/glue.hh)), but then there is a internal compiler error while compiling elements/ethernet/arpfaker.cc. So i think, it's better (and faster) to use a recent version of the gcc instead of fixing the click-code for older gcc-versions. On Donnerstag, 4. Juni 2009, JiaFenggen wrote: > yes,my gcc version is 3.2.2.I patch the config.h.in the original error > disapear but the new emit,the error output is as follows: > > " > > CXX ../lib/confparse.cc > In file included from ../lib/confparse.cc:32: > ../include/click/hashtable.hh:364: partial specialization `HashTable<T, > void>' declared `friend' > ../include/click/hashtable.hh:419: partial specialization `HashTable<T, > void>' declared `friend' > In file included from ../include/click/standard/addressinfo.hh:5, > from ../lib/confparse.cc:41: > ../include/click/hashmap.hh:221: warning: `typename > _HashMap_const_iterator<K, V>::unspecified_bool_type' is implicitly a > typename > ../include/click/hashmap.hh:221: warning: implicit typename is deprecated, > please see the documentation for details > ../include/click/hashmap.hh:222: no `_HashMap_const_iterator<K, > V>::operator bool (_HashMap_const_iterator<K, V>::*)() const() const' > member function declared in class `_HashMap_const_iterator<K, V>' > ../include/click/hashmap.hh:222: template definition of non-template ` > _HashMap_const_iterator<K, V>::operator bool (_HashMap_const_iterator<K, > V>::*)() const() const' > ../include/click/hashmap.hh:424: warning: `typename > _HashMap_const_iterator<K, void*>::unspecified_bool_type' is implicitly a > typename > ../include/click/hashmap.hh:424: warning: implicit typename is deprecated, > please see the documentation for details > ../include/click/hashmap.hh:425: no `_HashMap_const_iterator<K, > void*>::operator bool (_HashMap_const_iterator<K, void*>::*)() const() > const ' member function declared in class `_HashMap_const_iterator<K, > void*>' ../include/click/hashmap.hh:425: template definition of > non-template ` _HashMap_const_iterator<K, void*>::operator bool > (_HashMap_const_iterator<K, void*>::*)() const() const' > ../include/click/hashmap.hh:562: warning: `typename > _HashMap_const_iterator<K, T*>::unspecified_bool_type' is implicitly a > typename > ../include/click/hashmap.hh:562: warning: implicit typename is deprecated, > please see the documentation for details > ../include/click/hashmap.hh:563: no `_HashMap_const_iterator<K, > T*>::operator _HashMap_const_iterator<K, void*>::unspecified_bool_type() > const' member function declared in class `_HashMap_const_iterator<K, T*>' > ../include/click/hashmap.hh:563: template definition of non-template ` > _HashMap_const_iterator<K, T*>::operator _HashMap_const_iterator<K, > void*>::unspecified_bool_type() const' > make[1]: *** [confparse.o] Error 1 > make[1]: Leaving directory `/home/jfg/click/click-1.7.0rc1/userlevel' > make: *** [userlevel] Error 2 > > " > > sees there are some place to change,waiting for you reply.thanks. > > Yours,Fenggen > > > can you please check your compiler-version (gcc -v). Redhat 9.0 uses > > 3.2.2, i think. In click-1.5, the macro CLICK_DEPRECATED is define as > > empty string for that gcc-version. In click-1.7.0 it is defined > > as "__attribute__((deprecated))" for gcc-version newer than 3.0 . > > Looks like this is wrong in config.h.in. The Definition in click-1.5 > > seems to be right. > > The patch (attachment) should fix it. It changes the config.h.in. Please, > > apply the patch and run configure again and check whether it works. > > > > Best regards, > > Robert > > > > > hi,all, > > > > > > I am compiling user level click on linux,my linux kernel version is > > > > > > :2.4.20-8smp(redhat 9.0),when i compile click-1.7.0rc1(just > > > : "./configure > > > > > > and make"),it complains: > > > > > > "make[1]: Entering directory `/usr/click-1.7.0rc1/userlevel' > > > echo "userlevel app aqm ethernet icmp ip standard tcpudp threads" | > > > ../click-buildtool findelem -r userlevel -p .. -X ./elements.exclude > > > > elements.conf ../click-buildtool elem2make -x "addressinfo.o > > > alignmentinfo.o errorelement.o portinfo.o scheduleinfo.o" < > > > elements.conf > elements.mk make[1]: Leaving directory > > > `/usr/click-1.7.0rc1/userlevel' make[1]: Entering directory > > > `/usr/click-1.7.0rc1/userlevel' > > > CXX ../lib/string.cc > > > CXX ../lib/straccum.cc > > > CXX ../lib/nameinfo.cc > > > In file included from ../include/click/element.hh:7, > > > from ../include/click/router.hh:4, > > > from ../lib/nameinfo.cc:23: > > > ../include/click/packet.hh:587: semicolon missing after enum > > > declaration ../include/click/packet.hh:587: warning: `deprecated' > > > attribute ignored make[1]: *** [nameinfo.o] Error 1 > > > make[1]: Leaving directory `/usr/click-1.7.0rc1/userlevel' > > > make: *** [userlevel] Error 2 > > > > > > " > > > > > > I have tried click-1.6.0 but end with the same > > > error,however,click-1.5.0 compiles ok on 2.4.20. > > > > > > But on kernel 2.6(Fedora),all three versions compiles ok,is there > > > kernel version dependence of click? > > > > > > Yours,Fenggen > > _________________________________________________________________ > 上Windows Live 中国首页,下载最新版Messenger! > http://www.windowslive.cn
_______________________________________________ click mailing list [email protected] https://amsterdam.lcs.mit.edu/mailman/listinfo/click
