079d57b0f2
Error is: ``` ompile-loc2c.o compile-c-support.o inflow.o init.o \ ../sim/ppc/libsim.a -lreadline ../opcodes/libopcodes.a ../bfd/libbfd.a -L./../zlib -lz ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -lncurses -lm ../libiberty/libiberty.a build-gnulib/import/libgnu.a -ldl -Wl,--dynamic-list=./proc-service.list ../sim/ppc/libsim.a(idecode.o): In function `update_time_from_event': idecode.c:(.text+0x170): undefined reference to `error' ../sim/ppc/libsim.a(idecode.o): In function `event_queue_tick': idecode.c:(.text+0x1cc): undefined reference to `error' idecode.c:(.text+0x28c): undefined reference to `error' idecode.c:(.text+0x318): undefined reference to `error' ../sim/ppc/libsim.a(idecode.o): In function `cpu_halt.constprop.6': idecode.c:(.text+0x398): undefined reference to `error' ../sim/ppc/libsim.a(idecode.o):idecode.c:(.text+0x4e4): more undefined references to `error' follow collect2: error: ld returned 1 exit status Makefile:1420: recipe for target 'gdb' failed make[5]: *** [gdb] Error 1 ``` Seems others are running into this as well. The problem seems to be that some code may be built as C++ and not C, which may explain the linker error. On this thread reply: https://sourceware.org/ml/gdb/2016-11/msg00045.html it mentions that the simulator should not call GDB's "error" function directly, but rather use the "host_callback" struct. I have no idea about the use of the GDB simulator within the OpenWrt/LEDE community. So, I took the easier route, which is to disable the simulator. (Also suggested here: https://sourceware.org/ml/gdb/2016-11/msg00047.html ) If needed, I can make an effort to fix the simulator for PPC. Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
82 lines
1.9 KiB
Makefile
82 lines
1.9 KiB
Makefile
#
|
|
# Copyright (C) 2006-2016 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=gdb
|
|
PKG_VERSION:=7.12.1
|
|
PKG_RELEASE:=3
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
|
PKG_SOURCE_URL:=@GNU/gdb
|
|
PKG_HASH:=4607680b973d3ec92c30ad029f1b7dbde3876869e6b3a117d8a7e90081113186
|
|
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_INSTALL:=1
|
|
PKG_LICENSE:=GPL-3.0+
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/gdb/Default
|
|
SECTION:=devel
|
|
CATEGORY:=Development
|
|
DEPENDS:=+!USE_MUSL:libthread-db +PACKAGE_zlib:zlib @!arc
|
|
URL:=http://www.gnu.org/software/gdb/
|
|
endef
|
|
|
|
define Package/gdb
|
|
$(call Package/gdb/Default)
|
|
TITLE:=GNU Debugger
|
|
DEPENDS+=+libreadline +libncurses +zlib
|
|
endef
|
|
|
|
define Package/gdb/description
|
|
GDB, the GNU Project debugger, allows you to see what is going on `inside'
|
|
another program while it executes -- or what another program was doing at the
|
|
moment it crashed.
|
|
endef
|
|
|
|
define Package/gdbserver
|
|
$(call Package/gdb/Default)
|
|
TITLE:=Remote server for GNU Debugger
|
|
endef
|
|
|
|
define Package/gdbserver/description
|
|
GDBSERVER is a program that allows you to run GDB on a different machine than the
|
|
one which is running the program being debugged.
|
|
endef
|
|
|
|
# XXX: add --disable-werror to prevent build failure with arm
|
|
CONFIGURE_ARGS+= \
|
|
--with-system-readline \
|
|
--without-expat \
|
|
--without-lzma \
|
|
--disable-sim \
|
|
--disable-werror
|
|
|
|
CONFIGURE_VARS+= \
|
|
ac_cv_search_tgetent="$(TARGET_LDFLAGS) -lncurses -lreadline"
|
|
|
|
define Build/Install
|
|
$(MAKE) -C $(PKG_BUILD_DIR) \
|
|
DESTDIR="$(PKG_INSTALL_DIR)" \
|
|
CPPFLAGS="$(TARGET_CPPFLAGS)" \
|
|
install-gdb
|
|
endef
|
|
|
|
define Package/gdb/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gdb $(1)/usr/bin/
|
|
endef
|
|
|
|
define Package/gdbserver/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/gdbserver $(1)/usr/bin/
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,gdb))
|
|
$(eval $(call BuildPackage,gdbserver))
|