From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: <7B7A4AC6-02F2-4A28-AE1F-7D43B0494706@quintile.net> References: <201503112030.t2BKU71p008530@skeeve.com> <7B7A4AC6-02F2-4A28-AE1F-7D43B0494706@quintile.net> From: Ryan Gonzalez Date: Wed, 11 Mar 2015 18:04:08 -0500 Message-ID: To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/alternative; boundary=047d7bae488011851105110b4a92 Subject: Re: [9fans] ken cc for linux Topicbox-Message-UUID: 4925b4b4-ead9-11e9-9d60-3106f5b1d025 --047d7bae488011851105110b4a92 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable That's ape with ape/pcc, which is ANSI-compliant, not a port of the non-compliant base compilers (6c, 8c, etc.). On Wed, Mar 11, 2015 at 4:54 PM, Quintile wrote: > > awl compiles under APE with a little work. someone, sorry I have forgotte= n > who, did Stirling work a few years ago and got many Linux tools ported - = to > support 3rd party stuff. to my chagrin I never managed to get avn to work > on top of this. > > the code was in Google code I think, his porting instructions should work > for the latest gawk too. > > if not put the code somewhere and I will have a go. > > -Steve > > > > > > On 11 Mar 2015, at 21:04, Ryan Gonzalez wrote: > > Warning: this will get messy *fast*. > > On Wed, Mar 11, 2015 at 3:30 PM, Aharon Robbins wrote= : > >> Thanks for the link to the Google code repo. >> >> I'm currently on x86_64 Ubuntu 12.04. Building was not so smooth, severa= l >> files are missing for the Power 64 port. >> > > Yup. Comment out the lines in the mkfiles. In src/cmd/mkfile, I commented > out lines 34-36. > > I think you already need mk installed; you can grab it from here > . > > >> >> I did as best I could to build things. I suppose my expectations aren't >> what they should be. I was looking for the usual >> >> configure && make && make install >> >> experience, and it wasn't there. I like to compile gawk with multiple >> compilers and thought I'd try ken's, but it wasn't clear to me which >> o.out file to use, or how to install it such that it will get the >> system's include files and libraries. >> >> > I doubt the Plan 9 compilers will even get *close* to building gawk. > > See, the compilers implement a variant of ANSI C with some C99-ish > extensions. For once, the preprocessor does not work with #if's. You can > only use #ifdef's. > > Because of this, 99% of the C standard library headers will NOT work with > the compilers. > > Another issue is that it seems that the linker does not read ELF files, s= o > linking with about anything is out of the question. > > As for the compilers you need to invoke... > > The directories in src/cmd are formatting like *n*c, *n*a, and *n*l, > where the *c ones are the compiles, *a, the assemblers, and *l, the linke= rs. > > The executable is at src/cmd//o.out. For Ubuntu 64-bit, you'll want > src/cmd/6c/o.out to compile and src/cmd/6l/o.out to link. Or, at least yo= u > would...if the files weren't missing. Since half of them are, you'll > instead want src/cmd/8c/o.out to compile and src/cmd/8l/o.out to link. > Those are the 32-bit compilers. > > I set up symlinks in ken-cc/bin using bin/8c as an alias for > src/cmd/8c/o.out. Same thing for 8l. > > The command lines look something like: > > 8c tst.c # outputs tst.8 > 8l -o tst tst.8 # outputs tst > > Bottom line: you may be out of luck if you want to use ken-cc as a > general-purpose C compiler. It isn't. At all. > > It's fun to toy with, though. > > Go had vastly better versions, but it seems they got ripped out recently. > I think Go 1.3 may have had them, in which case you'd do something like: > > go tool 6c tst.c > go tool 6l -o tst tst.6 > > As you can see, Go actually had a working 64-bit compiler. > > I have yet to figure out why the hell symlinks to the compilers never get > set up in the bin directory. > > >> If this is easy to do, I'd appreciate hearing how. If not, then I'm not >> going to worry about it. :-) >> >> Much thanks, >> >> Arnold >> >> > > > -- > Ryan > [ERROR]: Your autotools build scripts are 200 lines longer than your > program. Something=E2=80=99s wrong. > http://kirbyfan64.github.io/ > > > --=20 Ryan [ERROR]: Your autotools build scripts are 200 lines longer than your program. Something=E2=80=99s wrong. http://kirbyfan64.github.io/ --047d7bae488011851105110b4a92 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
That's ape with ape/pcc, which is ANSI-compliant, not = a port of the non-compliant base compilers (6c, 8c, etc.).

