Cross-Compiler Successful Builds: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
(→‎GCC Version 4.x.x: Split up the tables, we really ought to transpose them as we have more gcc releases than binutils releases.)
m (→‎GCC Version 4.x.x: 4.7.0 tested OK)
Line 6: Line 6:
|-
|-
!
!
! [[GCC]] 4.6.3
! [[GCC]] 4.7.0
! 4.6.3
! 4.6.2
! 4.6.2
! 4.6.1
! 4.6.1
Line 15: Line 16:
|-
|-
! [[Binutils]] 2.22
! [[Binutils]] 2.22
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
| {{Yes}}
Line 24: Line 26:
|-
|-
! [[Binutils]] 2.21.1(a)
! [[Binutils]] 2.21.1(a)
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Yes}}
| {{Yes}}
Line 33: Line 36:
|-
|-
! 2.21
! 2.21
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
Line 42: Line 46:
|-
|-
! 2.20.1
! 2.20.1
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
Line 51: Line 56:
|-
|-
! 2.20
! 2.20
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
Line 60: Line 66:
|-
|-
! 2.19.1
! 2.19.1
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
Line 69: Line 76:
|-
|-
! 2.19
! 2.19
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
Line 78: Line 86:
|-
|-
! 2.18
! 2.18
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
Line 87: Line 96:
|-
|-
! 2.17
! 2.17
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
Line 96: Line 106:
|-
|-
! 2.16.1
! 2.16.1
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
Line 105: Line 116:
|-
|-
! 2.16
! 2.16
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}
| {{Maybe|?}}

Revision as of 05:23, 26 April 2012

Introduction

This page is a summary of successful builds of a GCC Cross-Compiler by members of OSDev.org. The numbers refer to the versions being built, not the host compiler doing the build.

GCC Version 4.x.x

GCC 4.7.0 4.6.3 4.6.2 4.6.1 4.6.0 4.5.2 4.5.1 4.5.0
Binutils 2.22 Yes Yes Yes ? ? ? ? ?
Binutils 2.21.1(a) ? ? Yes Yes ? ? ? ?
2.21 ? ? ? ? Yes Yes ? ?
2.20.1 ? ? ? ? ? ? Yes Yes
2.20 ? ? ? ? ? Yes Yes ?
2.19.1 ? ? ? ? ? ? ? ?
2.19 ? ? ? ? ? ? Yes ?
2.18 ? ? ? ? ? ? ? ?
2.17 ? ? ? ? ? ? ? ?
2.16.1 ? ? ? ? ? ? ? ?
2.16 ? ? ? ? ? ? ? ?
GCC 4.4.3 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0
Binutils 2.22 ? ? ? ? ? ? ? ?
Binutils 2.21.1(a) ? ? ? ? ? ? ? ?
2.21 ? ? ? ? ? ? ? ?
2.20.1 ? ? ? ? ? ? ? ?
2.20 Yes Yes ? ? ? ? ? ?
2.19.1 ? ? Yes Yes Yes ? ? ?
2.19 ? ? ? Yes Yes Yes ? ?
2.18 ? ? ? Yes ? Yes Yes Yes
2.17 ? ? ? ? ? ? ? ?
2.16.1 ? ? ? ? ? ? ? ?
2.16 ? ? ? ? Yes ? ? ?


GCC 4.2.4 4.2.3 4.2.1 4.2.0 4.1.2 4.1.1 4.0.3 4.0.2 4.0.1 4.0.0
Binutils 2.21.1(a) ? ? ? ? ? ? ? ? ? ?
2.21 ? ? ? ? ? ? ? ? ? ?
2.20.1 ? ? ? ? ? ? ? ? ? ?
2.20 ? ? ? ? ? ? ? ? ? Yes
2.19.1 Yes ? ? ? ? ? ? ? ? ?
2.19 Yes ? ? ? ? ? ? ? ? Yes
2.18 Yes Yes Yes ? ? ? ? ? ? ?
2.17 Yes ? ? Yes Yes Yes ? ? ? ?
2.16.1 ? ? ? ? ? Yes ? Yes Yes Yes
2.16 ? ? ? ? ? ? Yes Yes Yes Yes
  • If you plan to use GCC 4.3.0 or a later version, you will also have to install the following (using your system's package management):
    • GNU GMP (libgmp-devel on Cygwin, libgmp3-dev on apt-based systems, dev-libs/gmp on Gentoo)
      • Tutorial covering MSYS and MinGW builds of GMP
    • GNU MPFR (libmpfr-devel on Cygwin, libmpfr-dev on apt-based systems, dev-libs/mpfr on Gentoo)
  • If you plan to use GCC 4.5.0 or a later version, you will also have to install the following (using your system's package management):
    • MPC (libmpc-devel on Cygwin, libmpc-dev on apt-based systems, dev-libs/mpc on Gentoo)
  • If you plan to use GCC 4.5.0 or a later version, and you would like to build libstdc++, you need to compile with a 4.5.x series compiler. Depending on your configuration, you may also need the --disable-libstdcxx-pch configure option.

GCC Version 3.x.x

If for some reason, you need a GCC 3 build, these combinations have been tested. Note that if your code does not work with GCC 4, you usually have bigger problems.

GCC 3.4.6 3.4.5 3.4.4 3.4.3
Binutils 2.20 ? ? ? ?
2.19.1 Yes ? ? ?
2.19 ? ? ? Yes
2.18 Yes ? Yes ?
2.17 Yes ? Yes ?
2.16.1 ? Yes Yes Yes
2.16 ? Yes Yes Yes

There have been successful builds with older versions, but many have (serious) problems as well. Mention of their specifics has been removed to keep this page short; please use up-to-date software.

GCC on Mac OS

GCC 4.6.2 4.6.1 4.5.2 4.5.1 4.5.0 4.4.2 4.4.0 4.2.4
Binutils 2.21.1(a) ? ? ? ? ? ? ? ?
2.21 ? Yes Yes ? ? ? ? ?
2.20.1 ? ? ? Yes Yes ? ? ?
2.20 ? ? ? ? Yes Yes ? ?
2.19.1 ? ? ? ? ? Yes Yes ?
2.18 ? ? ? ? ? ? ? Yes

When compiling GCC 4.3 or higher on OS X 10.4 and 10.5, you may get unresolved symbol errors related to libiconv. This is because the version shipped with OS X is seriously out of date. Install a new version (compile it yourself or use macports) and add --with-libiconv-prefix=/opt/local (or /usr/local if you compiled it yourself) to GCC's ./configure line. Alternatively you may place the libiconv source in gcc-x.y.z/libiconv and it will be compiled as part of the GCC compilation process. (This trick also works for mpfr and gmp).

See Also

Articles