neptune 发表于 2006-8-10 22:52:41

关于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的)

Hauser 发表于 2006-8-11 01:32:50

应该不是cflag的问题,我这儿gcc-3.4.5可以跑vuescan。有什么错误?

neptune 发表于 2006-8-11 10:20:02

运行vuescan就 segment fault,所以一直很郁闷曾经想过只用" -O2 -pipe -fomit-frame-pointer"来编译试试看,但gentoo就没意义了

neptune 发表于 2006-8-11 14:48:42

我在另一台机上用 "-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也会影响兼容性吧?

Hauser 发表于 2006-8-11 15:04:10

...太过极端的CFLAGS也会影响兼容性吧?
这个确实如此。你那个O2的cflags不算极端,所以我说可能并非是祸源,不过你去掉-fomit-frame-pointer试试。

cnhnln 发表于 2006-8-12 02:03:27

我在另一台机上用 "-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也会影响兼容性吧?
有够极端的

neptune 发表于 2006-8-12 10:04:30

昨晚装gcc-4.1 发现"-fmove-all-movables -freduce-all-givs"已经被drop了。貌似manpage里面说是不稳定的CFLAGS

cnhnln 发表于 2006-8-12 11:44:13

借鉴下
http://gentoo-wiki.com/CFLAGS
http://gentoo-wiki.com/CFLAGS_matrix
http://gentoo-wiki.com/TIP_Safe_LDFLAGS

neptune 发表于 2006-8-14 21:37:41

Tnx
页: [1]
查看完整版本: 关于CFlag的兼容性问题