<div dir="auto"><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">Thorsten Otto via fpc-devel <<a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>> schrieb am Di., 25. Jan. 2022, 14:45:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:'Noto Sans';font-size:9pt;font-weight:400;font-style:normal">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">>If I'm not mistaken, GCC for</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">>Atari used to have some tool like this? Brownout, maybe?</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Yes, but i never used that "brown" tool. For one, i don't like its confusing naming convention (depending on gcc version, it is "brown", "extrabrown", "superbrown" etc). But more importantly, it needs an extra tool to be run after linking, which requires Makefiles to be changed for all projects that use it. That rules out most unix packages, where the Makefiles are generated by autoconf, Cmake or similar. Also the whole toolchain requires a script to be run on the mintlib (atari c-library) headers, which fails almost everytime something in mintlib changes. And they did not even manage to provide a gem library, or even a math library.</p></div></blockquote></div><div dir="auto"><br></div><div dir="auto">The compiler can call additional tools without problems. It does so for example for MSX-DOS to convert the generated binary into the correct format. </div><div dir="auto"><br></div><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:'Noto Sans';font-size:9pt;font-weight:400;font-style:normal">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">An alternative could be to use my mintelf toolchain, which is also available on my site. This is based on the same sources as the normal toolchain, but can be used as dropin replacement (just using a different target, or BINUTILSPREFIX in our case). It will generate working executables in the same way, but uses elf object format for compiling and linking, thus making all the features of that format available. For fpc that would mean however you have to tell it somehow that it can use elf features like sections, even when using gas. I will give it a try at the weekend, i think fpc can be tricked by using -Avasm, but then replacing the symlinks to the assembler.</p></div></blockquote></div><div dir="auto"><br></div><div dir="auto">Once you've tested that it works the way to go is to add an additional assembler for Atari that has the features enabled or to add an option to enable the features for the default one. </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div></div>