This archive includes native AmigaOS 4.1 compiles of
* binutils 2.23.2,
* gcc 8.3.0, and
* coreutils 5.2.1
based on https://github.com/sba/sba1/adtools version 20191228-701
commit 2cd020661700bdf6276e0d824c30b53fac6e55b9.
In order to install it on your Amiga, extract the archive to a destination of
your
choice. Then establish a GCC: assignment to the extracted folder and add the
contained
bin folder to the command search path
1> ASSIGN GCC: <extracted folder>
1> PATH GCC:bin add
If you want that various short cuts for the binaries are represented by soft
links on
you local harddisk, try the RestoreLinks script:
1> cd <extracted folder>
1> EXECUTE RestoreLinks
Furthermore, you need to have an SDK: assign as in the original SDK.
Note that if you use the APPDIR: feature you should flush its contents.
Otherwise, you
may observe unexpected behaviour. Most easily this can be achieved by entering
1> delete APPDIR:#?
This is a preliminary version and as such it will contain still many bugs.
Please use
the issue tracker at https://github.com/sba1/adtools/issues for reporting bugs.
Note that the plan is to split the project and move the parts to separate
subprojects
at https://github.com/adtools/. One other goal is to include the projects or
updated
ones as part of one of the next AmigaOS SDK.
About the C++ support
=====================
C++-support using clib2 clib (enabled via -mcrt=clib2) is much better than with
the newlib clib at the moment. If you encounter any errors when compiling C++
projects using newlib, also try clib2. To be successful, you should use the
accompanying clib2 release archive adtools-os4-clib2-20191228-701.lha and
install its
contents into the SDK: folder. You can find this (unofficial) archive at
https://dl.bintray.com/sba1/adtools-native/.
Also for C++, it is recommended not to use the shared objects feature (aka
dynload) for now. The reason is that the C++-ABI may change in the future.
Lastly, you should link the final executable using the --athread=native
option if you use anything from libstdc++.
Changes of the AmigaOS version
==============================
In the doc folder, there is some usual gcc documentation provided. This is
actually
a diff to the original documentation, so AmigaOS-relevant changes are easily
recognizable.
Most notable changes are:
* --athread, -mbaserel, --mcrt, -mno-baserel, and --use-dyn-lib driver options
* baserel_restore, checktags, libcall, libcall2, linearvarargs function
attributes
* force_no_baserel variable attribute
* tagtype enum attribute