Hi,

> > stack_fcall_CFLAGS = $(AM_CFLAGS) -O0

I tried 'stack_fcall_CFLAGS = $(AM_CFLAGS) -O0' before posting.
However, it seemed that is was not enough.

Next lines are the output of make with Makefile.am in which 
'stack_fcall_CFLAGS = $(AM_CFLAGS) -O0' line is added:

    $ gcc -DHAVE_CONFIG_H -I. -I..    -O0 -g -O2 -MT stack_fcall-stack-fcall.o 
...
    mv -f .deps/stack_fcall-stack-fcall.Tpo .deps/stack_fcall-stack-fcall.Po
    $ gcc -O0 -g -O2   -o stack-fcall stack_fcall-stack-fcall.o  

Both -O0 and -O2 are specified. -O2 may come from CFLAGS. 
What happens if both -O0 and -O2 are specified.
I wrote smaller program.

    [yamato@localhost]/tmp% cat foo.c
    cat foo.c
    int foo(void)  {return 3;}
    int main(void) {return foo();}
    [yamato@localhost]/tmp% PATH=/usr/bin gcc -c -O0 -O2 foo.c; 
/usr/bin/objdump -d foo.o
    ...
    Disassembly of section .text:

    0000000000000000 <foo>:
       0:       b8 03 00 00 00          mov    $0x3,%eax
       5:       c3                      retq   

    Disassembly of section .text.startup:

    0000000000000000 <main>:
       0:       b8 03 00 00 00          mov    $0x3,%eax
       5:       c3                      retq   
    [yamato@localhost]/tmp% PATH=/usr/bin gcc -c -O0 foo.c; /usr/bin/objdump -d 
foo.o
    ...
    Disassembly of section .text:

    0000000000000000 <foo>:
       0:       55                      push   %rbp
       1:       48 89 e5                mov    %rsp,%rbp
       4:       b8 03 00 00 00          mov    $0x3,%eax
       9:       5d                      pop    %rbp
       a:       c3                      retq   

    000000000000000b <main>:
       b:       55                      push   %rbp
       c:       48 89 e5                mov    %rsp,%rbp
       f:       e8 00 00 00 00          callq  14 <main+0x9>
      14:       5d                      pop    %rbp
      15:       c3                      retq   

The generated codes are different between "-O0 -O2" and "-O0".
The order of -O0 and -O2 in a command line is important?
I don't want to inspect anymore:(

info doc of automake shows the way to how to define per object
CFLAGS. It looks tricky for me.
(I'm using Fedora 20.)

Masatake YAMATO

On Thu, 15 May 2014 00:43:19 +0400, "Dmitry V. Levin" <l...@altlinux.org> wrote:
> On Wed, May 14, 2014 at 01:16:29PM +0900, Masatake YAMATO wrote:
> [...]
>> diff --git a/tests/stack-fcall.c b/tests/stack-fcall.c
>> new file mode 100644
>> index 0000000..3e6ffd4
>> --- /dev/null
>> +++ b/tests/stack-fcall.c
>> @@ -0,0 +1,27 @@
>> +#include <unistd.h>
>> +#include <sys/types.h>
>> +
>> +/* volatile is used to protect 'call' is converted to 'jump'
>> +   by gcc.
>> +   
>> +   I cannot find the way not to apply -O0 to this program 
>> +   in info doc of automake. */
> 
> stack_fcall_CFLAGS = $(AM_CFLAGS) -O0
> 
> 
> -- 
> ldv

------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to