胸花厂家
免费服务热线

Free service

hotline

010-00000000
胸花厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

图gcc编译器gcc编译器与cpu指令集-【xinwen】

发布时间:2021-10-12 10:33:02 阅读: 来源:胸花厂家

在Gentoo下升级gcc好多次了,从4.5.3到4.6.3,然后4.7都没问题,最近升级4.9.3时,却被卡住了。。。持续报错,完全无法继续。configure: error: cannot compute suffix of object files: cannot compilechecking for x86_64-pc-linux-gnu-gcc... /data/tmp/portage/sys-devel/gcc-4.9.3/work/build/./gcc/xgcc -B/data/tmp/portage/sys-devel/gcc-4.9.3/work/build/./gcc/ -B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-includechecking for suffix of object files... configure: error: in `/data/tmp/portage/sys-devel/gcc-4.9.3/work/build/x86_64-pc-linux-gnu/libgcc':configure: error: cannot compute suffix of object files: cannot compile=====网上对这个error,描述都比较多,通常都是因为mpc/mpfr/gmp的库文件无法找到,通过设置LD_LIBRARY_PATH可以解决。但这问题在我这里不存在,这几个库肯定存在,以往升级gcc都会用到,从来没特殊设置。跟着上述错误继续找下去。。。发现以下的详细信息configure:3602: /data/tmp/portage/sys-devel/gcc-4.9.3/work/build/./gcc/xgcc -B/data/tmp/portage/sys-devel/gcc-4.9.3/work/build/./gcc/ -B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include -c -g -march=core2 -mtune=i686 -O2 -pipe conftest.c >&5conftest.c:1:0: error: CPU you selected does not support x86-64 instruction set/* confdefs.h */^configure:3606: $? = 1configure: failed program was:| /* confdefs.h */| #define PACKAGE_NAME "GNU C Runtime Library"| #define PACKAGE_TARNAME "libgcc"| #define PACKAGE_VERSION "1.0"| #define PACKAGE_STRING "GNU C Runtime Library 1.0"| #define PACKAGE_BUGREPORT ""| #define PACKAGE_URL " "| /* end confdefs.h. */|| int| main ()| {|| ;| return 0;| }configure:3620: error: in `/data/tmp/portage/sys-devel/gcc-4.9.3/work/build/x86_64-pc-linux-gnu/libgcc':configure:3623: error: cannot compute suffix of object files: cannot compileconftest.c:1:0: error: CPU you selected does not support x86-64 instruction set这样来说,就是前面的编译根本没执行了。。。问题是我这 也用很久,从来没变过。gcc从4.5.3升级到4.6.3到4.7,一直都用march=core2 -mtune=i686来的,现在做4.9.3,反而过不去了。根据网上的提示,修改march=native后,显示arch=corei7-avx,还是无法继续。只有修改march=x86_64,删除mtune后,才继续走下去,得以完成整个编译。之后再用march=core2重新编译其他程序,发现也能通过。问题不是出在march,而是其后的mtune=i686上。march=core2 mtune=686本身是无效设置,在以前编译检查不是那么严格时一直都没问题,但在新的gcc编译时,检查更为严格,然后出现一系列的问题。将选项mtune修改或删除,问题解决。========================gcc 内部使用 CPUID 指令获取 CPU 信息,采用 -march=native,通常会认为是最优选择。相关代源码:// see gcc-4.8.5/gcc/config/i386/driver-i386.cconst char *host_detect_local_cpu (int argc, const char **argv);// see gcc-4.8.5/gcc/config/i386/cpuid.hstatic __inline unsigned int__get_cpuid_max (unsigned int __ext, unsigned int *__sig);获取CPU march的命令:gcc -c -Q -march=native --help=target | grep marchLinux /proc/cpuinfo 本质上也是用了 CPUID 指令Reference:====================== -Options.html‘core2’Intel Core 2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3 instruction set support.‘sandybridge’Intel Sandy Bridge CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES and PCLMUL instruction set support.‘ivybridge’Intel Ivy Bridge CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AES, PCLMUL, FSGSBASE, RDRND and F16C instruction set support.‘haswell’Intel Haswell CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2 and F16C instruction set support.‘broadwell’Intel Broadwell CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX and PREFETCHW instruction set support.‘skylake’Intel Skylake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, CLFLUSHOPT, XSAVEC and XSAVES instruction set support.‘bonnell’Intel Bonnell CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3 and SSSE3 instruction set support.‘silvermont’Intel Silvermont CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PCLMUL and RDRND instruction set support.‘knl’Intel Knight's Landing CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW, AVX512F, AVX512PF, AVX512ER and AVX512CD instruction set support.

北京nk细胞疗法

北京干细胞机构哪家好

打一针免疫细胞多少钱

哪个医院有nk细胞疗法