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 <steve@quintile.net> wrote:

awl compiles under APE with a little work. someone, sorry I have forgotten 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 <rymg19@gmail.com> wrote:

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, several
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, 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 Ubuntu 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 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’s wrong.



--
Ryan
[ERROR]: Your autotools build scripts are 200 lines longer than your program. Something’s wrong.