Menu

Build GDB under MSYS

ollydbg

Currently, I use GCC 5.4 (i686-5.4.0-release-posix-dwarf-rt_v5-rev0 from MinGW-w64 site) under MSYS to build GDB.
Since iconv library is already contained in this package, I just need to build expat and zlib library.

MSYS

I use this package MSYS-20111123.zip hosted on MinGW-w64 site.

GCC

I use this package i686-5.4.0-release-posix-dwarf-rt_v5-rev0.7z from MinGW-w64 site, I extract it under D:\mingw-builds\i686-5.4.0-release-posix-dwarf-rt_v5-rev0.

Python

I use python 2.7.5 Windows x86, I install it in E:\code\Python27

Configure mount

In the file: E:\code\msys\MSYS-20111123\msys\etc\fstab
I have such mount:

D:\mingw-builds\i686-5.4.0-release-posix-dwarf-rt_v5-rev0\mingw32 /mingw
E:\code\python27                        /python

install expat library

download expat library from: http://expat.sourceforge.net/, when writing this article, the 2.2.6 is used, so under MSYS, extract the source code, and simply run:

$ ../configure --prefix=/mingw/i686-w64-mingw32/ --disable-shared --enable-static "CFLAGS=-O2"
make 
make install

install zlib library #

download zlib library from: http://www.zlib.net/, the current version is zlib 1.2.11, use the command below:

$ make -f win32/Makefile.gcc \
BINARY_PATH=/mingw/i686-w64-mingw32/bin \
INCLUDE_PATH=/mingw/i686-w64-mingw32/include \
LIBRARY_PATH=/mingw/i686-w64-mingw32/lib \
install

GDB sources

I use GDB git, which is a Read-only git, see http://www.sourceware.org/gdb/current/, to download its source, you can type:

git clone git://sourceware.org/git/binutils-gdb.git --config core.autocrlf=input --config core.eol=lf

Under MSYSGit command line, or you can install TortoiseGit (this is the git GUI under Windows), the
If you don't want to use git, just download the snapshot from: ftp://sourceware.org/pub/gdb/snapshots/current/, the cvs head version is preferred.

My local patches

currently used patches are:gdb2018-07-25patches.zip, just apply them one bye one, or use the Git am command.

Configure GDB

Create a build directory in the parent folder of GDB root, and run:

mkdir mybuild
cd mybuild
../binutils-gdb/configure \
CFLAGS="-O0 -g" \
--prefix=/mingw \
--host=mingw32 \
--build=mingw32 \
--target=mingw32 \
--with-python=/python/python \
--with-expat \
--disable-nls \
--disable-binutils \
--disable-gas \
--disable-ld \
--disable-gprof

Build GDB and install GDB

make
make install

Note, to install a stripped version (no debug information), also, I only want to install GDB binaries (no need to install other libraries build in GDB) I use:

make install INSTALL_PROGRAM='install -s' -C gdb DESTDIR=/f/where/to/install 

Reference

http://code.google.com/p/qp-gcc/wiki/build_gdb_msys_en


Related

Wiki: Home

Discussion

  • Jacques Delaire

    Jacques Delaire - 2023-04-10

    Hello,
    I follow your procedure to build GDB under MSYS on my PC. I probably missed something but when I try to execute command under MSYS I will get message no such file or directory /usr.
    It is clear there is no /usr on a PC under windows. So is it possible to build GDB on a PC with windows only ?
    Thank you in advance for your help.

     
  • ollydbg

    ollydbg - 2023-04-10

    msys shell is old. I haven't build GDB for several years.

    I think currently you need to use msys2's shell. I think you should follow the way mentioned here: History for mingw-w64-gdb - msys2/MINGW-packages

    Also, I think the folder /usr exists because msys just emulate those paths under Windows.

     
  • Jacques Delaire

    Jacques Delaire - 2023-04-12

    Thank you.
    I will follow your advice.

     

Log in to post a comment.