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" <[email protected]> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/strace-devel