On 17/04/08 at 18:39 +0200, David Bremner wrote:
> 
> I have successfully built sketch 0.2.59-3 in an amd64 sid qemubuilder with
> gcc 4.2 and gcc 4.3.
> 
> Any ideas for how to test?  I guess I can install a real amd64 system
> and make an i386 chroot.  If the problem is with building in an i386
> chroot on amd64 is that still an RC bug?

Hi,

It seems that the problem is only triggered when building with gcc-4.3
from i386, and running on an x86_64 CPU. I could reproduce the problem
by building locally, and testing on pergolesi. I also tested on an Intel
x86_64 CPU (Xeon), and the problem is also reproduced, so it's not
specific to Opterons.

I think that there's a bug in sketch, that is always there, but only
triggered in that specific case (at least with those examples). A binary
generated by gcc 4.2 is not affected, but that's probably because gcc
4.3 optimises something away, triggering the bug.

Interesting output:
Running on amd64, with a binary generated by gcc 4.3
pastel-53:/tmp/sketch-0.2.59/Doc# ../sketch -D ex070 manexamples.sk 
truncatedcone.sk(4) : warning, vector 'I' is never referenced
truncatedcone.sk(7) : warning, vector 'K' is never referenced
truncatedcone.sk(4) : warning, vector 'I' is never referenced
truncatedcone.sk(7) : warning, vector 'K' is never referenced
summary: 4 warning
remark, node=1 probe=0.0 swap=0 split=0 (in=0 out=0) ols=0/0
remark, scene bb=(-1,0)(1,nan)
remark, writing 1 objects
% Sketch output, version 0.2 (build 59d, Thu Apr 17 22:45:56 2008)
% Output language: PSTricks,LaTeX
\psset{linewidth=.3pt}
\begin{pspicture}(-1,0)(1,nan)
\pstVerb{1 setlinejoin}
\psline(1,0)(.924,.383)(.707,.707)(.383,.924)(0,1)(-.383,.924)(-.707,.707)(-.924,.383)(-1,0)
\end{pspicture}% End sketch output

=> bug triggered.

Now, same binary, same system, running inside valgrind:

pastel-53:/tmp/sketch-0.2.59/Doc# valgrind ../sketch -D ex070 manexamples.sk 
==13605== Memcheck, a memory error detector.
==13605== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==13605== Using LibVEX rev 1804, a library for dynamic binary translation.
==13605== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==13605== Using valgrind-3.3.0-Debian, a dynamic binary instrumentation 
framework.
==13605== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==13605== For more details, rerun with: -v
==13605== 
truncatedcone.sk(4) : warning, vector 'I' is never referenced
truncatedcone.sk(7) : warning, vector 'K' is never referenced
truncatedcone.sk(4) : warning, vector 'I' is never referenced
truncatedcone.sk(7) : warning, vector 'K' is never referenced
summary: 4 warning
remark, node=1 probe=0.0 swap=0 split=0 (in=0 out=0) ols=0/0
==13605== Conditional jump or move depends on uninitialised value(s)
==13605==    at 0x804F16C: fold_min_max_pt_3d (geometry.c:398)
==13605==    by 0x8055061: get_extent_of_line (scene.c:1548)
==13605==    by 0x80550F9: get_extent (scene.c:1618)
==13605==    by 0x804BBEC: emit (emit.c:779)
==13605==    by 0x8053B8D: main (main.c:99)
remark, scene bb=(-1,0)(1,1)
remark, writing 1 objects
% Sketch output, version 0.2 (build 59d, Thu Apr 17 22:45:56 2008)
% Output language: PSTricks,LaTeX
\psset{linewidth=.3pt}
\begin{pspicture}(-1,0)(1,1)
\pstVerb{1 setlinejoin}
==13605== 
==13605== Conditional jump or move depends on uninitialised value(s)
==13605==    at 0x804F147: fold_min_max_pt_3d (geometry.c:378)
==13605==    by 0x8055061: get_extent_of_line (scene.c:1548)
==13605==    by 0x8054F30: xy_overlap_p (scene.c:1637)
==13605==    by 0x804BD7E: emit (emit.c:822)
==13605==    by 0x8053B8D: main (main.c:99)
==13605== 
==13605== Conditional jump or move depends on uninitialised value(s)
==13605==    at 0x804F16C: fold_min_max_pt_3d (geometry.c:398)
==13605==    by 0x8055061: get_extent_of_line (scene.c:1548)
==13605==    by 0x8054F30: xy_overlap_p (scene.c:1637)
==13605==    by 0x804BD7E: emit (emit.c:822)
==13605==    by 0x8053B8D: main (main.c:99)
\psline(1,0)(.924,.383)(.707,.707)(.383,.924)(0,1)(-.383,.924)(-.707,.707)(-.924,.383)(-1,0)
\end{pspicture}% End sketch output
==13605== 
==13605== ERROR SUMMARY: 36 errors from 3 contexts (suppressed: 13 from 1)
==13605== malloc/free: in use at exit: 116,882 bytes in 2,555 blocks.
==13605== malloc/free: 3,834 allocs, 1,279 frees, 322,352 bytes allocated.
==13605== For counts of detected errors, rerun with: -v
==13605== searching for pointers to 2,555 not-freed blocks.
==13605== checked 117,132 bytes.
==13605== 
==13605== LEAK SUMMARY:
==13605==    definitely lost: 97,376 bytes in 2,535 blocks.
==13605==      possibly lost: 79 bytes in 1 blocks.
==13605==    still reachable: 19,427 bytes in 19 blocks.
==13605==         suppressed: 0 bytes in 0 blocks.
==13605== Rerun with --leak-check=full to see details of leaked memory.

=> bug not triggered, but errors.
-- 
| Lucas Nussbaum
| [EMAIL PROTECTED]   http://www.lucas-nussbaum.net/ |
| jabber: [EMAIL PROTECTED]             GPG: 1024D/023B3F4F |



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to