Problem in Install gcc on Windows XP

View: New views
8 Messages — Rating Filter:   Alert me  

Problem in Install gcc on Windows XP

by Dash, Santos Kumar IN BLR SISL :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,
I want to Compile and install gcc on Windows XP.
Can you please tell me wat are the seqence of steps to do it.
Regards,
Santos Kumar Dash
S I E M E N S Information Systems Ltd (SISL)
Work: -+91 -80- 28091562 (Dir)  ext: 4562
 Cell: -+91 9886817129
mailto:Santoskumar.Dash@...



Re: Problem in Install gcc on Windows XP

by Tim Prince-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dash, Santos Kumar IN BLR SISL wrote:
> Hi,
> I want to Compile and install gcc on Windows XP.

AFAIK 64-bit XP does not have a gcc port. If you mean 32-bit XP,
start by choosing and installing a pre-built gcc such as those included in
http://www.cygwin.com/ (probably best for rebuilding gcc)
or
http://www.mingw.org/download.shtml  (normally built by a cross-compiler
running in linux?)

The standard recipes for building gcc and cross compilers apply, with
relatively minor changes.  Look at gcc-testsuite reports, as well as the
configure options in the pre-built compilers, to get hints about configure.


AW: Problem in Install gcc on Windows XP

by Georg Steffers :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Am 31.08.2006 07:11:59 schrieb(en) Dash, Santos Kumar  IN BLR SISL:

> Hi,
> I want to Compile and install gcc on Windows XP.
> Can you please tell me wat are the seqence of steps to do it.
> Regards,
> Santos Kumar Dash
> S I E M E N S Information Systems Ltd (SISL)
> Work: -+91 -80- 28091562 (Dir)  ext: 4562
>  Cell: -+91 9886817129
> mailto:Santoskumar.Dash@...
>

I guess you don't neccessarily want to compile gcc on win but want to  
have a developement environment for using gcc on win as your compiler.

There are two projects that i am aware of, that provide this. The first  
(my favourite) the mingw project http://www.mingw.org/
and second the cygwin project http://www.cygwin.com/ you can look on  
their site for infomation how to install this.

Greets,
   Georg Steffers

Re: Problem in Install gcc on Windows XP

by Marcelo Slomp :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dash, Santos Kumar IN BLR SISL wrote:
Hi,
I want to Compile and install gcc on Windows XP.
Can you please tell me wat are the seqence of steps to do it.
Regards,
Santos Kumar Dash
S I E M E N S Information Systems Ltd (SISL)
Work: -+91 -80- 28091562 (Dir)  ext: 4562
 Cell: -+91 9886817129
mailto:Santoskumar.Dash@siemens.com
I've written a mini-howto, containing instructions on how to build the latest gcc (currently v.4.1.1) from scratch under win32, using the msys/mingw environment.

Readme.1st: apologize my imperfect english :/

I   - Setting up the MSYS envirnoment
II  - Installing pre-built gcc binaries
III - Creating the gcc host environment
IV  - Building and installing gcc
V   - Adding other build tools
VI  - Have fun


I - SETTING UP THE MSYS ENVIRONMENT
The first thing we'll need is a fully functional msys environment. You can do this quickly by just downloading and installing the msys binaries package, available at http://www.mingw.org

msys 1.0.10: http://prdownloads.sf.net/mingw/MSYS-1.0.10.exe?download

To keep a clean understanding, I'll assume you installed msys in the c:\ root.
This way, msys is located at: c:\msys


II - INSTALLING PRE-BUILT GCC BINARIES
Now that msys is already installed, we need some version of gcc itself in order we can build the latest version. This way, download the following binary packages:

from GNUWin32 project:
bison: http://prdownloads.sourceforge.net/gnuwin32/bison-2.1-bin.zip?download
flex: http://prdownloads.sourceforge.net/gnuwin32/flex-2.5.4a-1-bin.zip?download
libiconv: http://prdownloads.sourceforge.net/gnuwin32/libiconv-1.9.2-1-bin.zip?download
libintl: http://prdownloads.sourceforge.net/gnuwin32/libintl-0.14.4-bin.zip?download

from MinGW project:
win32api: http://prdownloads.sourceforge.net/mingw/w32api-3.7.tar.gz?download
mingw-runtime: http://prdownloads.sourceforge.net/mingw/mingw-runtime-3.10.tar.gz?download
binutils: http://prdownloads.sourceforge.net/mingw/binutils-2.17.50-20060824-1.tar.gz?download
gcc-core: http://prdownloads.sourceforge.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz?download

To install its, create a new directory called 'gcc' or any other you want in the c:\ root. Then extract all files above inside this new directory. However, for libiconv and libintl, only extract the dlls inside the package's ./bin subdir and copy its to the c:\gcc\bin directory.

Important: after extraction, go to c:\gcc\bin and delete m4.exe (msys uses a specific m4 build, included with msys package).

After this, add the c:\gcc\bin directory to the PATH environment variable.

Notice that gcc-g++ package is not used here, because is not necessary a c++ compiler to build gcc.

