[Click] user level click compile problem with click-1.7.0rc1 on linux 2.4

Robert Sombrutzki sombrutz at informatik.hu-berlin.de
Thu Jun 4 06:50:31 EDT 2009


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





More information about the click mailing list