Thread: Wine and CS
View Single Post
Re: Wine and CS
Old
  (#4)
Pierre-Marie Baty
Roi de France
 
Pierre-Marie Baty's Avatar
 
Status: Offline
Posts: 5,049
Join Date: Nov 2003
Location: 46°43'60N 0°43'0W 0.187A
Default Re: Wine and CS - 01-03-2005

FIRST STAB!!!! DIE!!!!!!!!

lol nah... we may still need a canuck who speaks french around here

ok.. my 2 cents about that. <teacher mode="on"> Usually Linux libraries (for some weirdass reason, don't know why, it's not even in no RFC or stuff) they end up with _ix86, meaning in x86 the minimum processor level you gotta have to run it. Heavily simplified: you know the difference between processors. It's not only electronics, meaning that they don't *only* put more wires (or wire the existing ones better for that matter), they also invent new ASM (=assembly, machine language... sorry, I'm being obvious ) instuctions. Actually, that's more "instruction sets". For example, "MMX" that they invented in 1996 or around there, that stands for "MultiMedia eXtensions" is just a set of assembly instructions very audio/video-oriented that work on newest processors (supporting MMX). Idem, "3DNow" (from AMD) is another instruction set that eases the work of 3D cards... And recently, "SSE" is another set of instructions introduced by Intel that enables a processor to treat several chunks of data with one single instruction (like if you were said "add 3 to the N next bytes you see coming on the wire"). Modern compilers can make use of these instructions and produce optimized "binaries" (i.e executable files) that run faster on processors that support these extensions, but on a barebones 386, these binaries wouldn't run, they would just crash the machine because the processor wouldn't know what to do with these new instructions. For some weird reason, the guys at Microsoft have been smarter (or less dumb) than the others, cos they decided to put an identifier in their library files (DLLs and .LIB files) just for that. So that when a Windows OS is told to run a particular file, if that file tells it that it won't run if you don't have a SSE/3DNow processor (like P3/P4/K6-2/Athlon), your proggy will just refuse to run but the OS won't crash. On the other hand, in the UNIX/Linux world, the only dumb idea they found to tell the difference between binaries that can run on a 386 and binaries that can run on a 486 (386 with wider memory bus), 586 (Pentium), 686 (Pentium with MMX) or 786 (Pent with MMX and SSE or 3DNow), that was just to append _x86 ath the end of the filename. That means, if you have a library compiled with MMX/SSE/3DNow extensions and all, and you have a recent machine, you can call it MyLibrary_i386.so, MyLibrary_i486.so, MyLibrary_i586.so, or MyLibrary_i686.so. If you have a 686 machine (w/ MMX & 3DNow and crap) that won't make any difference, your game will run. But if you have a 386 machine, if you try to run a lib that has been compiled with i686 extensions, --> crash. The only thing to remember from that rambling: if yev got Linux, use da lib that correspond to yer pross'. Damn, that was long. Where's my beer? Ah, here.

9_9

How come I write texts that long? I should see a doc.



RACC home - Bots-United: beer, babies & bots (especially the latter)
"Learn to think by yourself, else others will do it for you."
  
Reply With Quote