Russ raises an interesting point, which if I understand it correctly, is
that we are not trying to emulate linux, we are trying to get the gnu
stuff to run. The difference is important. The question is, which GNU
target most resembles today's plan 9 environment? I don't mean APE by
that, I mean the real Plan 9 environment.
I don't think that there is a PDP-10 port, though that might be closest
in some ways: no mmap, no real stuff from post-1981 Unix really, pretty
simple interface. GNU supports a rich variety of targets; what one is
most like Plan 9? QNX? VXworks? ECOS? Maybe DOS? I am not sure.
(I am not trying to be insulting by mentioning DOS. I am mentioning it
as a possible least common denominator.)
I've always had the hope that we could somehow bootstrap some version of
the gcc toolchain, get liberty up, and ease into it that way -- but not
under APE! Try to find a way to do a native plan 9 version of gnu tools.
The reason is simple: I have lots of interest in Plan 9, but the code
bases for the apps all need GCC/G++. This is a huge barrier.
The reason I wanted to start with gcc 0.9, a few years ago, was that in
the early days gcc would compile under just about any OS and C compiler
-- the newer gcc's only seem to compile under gcc. So you start with gcc
0.9, get it to build under native plan 9, not APE, then bootstrap your
way forward to current. I have no idea if this will work, but I did
bootstrap gcc onto a lot of weird machines 15 years ago. It looks much
harder, however, to drop gcc 4.0 onto a non-gcc-like C compiler and get
it to go!
Please don't tell me that the codes are dumb and people who use gcc are
dumb. Code bases such as the ones I deal with are the result, in some
cases, of decades of work, some of them written by people smarter than
anyone you'll ever know. It's just not practical to say 'dump that
code'. This portability issue is a major problem for Plan 9 usage where
I work.
Also, for what it is worth, almost all the code deals with system calls
no more complex than open/read/write/close. futex is not an issue!
thanks
ron