diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ad42eb8eb30..4c04d0ba728 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2018-06-28 Tom Tromey + + * 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 * gdbthread.h (struct thread_suspend_state) : Extend diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 5934cd6a23e..13627e07e0a 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 016796a802a..839466e7e06 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 d3a3bbe44c9..28756ed9826 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 44b6c62d709..4c20ea5178d 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 803dbda546a..ade77ad1c51 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