adaff0dfea
When a Xtensa specific patch needs to be applied, it should be applied both when doing the target and the host build. This change is part of the effort to remove the differences between host and target post-extract and post-patch hooks, that are problematic for the out-of-tree support. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
128 lines
3.6 KiB
Makefile
128 lines
3.6 KiB
Makefile
#############################################################
|
|
#
|
|
# gdb
|
|
#
|
|
#############################################################
|
|
|
|
GDB_VERSION = $(call qstrip,$(BR2_GDB_VERSION))
|
|
GDB_SITE = $(BR2_GNU_MIRROR)/gdb
|
|
|
|
# When no version is defined, it means that cross-gdb for the host has
|
|
# not been enabled, and we will only build gdbserver or gdb for the
|
|
# target. In this case, use the latest available version
|
|
# automatically.
|
|
ifeq ($(GDB_VERSION),)
|
|
ifeq ($(BR2_bfin),y)
|
|
GDB_VERSION = 6.6a
|
|
else ifeq ($(BR2_avr32),y)
|
|
GDB_VERSION = 6.7.1-avr32-2.1.5
|
|
else
|
|
GDB_VERSION = 7.5.1
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(GDB_VERSION),6.7.1-avr32-2.1.5)
|
|
GDB_SITE = ftp://www.at91.com/pub/buildroot/
|
|
endif
|
|
|
|
GDB_SOURCE = gdb-$(GDB_VERSION).tar.bz2
|
|
GDB_LICENSE = GPLv2+ LGPLv2+ GPLv3+ LGPLv3+
|
|
GDB_LICENSE_FILES = COPYING COPYING.LIB COPYING3 COPYING3.LIB
|
|
|
|
# We only want gdbserver and not the entire debugger.
|
|
ifeq ($(BR2_PACKAGE_GDB_DEBUGGER),)
|
|
GDB_SUBDIR = gdb/gdbserver
|
|
HOST_GDB_SUBDIR = .
|
|
else
|
|
GDB_DEPENDENCIES = ncurses
|
|
endif
|
|
|
|
# For the host variant, we really want to build with XML support,
|
|
# which is needed to read XML descriptions of target architectures.
|
|
HOST_GDB_DEPENDENCIES = host-expat
|
|
|
|
# Apply the Xtensa specific patches
|
|
XTENSA_CORE_NAME = $(call qstrip, $(BR2_XTENSA_CORE_NAME))
|
|
ifneq ($(XTENSA_CORE_NAME),)
|
|
define GDB_XTENSA_PRE_PATCH
|
|
tar xf $(BR2_XTENSA_OVERLAY_DIR)/xtensa_$(XTENSA_CORE_NAME).tar \
|
|
-C $(@D) --strip-components=1 gdb
|
|
endef
|
|
GDB_PRE_PATCH_HOOKS += GDB_XTENSA_PRE_PATCH
|
|
HOST_GDB_PRE_PATCH_HOOKS += GDB_XTENSA_PRE_PATCH
|
|
endif
|
|
|
|
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
|
|
|
|
GDB_CONF_OPT = \
|
|
--without-uiout \
|
|
--disable-tui \
|
|
--disable-gdbtk \
|
|
--without-x \
|
|
--disable-sim \
|
|
$(if $(BR2_PACKAGE_GDB_SERVER),--enable-gdbserver) \
|
|
--with-curses \
|
|
--without-included-gettext \
|
|
--disable-werror
|
|
|
|
# This removes some unneeded Python scripts and XML target description
|
|
# files that are not useful for a normal usage of the debugger.
|
|
define GDB_REMOVE_UNNEEDED_FILES
|
|
$(RM) -rf $(TARGET_DIR)/usr/share/gdb
|
|
endef
|
|
|
|
GDB_POST_INSTALL_TARGET_HOOKS += GDB_REMOVE_UNNEEDED_FILES
|
|
|
|
# This installs the gdbserver somewhere into the $(HOST_DIR) so that
|
|
# it becomes an integral part of the SDK, if the toolchain generated
|
|
# by Buildroot is later used as an external toolchain. We install it
|
|
# in debug-root/usr/bin/gdbserver so that it matches what Crosstool-NG
|
|
# does.
|
|
define GDB_SDK_INSTALL_GDBSERVER
|
|
$(INSTALL) -D -m 0755 $(TARGET_DIR)/usr/bin/gdbserver \
|
|
$(HOST_DIR)/usr/$(GNU_TARGET_NAME)/debug-root/usr/bin/gdbserver
|
|
endef
|
|
|
|
ifeq ($(BR2_PACKAGE_GDB_SERVER),y)
|
|
GDB_POST_INSTALL_TARGET_HOOKS += GDB_SDK_INSTALL_GDBSERVER
|
|
endif
|
|
|
|
# A few notes:
|
|
# * --target, because we're doing a cross build rather than a real
|
|
# host build.
|
|
# * --enable-static because gdb really wants to use libbfd.a
|
|
# * --disable-shared, otherwise the old 6.7 version specific to AVR32
|
|
# doesn't build because it wants to link a shared libbfd.so against
|
|
# non-PIC liberty.a.
|
|
HOST_GDB_CONF_OPT = \
|
|
--target=$(GNU_TARGET_NAME) \
|
|
--enable-static --disable-shared \
|
|
--without-uiout \
|
|
--disable-tui \
|
|
--disable-gdbtk \
|
|
--without-x \
|
|
--enable-threads \
|
|
--disable-werror \
|
|
--without-included-gettext \
|
|
--disable-sim
|
|
|
|
# legacy $arch-linux-gdb symlink
|
|
define HOST_GDB_ADD_SYMLINK
|
|
cd $(HOST_DIR)/usr/bin && \
|
|
ln -snf $(GNU_TARGET_NAME)-gdb $(ARCH)-linux-gdb
|
|
endef
|
|
|
|
HOST_GDB_POST_INSTALL_HOOKS += HOST_GDB_ADD_SYMLINK
|
|
|
|
$(eval $(autotools-package))
|
|
$(eval $(host-autotools-package))
|