-
-
Save sumanth232/224266e17014a12df0ff to your computer and use it in GitHub Desktop.
Homebrew formula of GDB with patch for OS X Yosemite. Only gdb 7.7 version works fine on OS X without any errors.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "formula" | |
class UniversalBrewedPython < Requirement | |
satisfy { archs_for_command("python").universal? } | |
def message; <<-EOS.undent | |
A build of GDB using a brewed Python was requested, but Python is not | |
a universal build. | |
GDB requires Python to be built as a universal binary or it will fail | |
if attempting to debug a 32-bit binary on a 64-bit host. | |
EOS | |
end | |
end | |
class Gdb < Formula | |
homepage "http://www.gnu.org/software/gdb/" | |
url "http://ftpmirror.gnu.org/gdb/gdb-7.7.1.tar.gz" | |
mirror "http://ftp.gnu.org/gnu/gdb/gdb-7.7.1.tar.gz" | |
sha1 "bb49bdb5781ea62ccdc2ec6869872e1b43168572" | |
if MacOS.version >= "10.10" | |
patch :DATA | |
end | |
depends_on "readline" | |
if build.with? "brewed-python" | |
depends_on UniversalBrewedPython | |
end | |
option "with-brewed-python", "Use the Homebrew version of Python" | |
option "with-version-suffix", "Add a version suffix to program" | |
def install | |
args = [ | |
"--prefix=#{prefix}", | |
"--disable-debug", | |
"--disable-dependency-tracking", | |
"--with-system-readline" | |
] | |
if build.with? "brewed-python" | |
args << "--with-python=#{HOMEBREW_PREFIX}" | |
else | |
args << "--with-python=/usr" | |
end | |
if build.with? "version-suffix" | |
args << "--program-suffix=-#{version.to_s.slice(/^\d/)}" | |
end | |
system "./configure", *args | |
system "make" | |
system "make", "install" | |
# Remove conflicting items with binutils | |
rm_rf include | |
rm_rf lib | |
rm_rf share/"locale" | |
# Conflicts with other GNU packages | |
rm_f info/"standards.info" | |
end | |
def caveats; <<-EOS.undent | |
gdb requires special privileges to access Mach ports. | |
You will need to codesign the binary. For instructions, see: | |
http://sourceware.org/gdb/wiki/BuildingOnDarwin | |
EOS | |
end | |
end | |
__END__ | |
diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c | |
index a21bb0f..3144dd4 100644 | |
--- a/gdb/darwin-nat.c | |
+++ b/gdb/darwin-nat.c | |
@@ -42,7 +42,7 @@ | |
#include <sys/ptrace.h> | |
#include <sys/signal.h> | |
-#include <machine/setjmp.h> | |
+#include <setjmp.h> | |
#include <sys/types.h> | |
#include <unistd.h> | |
#include <signal.h> |
codesigned using this - http://stackoverflow.com/questions/13913818/how-to-get-a-codesigned-gdb-on-osx
After creating the certificate as described in the above link , do the below
codesign -f -s "gdb-cert" /usr/local/bin/gdb
Forked the above code from -
https://gist.github.com/ymyzk/10ad2b74af9235eddb2c
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is to install gdb 7.7 version.
GNU gdb (GDB) 7.7.1
for anyone who ends up here and has no idea.
I don't know if this is the "proper" way to do it, but it worked for me:
I hit the "raw" button at the top and then copied the URL and pasted it into my terminal:
$ brew install "the_URL_you_copied"
I hope this helps
and thank you so much for writing this code, worked like a charm, once i found out how :-D