RE: Building on linux
"David Griswold" <[email protected]> Tue, 5 Jun 2007 19:30:29 +0200
| Newsgroups | gmane.comp.lang.smalltalk.strongtalk |
|---|---|
| Message-ID | <[email protected]> |
I'm reviewing it currently. It should be in within a few days. -Dave > -----Original Message----- > From: [email protected] > [mailto:[email protected]]On Behalf Of > [email protected] > Sent: Tuesday, June 05, 2007 5:54 PM > To: Strongtalk-general > Subject: Re: Building on linux > > > > Has any of prunedtree's work been merged onto the trunk yet? > > -- > > On May 17, 5:33 am, prunedtree <[email protected]> wrote: > > On May 15, 9:32 pm, talksmall <[email protected]> wrote: > > > > > > > > > > > > > On May 14, 8:14 pm, prunedtree <[email protected]> wrote: > > > > > > Regarding linux portage, I installed debian etch on a VM and started > > > > to work with GCC 4.1 > > > > After some fixes (mainly wasting time to please GCC zeal) i got the > > > > whole system (without os.cpp) to compile. > > > > > > All the link errors are related to os.cpp, which shows that the > > > > current design is already very portable (one file contains all the > > > > platform specificity) > > > > > > I'm now writing os_linux.cpp, the implementation of the > needed linux- > > > > specific code. Once i get the VM to compile under linux, I'll try to > > > > pass a few benchmarks, but don't expect much because this is a very > > > > unfriendly environnement to me, and i'm loosing way to much > time. I'm > > > > expecting linux users to keep the port alive after that. > > > > > > regards, > > > > prunedtree > > > > > I've been lurking on the group for a while, and messing about for a > > > little while with a linux port (Ubuntu Feisty Fawn, gcc 4.1.2, Eclipse > > > CDT). > > > > > I've made some progress with the linux port. I've built a partial > > > os.cpp (which I named gnu_os.cpp ... oh dear, nevermind). I have > > > implemented the thread creation and os init portions and have stubbed > > > out the rest for now, just to get it to link. > > > > > This is enough to resolve all of the os.cpp link dependencies. In > > > addition I had to build a version of binutils with COFF support and > > > rename a number of the symbols in order to link in the binaries. > > > > Does it work ? (well, it's not mandatory anymore anyway) > > > > > > > > > Unfortunately, I've had little luck with the noasm patches that you've > > > posted to the group in the past :-( Any idea when these are to be > > > merged into the mainline? > > > > > I have also had to make quite a few additions to the dependency files > > > in order to resolve all of the include dependencies. > > > > Strange. My current tree compiles against both msvc 6 sp5 & gcc 3.4.4- > > mingw32 > > > > > > > > > My changes allow me to start the VM and singlestepping confirms that > > > it's started executing the bytecode (resolving inline cache misses > > > etc.). I soon get a seg fault though which I'm trying to track down. > > > > When i ported to GCC i had to fix several nasty bugs before getting > > everything to run. GCC misses some an empty base class optimisation > > and displaces the primary/secondary caches... this crashes the > > interpreter when they are accessed in assembly. Other bug is related > > to a __GNUC__ flag disabling the special calling convention for > > primitives (but the assembly code doesn't pop the stack, so you need > > pascal convention). Might be other GCC issues i fixed, moreover I did > > a few changes that improve stability (guarding against edx trashing in > > constant propagation of primitives in the compiler for instance) > > > > > > > > > The changes I have made so far are enough to indicate that the OS > > > dependencies leak out a little further than os.cpp. thread ids are > > > referenced as ints (on linux they are pthread_t s - POSIX threads > > > don't you know) Event and Thread are downcasts of Windows HANDLEs and > > > the handles themselves are exposed via get_hinstance etc. I've > > > implemented a wrapper Thread class and an Event wrapping a semaphore > > > protected boolean to take care of some of this and just ignored the > > > handles for now. > > > > Interressing. There is indeed some win32-specific things (the stuff > > related to hinstance, etc...) But it looks like we only need some > > cleanup to achieve a fairly neutral API. This part of the VM is not > > performance-critical, so we can afford encapsulation overhead. > > > > > Done nothing with DLLs or the timing functions. > > > Possible problem there - Linux only seems to have support for per > > > process timing stats. May not be an issue as the current VM is > > > effectively almost single threaded - handing off from one thread to > > > another via transfer_to etc. > > > > > Happy to share my changes so far. Even happier if we can reconcile > > > them with your noasm changes :-) > > > > I'm happy to see someone is up to the task. As you probably noticed, > > i'm not very motivated to do this port, other than helping linux folks > > getting it done. To cooperate it would be much easier if you could > > contact me on IRC. i'm on #squeak (on freenode) and #smalltalk (on > > dalnet) as "prunedtree". > > > > If you can't reach me on IRC, send me a mail. > > > > regards, > > prunedtree > > > > > > > > > > > > > Cheers, > > > talksmall- Hide quoted text - > > > > - Show quoted text -- Hide quoted text - > > > > - Show quoted text - > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Strongtalk-general" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/strongtalk-general?hl=en -~----------~----~----~----~------~----~------~--~---