Emerged squeak-3.4.1 and squeak-vm-3.5.5180, compile went well, no warnings, no errors. I'd executed "initsqueak" in my work directory, and after launching squeak I got default project opened. But windows have no "gadgets" on them, and upon clicking or trying to move any of them, squeak either freezes or gives "System error handling failed", from stack trace it is clear, that problem arises when truncating some "Float" number. When tried to use precompiled squeak package, I did not get this problem, so trouble must be in compile/build phase. Reproducible: Always Steps to Reproduce: 1. ACCEPT_KEYWORDS="~x86" emerge squeak squeak-vm 2. inisqueak 3. squeak 4. try to do something actually Actual Results: Squeak either crashed, freezed or gives emergency evaluator.
These ebuilds were submitted by Christopher Verges <squirrel@headnut.org>. I added him to CC. Christopher: Can you look into the ebuilds and find out what's wrong here? I think you are much more familiar with squeak than I am. Thanks in advance.
Yeah, I'll be happy to take a look at this for you. I'm attempting to reproduce the steps now. What does your CFLAGS line in /etc/make.conf look like?
I was having problems trying to compile Squeak 3.4.1 with the -funroll-loops flag. My CFLAGS line looks like this now: CFLAGS="-O3 -march=i686 -mcpu=pentium4 -fomit-frame-pointer -pipe" Can you try recompiling Squeak with these settings (changing march and mcpu as needed for your system) and report back the results? thanks!
AAH, I see what you're talking about. What is the message displayed in the emergency evaluator for you?
oops... I don't have squeak on that machine now, I don't even have linux on it, but I'll try to recreate the bug as I get to my work machine running gentoo. my CFLAGS was: CFLAGS="-O3 -march=i686 -fomit-frame-pointer -funroll-loops -finline-functions -pipe"
So after trying LOTS of CFLAGS combinations, it looks like no optimizations should be used when compiling the Squeak virtual machine. That begs the question of how to have an ebuild ignore the CFLAGS variable, because I don't know how. :-) Any clues? Thanks!
well, I've found "filter-flags" and "strip-flags" in /usr/portage/eclass/flag-o-matic.eclass, try these :) I'm not an ebulder, so take it as a guess only... BTW: sure removing any optimization flags helps, tried it on my work machine and Squeak squeaks along nicely...
strip-flags looks like it does almost what we need. i'll keep at it more. thanks a bunch! (I didn't realize they had all these .eclass files ... this is kinda cool!)
Created attachment 18949 [details] new ebuild with proper filter lines in place The Squeak virtual machine on Unix has a few ... issues. The port job was not done in the best of manners, so it can only be compiled under certain conditions. Gentoo users, unfortunately, tend to break those conditions with their high tendency for optimization. I've gone ahead and added lines at the top of the ebuild to use the flag-o-matic.eclass functions to strip out anything that should be harmful to the build process. Thanks to everyone who helped figure out why. :-)
Okies, i checked in the ebuild as squeak-3.4.1-r1.ebuild. Closing this bug now. Thanks for your help!