for a while after 1.0, in CVS, there was code to check for OS support for SSE instructions. since that required a fork() inside the library I have decided to remove it. so now to get SSE support you have to configure with --sse-os. if I think of a clean way to implement this I'll put it back in. also, there's been some suspicion that the 3dnow! stuff is causing crashes, so I disabled that by default too. you can turn it on explicitly with --use-3dnow. I don't have any AMD cpus to test on, so I'm still hesitant to leave it on by default until the crashing goes away for more people. the last thing on my list is one set of patches that came in for compiling with watcom C. after that I will probably be releasing 1.0.1 tomorrow. Josh __________________________________________________ Do You Yahoo!? Find the one for you at Yahoo! Personals http://personals.yahoo.com
Can't you write a script for ./configure that checks for this, rather than having the library do the check each time it's used? If not, perhaps check /proc/cpuinfo or something. The DoIHaveSSE and DoIHave3DNow checks could fork() if the system provides fork(); if not, the checks would return false. Couldn't you also just check for fork() in the configure script? Matt, will the debian packages have 3DNow support and SSE support? -- Asheesh. On Tue, 13 Nov 2001, Josh Coalson wrote:> for a while after 1.0, in CVS, there was code to check for > OS support for SSE instructions. since that required a > fork() inside the library I have decided to remove it. so > now to get SSE support you have to configure with --sse-os. > > if I think of a clean way to implement this I'll put it > back in. > > also, there's been some suspicion that the 3dnow! stuff is > causing crashes, so I disabled that by default too. you > can turn it on explicitly with --use-3dnow. I don't have > any AMD cpus to test on, so I'm still hesitant to leave it > on by default until the crashing goes away for more people. > > the last thing on my list is one set of patches that came > in for compiling with watcom C. after that I will probably > be releasing 1.0.1 tomorrow. > > Josh > > > __________________________________________________ > Do You Yahoo!?No, I don't.> Find the one for you at Yahoo! Personals"If you're not with the one you love, love the one you live."> http://personals.yahoo.comhttp://www.asheeshenterprises.com
--- Asheesh Laroia <paulproteus@technologist.com> wrote:> Can't you write a script for ./configure that checks for this, rather > than > having the library do the check each time it's used? If not, perhaps > check /proc/cpuinfo or something. The DoIHaveSSE and DoIHave3DNow > checks > could fork() if the system provides fork(); if not, the checks would > return false. > > Couldn't you also just check for fork() in the configure script?cpu support for 3dnow and sse can be easily detected at runtime. I turned off 3dnow by default because it is implicated in some crashes. sse also requires operating system support. thanks to intel's brilliant design, the only real way to do this at flac runtime is for the library to fork() itself, run some sse instructions in the new process, and watch if it crashes. quietly forking in a library is bad since some library users may not want to fork (like if their process image is huge) for such a simple thing. you could detect at configure time, but that makes the resulting binary OK for the build machine but not for others. that's why I make it explicit with --sse-os. Josh __________________________________________________ Do You Yahoo!? Find the one for you at Yahoo! Personals http://personals.yahoo.com
On Tue, Nov 13, 2001 at 08:57:11PM -0500, Asheesh Laroia wrote:> Can't you write a script for ./configure that checks for this, rather than > having the library do the check each time it's used? If not, perhaps > check /proc/cpuinfo or something. The DoIHaveSSE and DoIHave3DNow checks > could fork() if the system provides fork(); if not, the checks would > return false. > > Couldn't you also just check for fork() in the configure script? > > Matt, will the debian packages have 3DNow support and SSE support?If they are detected at runtime, yes; if they are detected at build time, no. The binary package must run on any i386 family CPU. Of course, it is easy enough for the user to get an optimized build if they want it. apt-get build-dep flac apt-get source flac cd flac-1.0 vi debian/rules # twiddle configure flags dpkg-buildpackage -rfakeroot -b dpkg -i ../flac*.deb -- - mdz