Variable arguments problem in AMD64/Opteron

Hello, rooters everyone.
I have used a root in pentium environment.
But now I have a trouble when I met a AMD64.
Vararg(variable argument) in cint don’t support a AMD 64/Opteron.
I tried to modify the source code for this system, but I failed.
When I use the root in AMD64/Opteron environment?
Now… My AMD64 system killed my electric charges… :cry:

Hello,

Most of ROOT/CINT features are implemented in platform independent
manner. There are a few features, however, the implementation depends on Processor/Compiler/OS. Variable argument is one of such feature.

Attached is a program to analyse variable argument implementation with your environment. Will you kindly compile and execute this program and send me the output? I’ll investigate it.

Thank you
Masa Goto
t878b.cxx (2.02 KB)

I’ll attach the output file.
Thank you, Goto.

Environment :
CPU : AMD64 3200+
Memory : 512M
OS : Fedora Core 2 / Kernel 2.6.5
CC : GNU Compiler 3.3.3


0x7fbffff538 0x400cee sdisrcu
0x7fbffff534 2

0x7fbffff510 : 10 0 0 0
0x7fbffff514 : 30 0 0 0
0x7fbffff518 : 0 f6 ff bf
0x7fbffff51c : 7f 0 0 0
0x7fbffff520 : 40 f5 ff bf
0x7fbffff524 : 7f 0 0 0
0x7fbffff528 : 30 78 43 18
0x7fbffff52c : 3d 0 0 0
0x7fbffff530 : 30 6c 41 18
0x7fbffff534 : 2 0 0 0
0x7fbffff538 : ee c 40 0
0x7fbffff53c : 0 0 0 0
0x7fbffff540 : 6 0 0 0
0x7fbffff544 : 0 0 0 0
0x7fbffff548 : 30 ca 57 95
0x7fbffff54c : 2a 0 0 0
0x7fbffff550 : df c 40 0
0x7fbffff554 : 0 0 0 0
0x7fbffff558 : d2 4 0 0
0x7fbffff55c : 0 0 0 0
0x7fbffff560 : dd c 40 0
0x7fbffff564 : 0 0 0 0
0x7fbffff568 : c 0 0 0
0x7fbffff56c : 0 0 0 0
0x7fbffff570 : 1f 85 eb 51
0x7fbffff510 (char*)abcdefghijklmn 0x400cdf 0x7fbffff510
0x7fbffff510 (double)3.14 0x7fbffff510
0x7fbffff510 (int)1234 0x7fbffff510
0x7fbffff510 (char*)A 0x400cdd 0x7fbffff510
0x7fbffff510 (int)12 0x7fbffff510
0x7fbffff510 (int)97 0x7fbffff510
0x7fbffff510 ‘a=345 b=6.28 c=3229 d=x e=1.4142’ 0x400cdd 0x7fbffff510

0x7fbffff510 : 30 0 0 0
0x7fbffff514 : 40 0 0 0
0x7fbffff518 : 28 f6 ff bf
0x7fbffff51c : 7f 0 0 0
0x7fbffff520 : 40 f5 ff bf
0x7fbffff524 : 7f 0 0 0
0x7fbffff528 : 30 78 43 18
0x7fbffff52c : 3d 0 0 0
0x7fbffff530 : 30 6c 41 18
0x7fbffff534 : 2 0 0 0
0x7fbffff538 : f5 c 40 0
0x7fbffff53c : 0 0 0 0
0x7fbffff540 : 6 0 0 0
0x7fbffff544 : 0 0 0 0
0x7fbffff548 : 30 ca 57 95
0x7fbffff54c : 2a 0 0 0
0x7fbffff550 : df c 40 0
0x7fbffff554 : 0 0 0 0
0x7fbffff558 : d2 4 0 0
0x7fbffff55c : 0 0 0 0
0x7fbffff560 : dd c 40 0
0x7fbffff564 : 0 0 0 0
0x7fbffff568 : c 0 0 0
0x7fbffff56c : 0 0 0 0
0x7fbffff570 : 1f 85 eb 51
0x7fbffff5e8 0x400cf6 sdis
0x7fbffff5e4 2
0x7fbffff600
out_AMD64_Fedora_Core2.txt (2.05 KB)

Hello ,

Thank you for sending me the information.
Unfortunately, it looks like it is unable to support va_arg on AMD64/Opteron. Information in function arguments do not appear in the dump. The information must be in elsewhere and indirectly accessed. Having no official information, it is very difficult to capture variable arguments.

Thank you
Masa Goto