You can check if it's all right by opening msys, then typing:
# gcc -v
This should show some info about the pre-built gcc.
If working, we can go to the next step.


III - CREATING THE GCC HOST ENVIRONMENT
In order to build gcc, we need setup a host directory that will receive the new gcc binaries and files.
This should be done before the build itself, because this host directory and files are used during the build process.

Supposing you installed msys and the pre-built gcc under c:\, you have now the following directory structure:

c:\
 |---folder_1
 |---folder_2
 |---gcc <- here you installed the pre-built gcc
 |---msys <- msys environment is installed here
 |    |---bin
 |    |---doc
 |    |---etc
 |    |---home
 |    |---mingw <- built gcc will be installed here
 |---folder_n


Now, you'll create the host environment that will receive the new gcc build (c:\msys\mingw).
To do this, you need install the mingw-runtime, binutils and win32 api. Just extract the mingw-runtime and w32api packages and extract its into the c:\msys\mingw folder. For binutils, you can either, use the binutils binaries already downloaded or build it youself.
For the first option, just extract the binutils binary package into the c:\msys\mingw folder.
If you want to build your own binutils binaries, please read in the next chapter about how to do this.


IV - BUILDING AND INSTALLING GCC
In msys environment, create a work directory, where the sources and temporary build files will be placed:
# cd /
# mkdir gcc-work && cd gcc-work
# mkdir {build,source}


*** Building binutils
If you want to build binutils from source, here are the instructions. Otherwise, jump this section.
Download the source package:
binutils 2.17: http://ftp.gnu.org/gnu/binutils/binutils-2.17.tar.bz2

copy/move it to the source folder (in the work directory - /gcc-work/source)
extract it:
# cd source
# tar jxf binutils-2.17.tar.bz2

go to the build directory and create a temporary directory where binutils will be built:
# cd ../build
# mkdir binutils
# cd binutils

configure, compile and install binutils in the /mingw directory:
# ../../source/binutils-2.17/configure --prefix=/mingw --host=mingw32 --target=mingw32 --program-prefix="" --with-lib-path=/mingw/mingw32/lib:/mingw/lib:/usr/local/lib:/lib:/usr/lib --with-gcc --with-gnu-as --with-gnu-ld --disable-nls --disable-shared
# make  CFLAGS="-O2 -D__USE_CRTIMP -fno-exceptions" LDFLAGS=-s

flags are self-explanatory, but you can get info about configuration flags by running the configure --help command, but is important to pay attention in the --with-lib-path flag. it determinate where utils such ld will find for libraries. as we are installing under /mingw directory, the first 2 paths must point to this prefix. if you want to change the prefix for some reason, do not forgot to change this! other paths are required when searching for libs into the msys environment (if you plan to use msys later).

this is a time to a coffe or a beer... :)
the build process will take several minutes.

after this, just install it as the usual:
# make install


*** Building gcc
The most wanted moment has come: the gcc build itself. don't worry, nothing surreal or cabalistic here. :)
First, download the gcc source packages - here, only c and c++ languages will be installed, but you can obviously download other packages and modify the command lines if you want to install other languages, such ada and java. read about gcc configuration flags at: http://gcc.gnu.org/install/configure.html

gcc-core: http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/gcc-core-4.1.1.tar.bz2
gcc-g++:  http://ftp.gnu.org/gnu/gcc/gcc-4.1.1/gcc-g++-4.1.1.tar.bz2

copy/move its to the source directory, then extract:
# cd /gcc-work/source
# tar jxf gcc-core-4.1.1.tar.bz2
# tar jxf gcc-g++-4.1.1.tar.bz2

go to the build directory and create a temporary directory where gcc will be built:
# cd ../build
# mkdir gcc
# cd gcc

configuring:
# ../../source/gcc-4.1.1/configure --prefix=/mingw --host=mingw32 --target=mingw32 --program-prefix="" --with-as=/mingw/bin/as.exe --with-ld=/mingw/bin/ld.exe --with-gcc --with-gnu-ld --with-gnu-as --enable-threads --disable-nls --enable-languages=c,c++ --disable-win32-registry --disable-shared --without-x --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug
# make CFLAGS="-O2 -fomit-frame-pointer" CXXFLAGS="-mthreads -fno-omit-frame-pointer -O2" LDFLAGS=-s bootstrap2
the bootstrap process is recommended in the gcc documentation, and will produce a compiler more optimized than other that was not built in this way. during the bootstrap, a compiler will be generated, that will compile another compiler, that will compile another compiler and so on. the bootstrap2 command instructs to generate 2 pre-compilers before the final version.
obviously this process consumes much more build time, but the final result is better. you can supress the bootstrap2 target in the make line, if you don't want a bootstrapped compiler.

now, relax. drink a coffe, or lots of. this operation will take some long time to complete.
after this, the happiness is complete: install your brand new gcc :)
# make install

your fresh new gcc build is now installed and ready to use. you can then delete the work directory, as well the pre-built gcc directory. don't forgot to add to the PATH variable the new gcc's bin directory.


V - ADDING OTHER BUILD TOOLS
Now that the new gcc binaries are already installed, we can add other development tools to the gcc box. here, presenting gdb and make.

