OS Specific Toolchain: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content deleted Content added
Updated, everything still works fine for binutils 2.39 and gcc 12.2.0. Added a section about how to keep track of your changes. Removed the notes about crossconfig.m4 because this way is still fine. |
|||
Line 15: | Line 15: | ||
* automake (exactly version 1.15.1) |
* automake (exactly version 1.15.1) |
||
* libtool |
* libtool |
||
* The latest Binutils source code (2. |
* The latest Binutils source code (2.39 at time of writing). |
||
* The latest GCC source code ( |
* The latest GCC source code (12.2.0 at time of writing). |
||
* Knowledge of the internals of Binutils and GCC. |
* Knowledge of the internals of Binutils and GCC. |
||
* Knowledge of autoconf and automake. |
* Knowledge of autoconf and automake. |
||
Line 28: | Line 28: | ||
This tutorial currently only have instructions for adding a new x86 and x86_64 target for myos, but it serves as a good enough example that it should be trivial to add more processors by basing it on these instructions and what other operating systems have done. |
This tutorial currently only have instructions for adding a new x86 and x86_64 target for myos, but it serves as a good enough example that it should be trivial to add more processors by basing it on these instructions and what other operating systems have done. |
||
== Making your changes reproducible == |
|||
Since at some point you might have a contributor that wants participate in your project, you likely want to make your toolchain setup reproducible. Instead of downloading the tar-balls, it is therefore a good idea to clone the repositories of binutils (https://sourceware.org/git/binutils-gdb.git) and gcc (https://gcc.gnu.org/git/gcc.git) locally. |
|||
All release versions are tagged within these repositories, so you can use <tt>"git checkout binutils-2_39"</tt> and <tt>"git checkout releases/gcc-12.2.0"</tt> to switch to the correct versions respectively. After making the described changes, you can easily create a patch using <tt>"git diff"</tt> which you can reuse later. |
|||
Another option would be to fork one of the mirror repositories on GitHub. |
|||
== Modifying Binutils == |
== Modifying Binutils == |
||
Line 229: | Line 237: | ||
;; |
;; |
||
</source> |
</source> |
||
'''TODO''': Examine this design and find out what actually needs to be done here. |
|||
'''TODO''': This hasn't been updated since the article was about GCC 7.2.0. It's probably very wrong now. It needs to be updated. |
|||
'''Note''': You need to run <tt>autoconf</tt> in the <tt>libstdc++-v3</tt> directory. |
'''Note''': You need to run <tt>autoconf</tt> in the <tt>libstdc++-v3</tt> directory. |