关于CFlag的兼容性问题
我用的CFlag是 "-march=athlonxp -mtune=athlonxp -O2 -pipe -fomit-frame-pointer",从Stag1开始编译,但是vuescan(一个商业的第三方的扫描仪驱动软件)运行时出现段错误了。(这个问题从gcc-3.4一直延续到gcc-4.1编译的系统)是不是针对特定cpu优化编译的系统会和第三方的预编译软件产生兼容性问题呢?还是使用的gcc版本太高,编译的系统和那个程序不兼容?(貌似我以前用来跑vuescan的系统是gcc-3.3.6的) 应该不是cflag的问题,我这儿gcc-3.4.5可以跑vuescan。有什么错误? 运行vuescan就 segment fault,所以一直很郁闷曾经想过只用" -O2 -pipe -fomit-frame-pointer"来编译试试看,但gentoo就没意义了 我在另一台机上用 "-march=pentium3 -mtune=pentium3 -Os -pipe -mfpmath=sse -mmmx -msse -fomit-frame-pointer -fforce-addr -fmove-all-movables -freduce-all-givs -freorder-blocks -freorder-functions -fexpensive-optimizations -falign-functions -falign-labels -falign-loops -falign-jumps -frename-registers-funit-at-a-time -fbranch-target-load-optimize"
结果realplayer 也是 segment fault ,太过极端的CFLAGS也会影响兼容性吧? ...太过极端的CFLAGS也会影响兼容性吧?
这个确实如此。你那个O2的cflags不算极端,所以我说可能并非是祸源,不过你去掉-fomit-frame-pointer试试。 我在另一台机上用 "-march=pentium3 -mtune=pentium3 -Os -pipe -mfpmath=sse -mmmx -msse -fomit-frame-pointer -fforce-addr -fmove-all-movables -freduce-all-givs -freorder-blocks -freorder-functions -fexpensive-optimizations -falign-functions -falign-labels -falign-loops -falign-jumps -frename-registers-funit-at-a-time -fbranch-target-load-optimize"
结果realplayer 也是 segment fault ,太过极端的CFLAGS也会影响兼容性吧?
有够极端的 昨晚装gcc-4.1 发现"-fmove-all-movables -freduce-all-givs"已经被drop了。貌似manpage里面说是不稳定的CFLAGS 借鉴下
http://gentoo-wiki.com/CFLAGS
http://gentoo-wiki.com/CFLAGS_matrix
http://gentoo-wiki.com/TIP_Safe_LDFLAGS Tnx
页:
[1]