[Click] [PATCH] Fix '--disable-int64' build error.

Eddie Kohler kohler at cs.ucla.edu
Tue Sep 18 12:16:54 EDT 2007


Thanks Joonwoo, I checked in a variant of this patch that uses 
ELEMENT_REQUIRES instead.  Try make elemlist to test it.

Which elements don't work right under !HAVE_INT64_TYPES at userlevel?

Eddie


Joonwoo Park wrote:
> Hi,
> There is a yet another build error with !HAVE_INT64_TYPES.
> My patch fixes only 'linuxmodule' build error.
> ** We have same problem at userlevel but to solve that we need
> compromise some functionality or enable String's int64 stuff always.
> **
> I couldn't work for it because of I can't sure what is the best solution.
> 
> -
> Signed-off-by: Joonwoo Park <joonwpark81 at gmail.com>
> 
>  elements/linuxmodule/perfcountaccum.cc |    2 ++
>  elements/linuxmodule/perfcountaccum.hh |    9 +++++++--
>  elements/linuxmodule/setperfcount.cc   |    2 ++
>  3 files changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/elements/linuxmodule/perfcountaccum.cc
> b/elements/linuxmodule/perfcountaccum.cc
> index dd1367a..b9d92f0 100644
> --- a/elements/linuxmodule/perfcountaccum.cc
> +++ b/elements/linuxmodule/perfcountaccum.cc
> @@ -65,6 +65,7 @@ PerfCountAccum::initialize(ErrorHandler *errh)
>  inline void
>  PerfCountAccum::smaction(Packet *p)
>  {
> +#if HAVE_INT64_TYPES
>  #if __i386__
>    unsigned l, h;
>    rdpmc(_which, l, h);
> @@ -74,6 +75,7 @@ PerfCountAccum::smaction(Packet *p)
>  #else
>    // add other architectures here
>  #endif
> +#endif
>    _count++;
>  }
> 
> diff --git a/elements/linuxmodule/perfcountaccum.hh
> b/elements/linuxmodule/perfcountaccum.hh
> index be8e430..c86111d 100644
> --- a/elements/linuxmodule/perfcountaccum.hh
> +++ b/elements/linuxmodule/perfcountaccum.hh
> @@ -54,8 +54,13 @@ class PerfCountAccum : public PerfCountUser { public:
>   private:
> 
>    int _which;
> -  uint64_t _accum;
> -  uint64_t _count;
> +#if HAVE_INT64_TYPES
> +  typedef uint64_t counter_t;
> +#else
> +  typedef uint32_t counter_t;
> +#endif
> +  counter_t _accum;
> +  counter_t _count;
> 
>    static String read_handler(Element *, void *);
>    static int reset_handler(const String &, Element *, void *, ErrorHandler *);
> diff --git a/elements/linuxmodule/setperfcount.cc
> b/elements/linuxmodule/setperfcount.cc
> index e991e18..95c5183 100644
> --- a/elements/linuxmodule/setperfcount.cc
> +++ b/elements/linuxmodule/setperfcount.cc
> @@ -58,6 +58,7 @@ SetPerfCount::configure(Vector<String> &conf,
> ErrorHandler *errh)
>  inline void
>  SetPerfCount::smaction(Packet *p)
>  {
> +#if HAVE_INT64_TYPES
>  #if __i386__
>    unsigned l, h;
>    rdpmc(_which, l, h);
> @@ -66,6 +67,7 @@ SetPerfCount::smaction(Packet *p)
>  #else
>    // code for other architectures
>  #endif
> +#endif
>  }
> 
>  void
> -
> 
> Joonwoo Park (Jason Park)


More information about the click mailing list