[fpc-devel] Questions regarding m68k-atari target

Marcus Sackrow alb42 at web.de
Tue Jan 25 11:27:11 CET 2022

Hi Thorsten,

Am 25.01.2022 um 10:54 schrieb Thorsten Otto via fpc-devel:
> > yes the Atari version is compiled by Jenkins every commit
> > https://build.alb42.de:8081/job/FPC_m68k-atari/ (to make sure the
> > changes does not break the target) it uses the command line:
> Yes, i saw the console output already. What i could not figure out
> yet: where does the script come from that is executed by Jenkins?
hmm what do you mean? I wrote it, of course.

> > btw. you know this:
> >
> > https://blog.alb42.de/2017/06/18/do-it-online-atari/
> >
> > http://home.alb42.de/fpatari/
> Uh no, i did not know this. Awesome. Ultimately, it would be nice of
> course to run the resulting executable in some online emulator like
> pce-js ;)
haha sure, but my knowledge of such things is too limited to really do
such things, but if someone is interested, I happily share the source of
this one.

> > the prefix $CPU-$OS is just the default prefix for every cross
> > compiling, if you need an other, you can supply it with e.g.
> > -XPm68k-atari-mint-
> Yes, found that already. But there is also at least one assembler file
> that is directly compiled from the Makefile (prt0.as), and that is
> also compiled by that $CPU-OS-as assembler (also when you otherwise
> use vasm). So i wonder a bit why that works on your build server. I
> also noted that, when using vasm/vlink, those are also executed using
> that prefix, so the actual assembler that is invoked is
> m68k-atari-vasmm68k_std.
> One reason why i would prefer gas is because FPC needs a non-standard
> version of vasm (compiled with std syntax module instead of motorola),
> and that assembler is also required on the target system. But the name
> "vasmm68k_std.ttp" does not fit in the 8.3 filesystem limit on Atari.
> With the symlinked assembler/linker, and some fixes to the generated
> scripts, i was able now to produce the binaries. I noticed though that
> they are much larger (maybe because that smartlink feature is not
> available). However currently most of them bomb out right at the
> start, have to figure out yet whether that is caused by the different
> linker, or some other change to fpc itself.
If I remember right (for amiga, its that way so I guess also applies to
Atari), that is because this old ld does not support section linking
only object linking, newer ld support that but they can't be compiled
for m68k anymore, therefore the linker can't throw away unused sections
of the object file (only whole unused object files) and therefore the
files are much bigger.

That was one of the reasons we changed to vlink because the coder of
that implemented that for us.


If I remember right, it is possible to freely mix assembler and linker
on Atari, so you can use gas and vlink for example.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20220125/ab8d0e5e/attachment.htm>

More information about the fpc-devel mailing list