Oh no! Where's the JavaScript?
Your Web browser does not have JavaScript enabled or does not support JavaScript. Please enable JavaScript on your Web browser to properly view this Web site, or upgrade to a Web browser that does support JavaScript.

Developers Resources

Last updated on 4 days ago
amigamiaamigamiaAdmin
Posted 1 month ago
Hello,

If you are a developer who wants to port or develop software for AROS ABIv0 (32-bit x86) or AROS ABIv11 (64-bit x86), this post will provide resources to help you with your work.

Compiler and SDK

Currently AROS ABIv0 provides GCC 6.5.0.
Currently AROS ABIv11 provides GCC 10.5.0.

If you plan developing natively (directly on AROS), the compiler and SDK are already pre-built and available on installation disk. When installing through InstallAROS, select "Install Debugging tools and Developer software" option. After installation, GCC will be available from AROShell and Unix Shell (sh).

If you plan developing through cross-compilation, you will need to build cross-compiler and SDK on an instance of Linux. This can be done directly on Linux or indirectly on Windows.

If you plan developing through cross-compilation and you are a Windows user, the recommended method is to build AROS under Linux through WSL. The tutorial on how to do this is available here:https://arosnews.github.io/how-to-cross-compile-aros-hosted-wsl/. Please note that tutorial describes setting up environment for ABIv11 64-bit.

In order to build ABIv0 32-bit x86 AROS, please setup up WSL according to first section of tutorial and then scroll down to last section named "If you want to install the i386 version" and follow instructions listed there. Remember to checkout branch alt-abiv0 in both AROS and contrib git clones in this case. Alternatively, you can set up a virtual machine with Linux installed and simply follow the section below.

If you plan developing through cross-compilation and you are a Linux user, you will need to build cross-compiler and AROS directly on your machine.

The tutorial for doing this for ABIv0 32-bit is available here, https://github.com/deadwood2/AROS/blob/alt-abiv0/INSTALL.md. Be sure to follow section on "Linux-i386". Remember to checkout branch alt-abiv0 in the contrib git clone.

The tutorial for doing this for ABIv11 64-bit is available here, https://github.com/deadwood2/AROS/blob/master/INSTALL.md. Be sure to follow section on "Linux-x86_64".

Once you complete these steps, additional steps (building contrib and making cross-compiler scripts) can be followed in "WSL" tutorial: https://arosnews.github.io/how-to-cross-compile-aros-hosted-wsl/.

At this point, whether you are a Windows or a Linux user, you have a cross-compiler available with full SDK as well as local compilation of AROS hosted which will allow you to quickly test your software.

Documentation

Your main point of reference should be Autodocs. These are compiled from source code and thus are always up to date. You can find them here: http://www.aros.org/documentation/developers/autodocs/index.html

Next, there are two repositories of documentation on different topics related to AROS. They have different levels of freshness and up-to-dateness, but are good to show general direction. First is developers documentation on www,aros.org, and specifically:



Second is developers documentation on AROS Wikibooks, and specifically:



Last group of reference comes from documentation of projects that AROS integrates or re-implements:



Contact/Questions

There are multiple ways you can get in touch with other developers to get help and have your questions answered:



Also if you don't have any questions, but would just like to share with AROS community what you are working on, this forum is the place to post.

Looking forward to hearing from you!!
Edited by deadwood on 25-01-2026 12:34, 4 days ago
pixie, Argo, Amiwell79, Deremon, aha, Telematix, miker1264, retrofaza, Farox, ami-elvis
D
deadwoodAROS Dev
Posted 4 days ago
Debugging AROS or your software using GDB

Prerequisites

  • You are using linux-hosted AROS compiled with DEBUG enabled (option '2) core-linux-x86_64 (DEBUG)' in the ./rebuild.sh)
  • Your program is compiled with debug symbols (-g option) and preferably without optimizations (-O0 option)


General

Debugging always happens in the same way. You start complete AROS under the debugger and then you start the program you wish to debug. Once a break-point is hit, GDB takes over and you can use regular GDB commands plus some additional AROS-specific command. Please note that unlike debugging regular linux sofware with GDB, in case of debugging AROS debug symbols are not automatically loaded and needs to be loaded by developer

Details

How to set break-point in code?

You need to add this code

asm("int3");


in the place where where you want to have break-point set. Then recompile your software or AROS module that you want to debug. Adding this code like that will cause an unconditional break-point. If you want a conditional break-point just do

if (condition) asm("int3");


How start AROS under debugger?

gdb -args ./boot/linux/AROSBoostrap -m 1024


The example above starts AROS under GDB with 1024MB of memory assigned. Always use more than 512MB of memory to make sure 64-bit memory range is used which allows detecting some of the 64-bit porting issues.

Note: the first time you try doing this, GDB will show you a long message that you are trying to add a custome .gdbinit file and that this is not safe. This message will also explain how to allow that file to run. Please follow the instructions of GDB and make this file 'safe'. This file contains AROS-specific commands without which loading debugging symbols is not possible.

What do do when break point is hit?

When break point is hit, you will drop down to GDB command line. You can view the call stack with standard GDB 'bt' command, however you will see only addresses. In order to load debugging symbols for a given frame you need to use AROS-specific 'loadframe n' command where <n> is the number of the frame. You can also load complete call stack by using AROS-specific 'loadbt' command.

How to step execute code?

Standard 'n' and 's' GDB commands work. Not however that using 'loadframe' and 'loadbt' loads symbols to modules only in call-stack. If you want to use the 's' command to jump into a library that has it symbols not yet loaded, the 's' command will just act as 'n' command. In order to workaround that you need to use 'si' command (single instruction step) which will step into a module without symbols loaded. Then you can use 'loadframe 0' command to load symbols for that module.
Edited by deadwood on 25-01-2026 12:23, 4 days ago
You can view all discussion threads in this forum.
You cannot start a new discussion thread in this forum.
You cannot reply in this discussion thread.
You cannot start on a poll in this forum.
You cannot upload attachments in this forum.
You cannot download attachments in this forum.
Users who participated in discussion: amigamia, deadwood