<html lang="en">
<head>
<title>Installing GCC: Binaries</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Installing GCC: Binaries">
<meta name="generator" content="makeinfo 4.11">
<link title="Top" rel="top" href="#Top">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.

   Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, the Front-Cover texts being (a) (see below), and
with the Back-Cover Texts being (b) (see below).  A copy of the
license is included in the section entitled "GNU Free Documentation License".

(a) The FSF's Front-Cover Text is:

     A GNU Manual

(b) The FSF's Back-Cover Text is:

     You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
</head>
<body>
<h1 class="settitle">Installing GCC: Binaries</h1>
<a name="index-Binaries-1"></a><a name="index-Installing-GCC_003a-Binaries-2"></a>
We are often asked about pre-compiled versions of GCC.  While we cannot
provide these for all platforms, below you'll find links to binaries for
various platforms where creating them by yourself is not easy due to various
reasons.

   <p>Please note that we did not create these binaries, nor do we
support them.  If you have any problems installing them, please
contact their makers.

     <ul>
<li>AIX:
          <ul>
<li><a href="http://www.bullfreeware.com">Bull's Freeware and Shareware Archive for AIX</a>;

          <li><a href="http://aixpdslib.seas.ucla.edu">UCLA Software Library for AIX</a>. 
</ul>

     <li>DOS&mdash;<a href="http://www.delorie.com/djgpp/">DJGPP</a>.

     <li>Renesas H8/300[HS]&mdash;<a href="http://h8300-hms.sourceforge.net/">GNU Development Tools for the Renesas H8/300[HS] Series</a>.

     <li>HP-UX:
          <ul>
<li><a href="http://hpux.cs.utah.edu/">HP-UX Porting Center</a>;

          <li><a href="ftp://sunsite.informatik.rwth-aachen.de/pub/packages/gcc_hpux/">Binaries for HP-UX 11.00 at Aachen University of Technology</a>. 
</ul>

     <li>Motorola 68HC11/68HC12&mdash;<a href="http://www.gnu-m68hc11.org">GNU Development Tools for the Motorola 68HC11/68HC12</a>.

     <li><a href="http://www.sco.com/skunkware/devtools/index.html#gcc">SCO OpenServer/Unixware</a>.

     <li>Solaris 2 (SPARC, Intel)&mdash;<a href="http://www.sunfreeware.com/">Sunfreeware</a>.

     <li>SGI&mdash;<a href="http://freeware.sgi.com/">SGI Freeware</a>.

     <li>Microsoft Windows:
          <ul>
<li>The <a href="http://sourceware.org/cygwin/">Cygwin</a> project;
<li>The <a href="http://www.mingw.org/">MinGW</a> project. 
</ul>

     <li><a href="ftp://ftp.thewrittenword.com/packages/by-name/">The Written Word</a> offers binaries for
AIX 4.3.2. 
IRIX 6.5,
Digital UNIX 4.0D and 5.1,
GNU/Linux (i386),
HP-UX 10.20, 11.00, and 11.11, and
Solaris/SPARC 2.5.1, 2.6, 7, 8, and 9.

     <li><a href="http://www.openpkg.org/">OpenPKG</a> offers binaries for quite a
number of platforms.

     <li>The <a href="http://gcc.gnu.org/wiki/GFortranBinaries">GFortran Wiki</a> has
links to GNU Fortran binaries for several platforms. 
</ul>

   <p>In addition to those specific offerings, you can get a binary
distribution CD-ROM from the
<a href="http://www.gnu.org/order/order.html">Free Software Foundation</a>. 
It contains binaries for a number of platforms, and
includes not only GCC, but other stuff as well.  The current CD does
not contain the latest version of GCC, but it should allow
bootstrapping the compiler.  An updated version of that disk is in the
works.

   <p><hr />
<p><a href="./index.html">Return to the GCC Installation page</a>

<!-- ***Specific**************************************************************** -->
<!-- ***Old documentation****************************************************** -->
<!-- ***GFDL******************************************************************** -->
<!-- *************************************************************************** -->
<!-- Part 6 The End of the Document -->
</body></html>

