On Donnerstag, 9. November 2017 09:54:11 CET Miro Kropáček wrote:
> Basically he takes plain m68k gcc, compiles everything and links using a
> special ld script and then just converts into an atari binary using vlink.
Thats a bit simpler than the browngcc attempt, but still needs an additional
step in linking. And you still need libraries compiled for this target.
Also, if you look at the flags (-ffreestanding, -fno-rtti etc.) that means gcc
does not do any optimizations to builtin function, you can't compile most c++
programs and similar quirks. I think he will get the same problems as me with
global constructors for example: the elf compiler will not generate a call to
___main(), so they don't get executed. And if i understand it right, he is
using the libc from vbcc, which is good enough for most tos programs, but
certainly not for gnu packages (or is he using his own version? not sure)
The main purpose why i attempted on building my port was to be able to just do
a "./configure target=m68k-atari-mintelf; make; make install". And if you look
at the scripts, this is actually almost everything that is done there. The
only hassle is to build the different libraries for different cpus.
>One can produce lto'ed binaries, too.
Yes, thats the point, building them. Having to write the scripts is one thing,
but having to patch all configure scripts of the packages to get them compiled
with an unknown target, and adding special flags, and additional steps to
produce binaries (lots of libraries like iconv, bzip etc also build
executables), is another.
PS.: oh i just saw, he is using his own version of crt startup, executing the
constructors manually.
PS2.: is that simonsunnyboy from the forum?
|