A92: gcc cross compiler success
[Prev][Next][Index][Thread]
A92: gcc cross compiler success
I have successfuly built a version of gcc to cross compile to m68k. I did
it on a linux system (host=i386-linux-gnu). Instructions are at
http://www.objsw.com/CrossGCC/FAQ-4.html Note that you dont need the
newlib (these are for a real computer...) and gdb stuff (although i dunno
you might be able to use it). As you will probably be using the assembler
and linker that comes with Fargo/plusshell/doorsos, you only need binutils
to make the gcc libs.
Gotchas: edit the gcc Makefile to delete objc from the line LANGUAGES=.
On my system the compiler gave me bogus errors about not being able to
find standard include files from /usr/include when compiling files related
to objc. If you really wanted to program in Objective C for TI-92 I guess
you're out of luck... Making a version to run on M$ PCs should be pretty
easy with cygnus gcc (www.cygnus.com). Other compilers might require a
bit of work.
Where to go from here?
As Henri Moilanen recently pointed out, there is a lot of work ahead. If
there is a way to get binutils to produce fargo executables and libraries,
that would be great. Remember that there are two versions of Fargo with
different file formats, and I dont know whether plusshell and doorsos have
the same file formats. More importantly, a subset of standard C libraries
will need to be written that would utilise the ROM to the greatest
extent to keep the bloat that will result from using a highlevel language
to a minimum, and deal with the many peculiarities of TI-92 (eg its
"disk" files).
I see some possible problems with linking. We want to be able to link:
- with fargo libraries (external)
- with C libraries: external (the library sits on the calc) or static
(larger programs)
- with your own .o files (static)
Perhaps a new linker will have to be written to deal with these issues.
Perhaps these arent really problems at all and I simply dont know enough
about these things.
What would seem like an easy thing to do would be to have the C libraries
sit on the calculator as normal fargo libraries, and the calls would go
there. However such libraries might get pretty large and if the number of
programs a user has on the calc at any given time is small, the user may
want to have statically compiled executables. Then again, some barebone
library has to be on the calculator to fill in for such basic things
omitted in the TIOS as stdin, stdout, stderr, and with
romlib/flib/doorslib already there the C library may not be all that
large. May be I am just spouting nonsense again. Input, people! Those
interested should agree on a plan and get to work. I myself would
probably work on the ti92plus.
-- Anton
Follow-Ups: