[Click] Click on IA64

Eddie Kohler kohler at CS.UCLA.EDU
Wed Jun 23 17:35:55 EDT 2004


Oh dear -- I know what this is: a ubiquitous Click pattern that fails 
on 64-bit machines.  Let me check in some changes to try to fix this.

(Specifics:  The right way to terminate a cp_va_parse is

    cp_va_parse(conf, this, errh, ...., cpEnd)

However, people (including me!) often pass 0 instead of cpEnd.  This 
works on 32-bit machines, but on 64-bit machines, you'd have to say 
"(void *)0" to pass enough 0 bits.  I'll change the code to say cpEnd.)

Eddie


On Jun 23, 2004, at 4:26 PM, Qinghua(Kevin) Ye wrote:

> Hi, Eddie,
>
> I am debugging it, but I have not find the reason. The debug 
> information is:
>
> #0  cp_find_argtype (command=0x7f00000000 <Address 0x7f00000000 out of
> bounds>)
>     at ../lib/confparse.cc:2082
> #1  0x00000000004cb97e in (anonymous
> namespace)::CpVaHelper::develop_values(__va_list_tag*, ErrorHandler*)
> (this=0x7fbffff190, val=0x7fbffff1c0,
>     errh=0x7fbffff3e0) at ../lib/confparse.cc:2847
> #2  0x00000000004cd00f in cp_va_parse(Vector<String> const&, Element*,
> ErrorHandler*, ...) (argv=@0x7fbffff460, context=0x65e650,
> errh=0x7fbffff3e0)
>     at ../lib/confparse.cc:3117
> #3  0x000000000048e6cc in Strip::configure(Vector<String>&, 
> ErrorHandler*) (
>     this=0x7f00000000, conf=@0x7fbffff2c8, errh=0x7fbffff2c0)
>     at ../elements/standard/strip.cc:40
> #4  0x00000000004d4ca6 in Router::initialize(ErrorHandler*) 
> (this=0x65e140,
>     errh=0x6518b0) at vector.hh:227
> #5  0x00000000004b3f73 in parse_configuration (text=@0x7f00000000,
>     text_is_expr=101, hotswap=false, errh=0x6518b0) at click.cc:276
> #6  0x00000000004b4688 in main (argc=6646624, argv=0x7fbffff918)
>     at string.hh:21
>
> Could you give me some idea? Thanks.
>
> Qinghua(Kevin) Ye
> ----- Original Message -----
> From: "Eddie Kohler" <kohler at CS.UCLA.EDU>
> To: "Qinghua(Kevin) Ye" <qye at trlabs.ca>
> Cc: <click at amsterdam.lcs.mit.edu>
> Sent: Wednesday, June 23, 2004 5:05 PM
> Subject: Re: [Click] Click on IA64
>
>
>> Hi Qinghua,  thanks for the bug reports!  I've patched both of them.
>>
>> Now, can you use 'gdb' on click conf/test.click and report where it
>> crashes?
>>
>> Eddie
>>
>>
>> On Jun 23, 2004, at 3:43 PM, Qinghua(Kevin) Ye wrote:
>>> Hi, Eddie,
>>>
>>> Thanks for your reply.
>>>
>>> When I run userlevel click, I used the test.click configuration file
>>> provided in $CLICK/conf/test.click. So, I used the Align.
>>>
>>> The bug I encountered is as follows: (I run on Sun Fire V20Z with AMD
>>> Opteron processors )
>>> 1) There is no definition of these functions when HAVE_INT64_TYPES 
>>> and
>>> HAVE_64_BIT_LONG is true.
>>>     cp_unsigned(const String &str, uint64_t *return_value)
>>>     cp_integer(const String &str, int64_t *return_value)
>>>     ....
>>>    I simply commented line 80 in $CLICK/include/click/confparse.hh:
>>>    # if !HAVE_64_BIT_LONG
>>> 2) elements/standard/simplequeue.cc line205 and line 225, there is 
>>> type
>>> converting error, since in IA64, the int and void * cannot match. I
>>> changed:
>>>     int which = reinterpret_cast<int>(thunk);         to
>>>     long which = reinterpret_cast<long>(thunk);
>>>
>>> That's all I modified. Hope to get more help from you. Thanks.
>>>
>>> Regards,
>>> Qinghua(Kevin) Ye
>>
>
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click



More information about the click mailing list