Seamonkey mit Clang und ohne SSE2

emha

Well-Known Member
Hallo zusammen,

nach einem Wechsel von gcc zu clang, bricht der Versuch seamonkey 2.12.2_1 neu zu bauen mit:
Code:
~~~
In file included from /usr/include/clang/3.0/xmmintrin.h:31:
/usr/include/clang/3.0/mmintrin.h:28:2: error: #error "MMX instruction set not enabled"
#error "MMX instruction set not enabled"
~~~
ab.
OK, die Kiste unterstützt SSE2 nicht, aber gcc hat seamonkey 2.12.2 ohne zu meckern gebaut.
Ich habe dann das hier gefunden und nach make config die entsprechenden Makefiles geändert und den ganzen INTEL_ARCHITECTURE/SSE2-Teil auskommentiert bzw. -mmmx eingefügt.
Ob's klappt? Mal schauen...

Clang scheint ja noch Probleme mit MMX und SSE2 zu haben, also überlege ich mir, --host=, --target=, --march, etc. direkt in meine /etc/make.conf zu packen. Das wäre wohl die einfachste Lösung, anstatt Bugreports zu verschicken; und an wen? Clang? Dieser '-mmmx'-Bug besteht ja hier noch. Mozilla? Die Makefiles müssten doch anzupassen sein. Es wird doch 'nur' die Architektur überprüft und bei x86 hat man nun mal SSE2 zu haben, gell?!

Weiß jemand ob clang bei entsprechenden Vorgaben (--march/--arch) SSE2 ganz ausschließt?
Werden Vorgaben der make.conf ggf. überschrieben?

LG,
emha

p.s.:
Code:
$ cat /var/run/dmesg.boot
~~~
CPU: Intel Pentium III (1002.30-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x686  Family = 6  Model = 8  Stepping = 6
  Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
~~~
$ uname -srim
FreeBSD 9.0-RELEASE-p3 i386 GENERIC
$ clang -v                   
FreeBSD clang version 3.0 (branches/release_30 142614) 20111021
Target: i386-unknown-freebsd9.0
Thread model: posix

Nachtrag:
http://mxr.mozilla.org/mozilla-central/source/xpcom/glue/SSE.h#348:
"
* If you're writing code using inline assembly, you should guard it with a
* call to one of these functions. For instance:
*
* if (mozilla::supports_sse2()) {
* asm(" ... ");
* }
* else {
* ...
* }
"
 
Zuletzt bearbeitet:
Also...
clang bricht immer wieder mit Fehlern zum Thema SSE2 ab.
gcc46 läuft durch:
Seamonkey about:buildconfig:
Code:
Build tools
Compiler 	Version 	Compiler flags
gcc46 	gcc version 4.6.4 20121102 (prerelease) (FreeBSD Ports Collection) 	-isystem/usr/local/include -I/usr/local/include -Wall -Wpointer-arith -Wdeclaration-after-statement -Werror=return-type -Wtype-limits -Wempty-body -Wno-unused -Wno-overlength-strings -Wcast-align -O2 -pipe -fno-strict-aliasing -fno-strict-aliasing -ffunction-sections -fdata-sections -pipe -DNDEBUG -DTRIMMED -O2 -fomit-frame-pointer
g++46 	gcc version 4.6.4 20121102 (prerelease) (FreeBSD Ports Collection) 	-isystem/usr/local/include -I/usr/local/include -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wno-ctor-dtor-privacy -Wno-overlength-strings -Wno-invalid-offsetof -Wno-variadic-macros -Wcast-align -O2 -pipe -fno-strict-aliasing -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -O2 -fomit-frame-pointer -isystem/usr/local/include
Seamonkey about:addons
Enigmail 1.4.6
 
Zurück
Oben