Jim Meyering <[EMAIL PROTECTED]> writes:

> That makes me suspicious of your compiler.

Me too.

> What compiler/version/options are you using?
> Have you tried with and without optimization?
> Can you compile with a different compiler?

Or, if you really want that particular compiler combination to work,
you can see whether the instructions it generates are accurate.
On my platform, for example, I can do this:

   $ gdb ./cp
   (gdb) disas copy_reg
   No symbol "copy_reg" in current context.
   (gdb) disas copy_internal
   Dump of assembler code for function copy_internal:
   0x0804b500 <copy_internal+0>:        push   %ebp
   0x0804b501 <copy_internal+1>:        mov    %esp,%ebp
   ...

or I can do this:

   cd src
   gcc -I. -I../lib -O2 -S copy.c

(with the same arguments I used for copy.o) and look at copy.s.

This will require some expertise.  In my case copy_reg was inlined
into copy_internal, so I'm looking at over 2700 machine instructions.
But if you are familiar with low-level debugging then this will let
you know whether there's a compiler bug, and will give you something
concrete that you can report to your compiler writer.


_______________________________________________
Bug-coreutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-coreutils

Reply via email to