- installing gdb:
download the precompiled binaries of gdb:
gdb 6.3-2: http://prdownloads.sourceforge.net/mingw/gdb-6.3-2.exe?download
install the package in the c:\msys\mingw directory

i have built gdb 6.5 with success, however it does not have native support for the pe executables. this way, the best alternative is to install the binary package above.

- installing make:
notice that 'make' is already included with the msys package. however, if you do not plain to work with msys later but want to use makefiles, you need your own make binary.
 
you can install the precompiled binary package by extracting the following package into the c:\msys\mingw folder:
http://prdownloads.sourceforge.net/mingw/mingw32-make-3.81-1.tar.gz?download

or build it youself. to do this, download the source package:
make 3.81 source: http://ftp.gnu.org/gnu/make/make-3.81.tar.bz2
copy it to the source folder in msys, then extract it:
# cd /gcc-work/source
# tar jxf make-3.81.tar.bz2

go to the /gcc-work/build and create a make's build directory:
# cd ../build && mkdir make
# cd make

build and install it:
# ../../source/make-3.81/configure --prefix=/mingw --target=mingw32 --program-prefix="" --disable-nls --disable-dependency-tracking
# make CFLAGS=-O2 LDFLAGS=-s
# make install


VI - HAVE FUN
As the title says, have fun with your latest version of gcc under win32!
Builds made with success in WinXP and Win2000, but these instructions should work in other Win32  systems, such Win98/ME/NT/2003/Vista.
Recent snapshots for gcc 4.1 were built with success using the same approach and steps.

Marcelo A B Slomp
mslomp^at^linuxmail^dot^org

Re: Problem in Install gcc on Windows XP

by gnilleps :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I tried to generate the config files (see quote below the output) and received this output (Note: I believe I followed the directions above the section I quoted to the letter.  I used the pre-compiled binutils)

loading cache ./config.cache
checking host system type... i386-pc-mingw32
checking target system type... i386-pc-mingw32
checking build system type... i386-pc-mingw32
checking for a BSD compatible install... /bin/install -c
checking whether ln works... yes
checking whether ln -s works... no
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables

Any thoughts?


Dash, Santos Kumar IN BLR SISL wrote:
# ../../source/gcc-4.1.1/configure --prefix=/mingw --host=mingw32 --target=mingw32 --program-prefix="" --with-as=/mingw/bin/as.exe --with-ld=/mingw/bin/ld.exe --with-gcc --with-gnu-ld --with-gnu-as --enable-threads --disable-nls --enable-languages=c,c++ --disable-win32-registry --disable-shared --without-x --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug

Re: Problem in Install gcc on Windows XP

by Tim Prince-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

gnilleps wrote:

> I tried to generate the config files (see quote below the output) and
> received this output (Note: I believe I followed the directions above the
> section I quoted to the letter.  I used the pre-compiled binutils)
>
> loading cache ./config.cache
> checking host system type... i386-pc-mingw32
> checking target system type... i386-pc-mingw32
> checking build system type... i386-pc-mingw32
> checking for a BSD compatible install... /bin/install -c
> checking whether ln works... yes
> checking whether ln -s works... no
> checking for gcc... gcc
> checking whether the C compiler (gcc  ) works... no
> configure: error: installation or configuration problem: C compiler cannot
> create executables
>
> Any thoughts?
>
Avoid top posting, read the docs, check config.log ....

I have no idea what system you could be running which would support ln
but not ln -s, but I hope you do.

Re: Problem in Install gcc on Windows XP

by Kai Ruottu :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

gnilleps kirjoitti:

> I tried to generate the config files (see quote below the output) and
> received this output (Note: I believe I followed the directions above the
> section I quoted to the letter.  I used the pre-compiled binutils)
>
> loading cache ./config.cache
> checking host system type... i386-pc-mingw32
> checking target system type... i386-pc-mingw32
> checking build system type... i386-pc-mingw32
> checking for a BSD compatible install... /bin/install -c
> checking whether ln works... yes
> checking whether ln -s works... no
> checking for gcc... gcc
> checking whether the C compiler (gcc  ) works... no
> configure: error: installation or configuration problem: C compiler cannot
> create executables
>
> Any thoughts?
>  
 Before trying to drive thousand miles with your car, it would be
useful to see whether it could succeed a hundred feets!

 What about testing your existing 'gcc' first with compiling and
linking a "Hello World"?  Can it even create this executable?


Re: Problem in Install gcc on Windows XP

by Marcelo Slomp :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

gnilleps wrote:
I tried to generate the config files (see quote below the output) and received this output (Note: I believe I followed the directions above the section I quoted to the letter.  I used the pre-compiled binutils)

loading cache ./config.cache
checking host system type... i386-pc-mingw32
checking target system type... i386-pc-mingw32
checking build system type... i386-pc-mingw32
checking for a BSD compatible install... /bin/install -c
checking whether ln works... yes
checking whether ln -s works... no
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables

Any thoughts?
did you installed binutils and/or w32api/mingw-runtime correctly?