aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/Makefile.in7
-rw-r--r--gdb/NEWS7
-rwxr-xr-xgdb/configure11
-rw-r--r--gdb/configure.ac7
-rw-r--r--gdb/silent-rules.mk1
6 files changed, 42 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ad42eb8..4c04d0b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2018-06-28 Tom Tromey <tom@tromey.com>
+
+ * NEWS: Mention --enable-codesign.
+ * silent-rules.mk (ECHO_SIGN): New variable.
+ * configure.ac: Add --enable-codesign.
+ * configure: Rebuild.
+ * Makefile.in (CODESIGN, CODESIGN_CERT): New variables.
+ (gdb$(EXEEXT)): Optionally invoke codesign.
+
2018-06-28 Pedro Alves <palves@redhat.com>
* gdbthread.h (struct thread_suspend_state) <stop_pc>: Extend
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 5934cd6..13627e0 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -222,6 +222,10 @@ LIBICONV = @LIBICONV@
# Did the user give us a --with-gdb-datadir option?
GDB_DATADIR = @GDB_DATADIR@
+# Code signing.
+CODESIGN = codesign
+CODESIGN_CERT = @CODESIGN_CERT@
+
# Flags to pass to gdb when invoked with "make run".
GDBFLAGS =
@@ -1916,6 +1920,9 @@ gdb$(EXEEXT): gdb.o $(LIBGDB_OBS) $(ADD_DEPS) $(CDEPS) $(TDEPLIBS)
$(ECHO_CXXLD) $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) \
-o gdb$(EXEEXT) gdb.o $(LIBGDB_OBS) \
$(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES)
+ifneq ($(CODESIGN_CERT),)
+ $(ECHO_SIGN) $(CODESIGN) -s $(CODESIGN_CERT) gdb$(EXEEXT)
+endif
# Convenience rule to handle recursion.
$(LIBGNU) $(GNULIB_H): all-lib
diff --git a/gdb/NEWS b/gdb/NEWS
index 016796a..839466e 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -94,6 +94,13 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd*
the tradeoff that there is a possibility of false hits being
reported.
+* New configure options
+
+--enable-codesign=CERT
+ This can be used to invoke "codesign -s CERT" after building gdb.
+ This option is useful on macOS, where code signing is required for
+ gdb to work properly.
+
*** Changes in GDB 8.1
* GDB now supports dynamically creating arbitrary register groups specified
diff --git a/gdb/configure b/gdb/configure
index d3a3bbe..28756ed 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -745,6 +745,7 @@ AWK
REPORT_BUGS_TEXI
REPORT_BUGS_TO
PKGVERSION
+CODESIGN_CERT
HAVE_NATIVE_GCORE_TARGET
TARGET_OBS
subdirs
@@ -861,6 +862,7 @@ enable_gdbtk
with_libunwind_ia64
with_curses
enable_profiling
+enable_codesign
with_pkgversion
with_bugurl
with_system_zlib
@@ -1550,6 +1552,7 @@ Optional Features:
--enable-tui enable full-screen terminal user interface (TUI)
--enable-gdbtk enable gdbtk graphical user interface (GUI)
--enable-profiling enable profiling of GDB
+ --enable-codesign=CERT sign gdb with 'codesign -s CERT'
--disable-rpath do not hardcode runtime library paths
--enable-libmcheck Try linking with -lmcheck if available
--enable-werror treat compile warnings as errors
@@ -7050,6 +7053,14 @@ $as_echo "$ac_cv_cc_supports_pg" >&6; }
CFLAGS="$OLD_CFLAGS"
fi
+CODESIGN_CERT=
+# Check whether --enable-codesign was given.
+if test "${enable_codesign+set}" = set; then :
+ enableval=$enable_codesign; CODESIGN_CERT=$enableval
+fi
+
+
+
# Check whether --with-pkgversion was given.
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 44b6c62..4c20ea5 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -471,6 +471,13 @@ if test "$enable_profiling" = yes ; then
CFLAGS="$OLD_CFLAGS"
fi
+CODESIGN_CERT=
+AC_ARG_ENABLE([codesign],
+ AS_HELP_STRING([--enable-codesign=CERT],
+ [sign gdb with 'codesign -s CERT']),
+ [CODESIGN_CERT=$enableval])
+AC_SUBST([CODESIGN_CERT])
+
ACX_PKGVERSION([GDB])
ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/])
AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Additional package description])
diff --git a/gdb/silent-rules.mk b/gdb/silent-rules.mk
index 803dbda..ade77ad 100644
--- a/gdb/silent-rules.mk
+++ b/gdb/silent-rules.mk
@@ -10,5 +10,6 @@ ECHO_GEN_XML_BUILTIN = \
ECHO_GEN_XML_BUILTIN_GENERATED = \
@echo " GEN xml-builtin-generated.c";
ECHO_INIT_C = echo " GEN init.c" ||
+ECHO_SIGN = @echo " SIGN gdb";
SILENCE = @
endif