|  |  | @ -4,39 +4,82 @@ | 
			
		
	
		
			
				
					|  |  |  | #
 | 
			
		
	
		
			
				
					|  |  |  | ################################################################################
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | GDB_VERSION = 8.3 | 
			
		
	
		
			
				
					|  |  |  | GDB_VERSION = 11.2 | 
			
		
	
		
			
				
					|  |  |  | GDB_DIR = gdb-$(GDB_VERSION) | 
			
		
	
		
			
				
					|  |  |  | GDB_SOURCE = gdb-$(GDB_VERSION).tar.xz | 
			
		
	
		
			
				
					|  |  |  | GDB_SITE = https://sourceware.org/pub/gdb/releases | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | $(DL_DIR)/$(GDB_SOURCE): | 
			
		
	
		
			
				
					|  |  |  | 	$(download) $(GDB_SITE)/$(GDB_SOURCE) | 
			
		
	
		
			
				
					|  |  |  | GDB_DEPENDENCIES = zlib ncurses gmp | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | GDB_DEPENDENCIES = zlib ncurses | 
			
		
	
		
			
				
					|  |  |  | GDB_CONF_ENV = \
 | 
			
		
	
		
			
				
					|  |  |  | 	ac_cv_type_uintptr_t=yes \
 | 
			
		
	
		
			
				
					|  |  |  | 	gt_cv_func_gettext_libintl=yes \
 | 
			
		
	
		
			
				
					|  |  |  | 	ac_cv_func_dcgettext=yes \
 | 
			
		
	
		
			
				
					|  |  |  | 	gdb_cv_func_sigsetjmp=yes \
 | 
			
		
	
		
			
				
					|  |  |  | 	bash_cv_func_strcoll_broken=no \
 | 
			
		
	
		
			
				
					|  |  |  | 	bash_cv_must_reinstall_sighandlers=no \
 | 
			
		
	
		
			
				
					|  |  |  | 	bash_cv_func_sigsetjmp=present \
 | 
			
		
	
		
			
				
					|  |  |  | 	bash_cv_have_mbstate_t=yes \
 | 
			
		
	
		
			
				
					|  |  |  | 	gdb_cv_func_sigsetjmp=yes | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | # Starting with gdb 7.11, the bundled gnulib tries to use
 | 
			
		
	
		
			
				
					|  |  |  | # rpl_gettimeofday (gettimeofday replacement) due to the code being
 | 
			
		
	
		
			
				
					|  |  |  | # unable to determine if the replacement function should be used or
 | 
			
		
	
		
			
				
					|  |  |  | # not when cross-compiling with uClibc or musl as C libraries. So use
 | 
			
		
	
		
			
				
					|  |  |  | # gl_cv_func_gettimeofday_clobber=no to not use rpl_gettimeofday,
 | 
			
		
	
		
			
				
					|  |  |  | # assuming musl and uClibc have a properly working gettimeofday
 | 
			
		
	
		
			
				
					|  |  |  | # implementation. It needs to be passed to GDB_CONF_ENV to build
 | 
			
		
	
		
			
				
					|  |  |  | # gdbserver only but also to GDB_MAKE_ENV, because otherwise it does
 | 
			
		
	
		
			
				
					|  |  |  | # not get passed to the configure script of nested packages while
 | 
			
		
	
		
			
				
					|  |  |  | # building gdbserver with full debugger.
 | 
			
		
	
		
			
				
					|  |  |  | GDB_CONF_ENV += gl_cv_func_gettimeofday_clobber=no | 
			
		
	
		
			
				
					|  |  |  | GDB_MAKE_ENV += gl_cv_func_gettimeofday_clobber=no | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | # Similarly, starting with gdb 8.1, the bundled gnulib tries to use
 | 
			
		
	
		
			
				
					|  |  |  | # rpl_strerror. Let's tell gnulib the C library implementation works
 | 
			
		
	
		
			
				
					|  |  |  | # well enough.
 | 
			
		
	
		
			
				
					|  |  |  | GDB_CONF_ENV += \
 | 
			
		
	
		
			
				
					|  |  |  | 	gl_cv_func_working_strerror=yes \
 | 
			
		
	
		
			
				
					|  |  |  | 	gl_cv_func_strerror_0_works=yes | 
			
		
	
		
			
				
					|  |  |  | GDB_MAKE_ENV += \
 | 
			
		
	
		
			
				
					|  |  |  | 	gl_cv_func_working_strerror=yes \
 | 
			
		
	
		
			
				
					|  |  |  | 	gl_cv_func_strerror_0_works=yes | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | # Starting with glibc 2.25, the proc_service.h header has been copied
 | 
			
		
	
		
			
				
					|  |  |  | # from gdb to glibc so other tools can use it. However, that makes it
 | 
			
		
	
		
			
				
					|  |  |  | # necessary to make sure that declaration of prfpregset_t declaration
 | 
			
		
	
		
			
				
					|  |  |  | # is consistent between gdb and glibc. In gdb, however, there is a
 | 
			
		
	
		
			
				
					|  |  |  | # workaround for a broken prfpregset_t declaration in glibc 2.3 which
 | 
			
		
	
		
			
				
					|  |  |  | # uses AC_TRY_RUN to detect if it's needed, which doesn't work in
 | 
			
		
	
		
			
				
					|  |  |  | # cross-compilation. So pass the cache option to configure.
 | 
			
		
	
		
			
				
					|  |  |  | # It needs to be passed to GDB_CONF_ENV to build gdbserver only but
 | 
			
		
	
		
			
				
					|  |  |  | # also to GDB_MAKE_ENV, because otherwise it does not get passed to the
 | 
			
		
	
		
			
				
					|  |  |  | # configure script of nested packages while building gdbserver with full
 | 
			
		
	
		
			
				
					|  |  |  | # debugger.
 | 
			
		
	
		
			
				
					|  |  |  | GDB_CONF_ENV += gdb_cv_prfpregset_t_broken=no | 
			
		
	
		
			
				
					|  |  |  | GDB_MAKE_ENV += gdb_cv_prfpregset_t_broken=no | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | GDB_CONF_OPTS = \
 | 
			
		
	
		
			
				
					|  |  |  | 	--infodir=$(REMOVE_infodir) \
 | 
			
		
	
		
			
				
					|  |  |  | 	--datarootdir=$(REMOVE_datarootdir) \
 | 
			
		
	
		
			
				
					|  |  |  | 	--disable-binutils \
 | 
			
		
	
		
			
				
					|  |  |  | 	--disable-gdbserver \
 | 
			
		
	
		
			
				
					|  |  |  | 	--disable-gdbtk \
 | 
			
		
	
		
			
				
					|  |  |  | 	--disable-inprocess-agent \
 | 
			
		
	
		
			
				
					|  |  |  | 	--disable-sim \
 | 
			
		
	
		
			
				
					|  |  |  | 	--disable-tui \
 | 
			
		
	
		
			
				
					|  |  |  | 	--disable-werror \
 | 
			
		
	
		
			
				
					|  |  |  | 	--with-curses \
 | 
			
		
	
		
			
				
					|  |  |  | 	--with-zlib \
 | 
			
		
	
		
			
				
					|  |  |  | 	--without-included-gettext \
 | 
			
		
	
		
			
				
					|  |  |  | 	--without-mpfr \
 | 
			
		
	
		
			
				
					|  |  |  | 	--without-uiout \
 | 
			
		
	
		
			
				
					|  |  |  | 	--without-x \
 | 
			
		
	
		
			
				
					|  |  |  | 	--enable-static | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | gdb: $(GDB_DEPENDENCIES) $(DL_DIR)/$(GDB_SOURCE) | $(TARGET_DIR) | 
			
		
	
		
			
				
					|  |  |  | 	$(REMOVE)/$(GDB_DIR) | 
			
		
	
		
			
				
					|  |  |  | 	$(UNTAR)/$(GDB_SOURCE) | 
			
		
	
		
			
				
					|  |  |  | 	$(CHDIR)/$(GDB_DIR); \
 | 
			
		
	
		
			
				
					|  |  |  | 		$(CONFIGURE); \
 | 
			
		
	
		
			
				
					|  |  |  | 		$(MAKE) all-gdb; \
 | 
			
		
	
		
			
				
					|  |  |  | 		$(MAKE) install-gdb DESTDIR=$(TARGET_DIR) | 
			
		
	
		
			
				
					|  |  |  | 	$(TARGET_RM) $(addprefix $(TARGET_datadir)/,system-gdbinit) | 
			
		
	
		
			
				
					|  |  |  | 	find $(TARGET_datadir)/gdb/syscalls -type f -not -name 'arm-linux.xml' -not -name 'gdb-syscalls.dtd' -print0 | xargs -0 rm -- | 
			
		
	
		
			
				
					|  |  |  | 	$(REMOVE)/$(GDB_DIR) | 
			
		
	
		
			
				
					|  |  |  | 	$(TOUCH) | 
			
		
	
		
			
				
					|  |  |  | define GDB_TARGET_CLEANUP | 
			
		
	
		
			
				
					|  |  |  | 	$(TARGET_RM) $(addprefix $(TARGET_bindir)/,gcore gdb-add-index) | 
			
		
	
		
			
				
					|  |  |  | endef | 
			
		
	
		
			
				
					|  |  |  | GDB_TARGET_FINALIZE_HOOKS += GDB_TARGET_CLEANUP | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | gdb: | $(TARGET_DIR) | 
			
		
	
		
			
				
					|  |  |  | 	$(call autotools-package) | 
			
		
	
	
		
			
				
					|  |  | 
 |