Skip to content

Instantly share code, notes, and snippets.

@m0sys
Last active December 18, 2023 19:10
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save m0sys/711d0ec5e52102c6ba44451caf38bd38 to your computer and use it in GitHub Desktop.
Save m0sys/711d0ec5e52102c6ba44451caf38bd38 to your computer and use it in GitHub Desktop.
Apple M1 ARM GDB Build from Source with Python Support
#!/usr/bin/env sh
# NOTE: First, have to ignore the following warnings to make it build on M1 Chip.
#
# -Wno-constant-logical-operand -Wno-format-nonliteral -Wno-self-assign
#
# To do so the above line should be appended to consts CFLAGS and CXXFLAGS
# under the 'Programs producing files for the HOST machine' section of
# the generated Makefile in dir 'build-gdb'.
# With the new updated flags clang should be able build gdb successfully with
# no more errors. Rerun "make" and then "make install" while in the "gdb-build"
# dir.
#
# Second, be sure to update 'with-python' and 'with-libgmp' flags below to appropriate
# location on personal system so gdb knows where to find them.
#
# Third, copy line 24 and 25 to terminal rc file i.e. .zshrc|.bashrc|etc ... so gdb is
# on terminal PATH.
#
# Fourth, enjoy debugging on the M1 with GDB.
export TARGET=arm-none-eabi
export PREFIX=$HOME/.local
export PATH=$PATH:$PREFIX/bin
export VERSION=12.1
export GDB=gdb-$VERSION
rm -rf $GDB
# Get archives
wget http://ftp.gnu.org/gnu/gdb/$GDB.tar.gz
# Extract archives
tar xzvf $GDB.tar.gz
mkdir build-gdb
cd build-gdb
../$GDB/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib --with-python=/opt/homebrew/bin/python3 --with-libgmp-prefix=/opt/homebrew/Cellar/gmp/6.2.1_1
make
make install
@JayFoxRox
Copy link

No, it's not a user-error, but just missing support for it in gdb.

The latest information appears to be in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96168 - it links to a fork which has support for macOS on aarch64, but I didn't try it yet.

@m0sys
Copy link
Author

m0sys commented Mar 22, 2023

Hey guys, I apologize for late response! This script that I posted only works for arm-none-eabi. I haven't personally tried to compile gdb for aarch64 since its not supported. Essentially, it's an abi issue. Check out gcc-darwin-arm64 for further support (haven't tried it yet). Thanks @JayFoxRox for the link!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment