daniel-santos / distccflags

6 stars 2 forks source link

Why the result is such short? #1

Closed PetrusZ closed 6 years ago

PetrusZ commented 6 years ago

On my machine,using command: $ gcc -v -E -x c -march=native -mtune=native - < /dev/null 2>&1 | grep cc1 | perl -pe 's/^.* - //g;' | perl -pe 's/-mno-.*? //g;'' got a long sting, -march=westmere -mmmx -msse -msse2 -msse3 -mssse3 -mcx16 -msahf -mpopcnt -msse4.2 -msse4.1 -mfxsr --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=westmere

But, distccflags script only show me a very short result: CFLAGS="-march=westmere -mno-aes -mno-pclmul"

Can distccflag's result replace the above long result? Or just add the missing part?

daniel-santos commented 6 years ago

Why do you want a long string? distccflags is intended give you the shortest string necessary. So yes, you can use what distccflags has given you.

By the way, would you be so kind as to post your /proc/cpuinfo or tell me exactly which processor you are using? Your case of the flags -mno-aes -mno-pclmul has only been presumed to exist, and your case proves that it does. This is good because it means that the previous mechanism of filtering out all -mno-* flags is indeed bad and we have been arguing about this quite a lot. Thanks!

EDIT: Can you also please give me the full output from these commands?

$ gcc -dumpversion $ gcc -v -E -x c -march=native -mtune=native - < /dev/null 2>&1 | grep cc1

This will be VERY helpful!

PetrusZ commented 6 years ago

Thank you for your reply. I don't care about long or short, but the contrast just confuse me.

My cpuinfo is:

vendor_id   : GenuineIntel
cpu family  : 6
model       : 37
model name  : Intel(R) Core(TM) i5 CPU       M 430  @ 2.27GHz
stepping    : 2
microcode   : 0x9
cpu MHz     : 2380.073
cache size  : 3072 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm pti tpr_shadow vnmi flexpriority ept vpid dtherm ida arat
bugs        : cpu_meltdown spectre_v1 spectre_v2
bogomips    : 4521.92
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual

gcc -dumpversion's output is 7.3.0

gcc -v -E -x c -march=native -mtune=native - < /dev/null 2>&1 | grep cc1's output is: /usr/libexec/gcc/x86_64-pc-linux-gnu/7.3.0/cc1 -E -quiet -v - -march=westmere -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mno-movbe -mno-aes -mno-sha -mno-pclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-sgx -mno-bmi2 -mno-tbm -mno-avx -mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt -mno-rtm -mno-hle -mno-rdrnd -mno-f16c -mno-fsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mno-xsave -mno-xsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx5124fmaps -mno-avx5124vnniw -mno-clwb -mno-mwaitx -mno-clzero -mno-pku -mno-rdpid --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=westmere

Hopefully it's useful.

daniel-santos commented 6 years ago

Yes, this is very helpful. Thank you!!