On Wed, Mar 11, 2015 at 4:5= 4 PM, Quintile <steve@quintile.net> wrote:

awl compiles under = APE with a little work. someone, sorry I have forgotten who, did Stirling w= ork a few years ago and got many Linux tools ported - to support 3rd party = stuff. to my chagrin I never managed to get avn to work on top of this.

the code was in Google code I think, his porting inst= ructions should work for the latest gawk too.

if n= ot put the code somewhere and I will have a go.

-S= teve





On 11 Mar 2015, at 21:04, Ryan Gonzalez <rymg19@gmail.com> wrote:
<= br>
Warning: this will get messy *fast*.

On Wed, Mar 11, 2015 at 3:30 PM, Aharon= Robbins <arnold@skeeve.com> wrote:
Thanks for the link to the Google code repo.

I'm currently on x86_64 Ubuntu 12.04. Building was not so smooth, sever= al
files are missing for the Power 64 port.

Yup. Comment out the lines in the mkfiles. In src/cmd/mkfile, I commented= out lines 34-36.

I think you already need mk inst= alled; you can grab it from=C2=A0here.
=C2=A0

I did as best I could to build things.=C2=A0 I suppose my expectations aren= 't
what they should be. I was looking for the usual

=C2=A0 =C2=A0 =C2=A0 =C2=A0 configure && make && make insta= ll

experience, and it wasn't there. I like to compile gawk with multiple compilers and thought I'd try ken's, but it wasn't clear to me = which
o.out file to use, or how to install it such that it will get the
system's include files and libraries.


I doubt the Plan 9 compilers will even= get *close* to building gawk.

See, the compilers = implement a variant of ANSI C with some C99-ish extensions. For once, the p= reprocessor does not work with #if's. You can only use #ifdef's.

Because of this, 99% of the C standard library heade= rs will NOT work with the compilers.

Another issue= is that it seems that the linker does not read ELF files, so linking with = about anything is out of the question.

As for the = compilers you need to invoke...

The directories in= src/cmd are formatting like nc, na, and nl, where the= *c ones are the compiles, *a, the assemblers, and *l, the linkers.

The executable is at src/cmd/<dir>/o.out. For Ubunt= u 64-bit, you'll want src/cmd/6c/o.out to compile and src/cmd/6l/o.out = to link. Or, at least you would...if the files weren't missing. Since h= alf of them are, you'll instead want src/cmd/8c/o.out to compile and sr= c/cmd/8l/o.out to link. Those are the 32-bit compilers.

I set up symlinks in ken-cc/bin using bin/8c as an alias for src/cmd/= 8c/o.out. Same thing for 8l.

The command lines loo= k something like:

8c tst.c # outputs tst.8
8l -o tst tst.8 # outputs tst

Bottom line: you = may be out of luck if you want to use ken-cc as a general-purpose C compile= r. It isn't. At all.

It's fun to toy with,= though.

Go had vastly better versions, but it see= ms they got ripped out recently. I think Go 1.3 may have had them, in which= case you'd do something like:

go tool 6c tst.= c
go tool 6l -o tst tst.6

As you can see= , Go actually had a working 64-bit compiler.

I hav= e yet to figure out why the hell symlinks to the compilers never get set up= in the bin directory.
=C2=A0
If this is easy to do, I'd appreciate hearing how. If not, then I'm= not
going to worry about it. :-)

Much thanks,

Arnold




--
Ryan
[ERROR]: Your autotools build scripts are 200 lines longe= r than your program. Something=E2=80=99s wrong.



--
Ryan
[ERROR]: Your autotools build scripts are 200 lines longer than your = program. Something=E2=80=99s wrong.
--047d7bae488011851105110b4a92--