On Tue, Jul 12, 2011 at 08:35:26PM +0200, Francisco J Ballesteros wrote:
> If you could put just a tgz at sources I'm willing to test it,
> even for updates, I could just unpack the tgz again and rebuild the thing.
> although I don't have much spare time these days and it's likely
> I wont be able to help other than by testing (sorry about that).
> 
OK, here's my side of things.

I've uploaded to sources the /go hierarchy that, to the best of my
knowledge, should make it possible for a mildly savvy Plan 9 user to
build 8a, 8l and 8c on a 386 platform.

The location is /n/sources/contrib/lucio/go and is meant to install in
the root (at /go, to be specific).  I have hard coded in many mkfiles the
assignment ROOT=/go to keep things simple, so it's easiest to go along
with this convention until somebody puts some effort into improving is.

The test operation I perform is to change directory to /go/src/cmd/8c
and execute "mk".  It ought to execute without problems, but my Plan 9
platform may have some tweaks that I have forgotten, so it's important
to report to me anything unexpected.

If "8c" builds correctly, the executable can be "mk install"ed into
/go/386/bin, off the cuff I'm notsure that this directory is created,
so it may be necessary to check first.  I would need to correct the
"devproto" file (in "/go") to make sure all target directories are in
fact created.

To build your own development environment, I suggest:

        % 9fs sources
        % disk/mkext -a -s /n/sources/contrib/lucio/go 
/n/sources/contrib/lucio/go/devproto |
                disk/mkext -d /go

There are many inconsistencies I am vaguely aware of, feel free to remind
me and make suggestion on how to improve them.  The mkfiles randomly rely
on GOROOT et al or make their own decisions about where the sources are
installed: they need to be identified, some thought applied and a final
approach decided upon.  /sys/src/cmd/mk* files are used arbitrarily
(these are the ones I remember, others may bite you as well), the idea
is that if we need slight variations we ought to target $ROOT/src/cmd/mk*
instead, but these are early days and there are inconsistencies lurking.

/go/386/include/u.h is particularly of interest: bits of fluff have been
tucked away in there to simplify porting and may appear particularly ugly.

I will try to document all the important details, but like all
programmers, I have a subconscious need to avoid documenting anything
at all costs.  I will reply to all reasonable questions.

Lucio.

PS: I assume there are p9p users here who, like me, believe it would be
advantageous to add the Go toolchain to the p9p distribution.  I'd like
to hear from them.  I can't give that particular task a high priority,
but I'm keen to encourage others to make some progress on that front.

Reply via email to