From patchwork Fri Jan 5 10:34:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 25226 Received: (qmail 51550 invoked by alias); 5 Jan 2018 10:35:20 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 51520 invoked by uid 89); 5 Jan 2018 10:35:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=H*RU:sk:static., Hx-spam-relays-external:sk:static. X-HELO: mail-wr0-f175.google.com Received: from mail-wr0-f175.google.com (HELO mail-wr0-f175.google.com) (209.85.128.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 05 Jan 2018 10:35:03 +0000 Received: by mail-wr0-f175.google.com with SMTP id o7so1203993wro.8 for ; Fri, 05 Jan 2018 02:35:02 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=9GWzydKGAGMyLIxxZBV7wFovX4SJLbS6UxMyf3SPhb8=; b=bP4s6mNtlZXKlwTmjLs0utTImmyLOQCawSLcpQ/rzxNovSPOwTXi/sXBAchaRaZVO9 LTUXOsalc/8a8CwAW0n2VucIQ0t3kkX129RauHnSpYSwakBhC6AE8/H5gBwUczXZTBeD PX50JruKiK3+l3qZIbqVfj7yyizypQZdG9gxN2pWY16bZqTm5spq0Cpyqwr9CFp1wQIW GjPyvMVrX5flKs//+U/rRVaSoQ+pG95FWJ/THEP8kr/VwceBJuA6SYWPrZcTZvE6RVRx yaz8zMMgIzZ18AiJLQjO1k0R288gU5xh53DAhuCeGXWQkprjZV8LkaOMUibKpkOQ16EG wVdg== X-Gm-Message-State: AKGB3mLPRHR+TCURrDbA/gl6NmouiuWapoUksdhLSIh6r/U+wGP0/t3C VSRezbrfpri2Ib625WYGn9eYMw== X-Google-Smtp-Source: ACJfBovkeVewuYyU4DWoy/dw6vcIPULcJuDyb99xszHHrwD2KvKnHFMjZ0muS239AhzRV4BgZS2TGg== X-Received: by 10.223.182.5 with SMTP id f5mr2490437wre.46.1515148500872; Fri, 05 Jan 2018 02:35:00 -0800 (PST) Received: from E107787-LIN.cambridge.arm.com (static.42.136.251.148.clients.your-server.de. [148.251.136.42]) by smtp.gmail.com with ESMTPSA id q74sm10040701wmg.22.2018.01.05.02.35.00 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 05 Jan 2018 02:35:00 -0800 (PST) From: Yao Qi X-Google-Original-From: Yao Qi To: gdb-patches@sourceware.org Subject: [PATCH 1/2 master/8.1] Fix GDB build failure when $development is false Date: Fri, 5 Jan 2018 10:34:53 +0000 Message-Id: <1515148494-21578-1-git-send-email-yao.qi@linaro.org> X-IsSubscribed: yes We don't build GDB selftests bits when $development is false. However, if we turn bfd/development.sh:$development to false, common/selftest.c is compiled which is not expected. It causes the build failure, selftest.o: In function `selftests::run_tests(char const*)': binutils-gdb/gdb/common/selftest.c:97: undefined reference to `selftests::reset()' collect2: error: ld returned 1 exit status I fix this issue by putting selftest.o selftest-arch.o into CONFIG_OBS only when $development is true. After this is fixed, there are other build failures in maint.c, this patch fixes them as well. In the release mode, the output of these commands are: (gdb) maintenance selftest (gdb) maintenance selftest ffo (gdb) maintenance info selftest Registered selftests: (gdb) gdb: 2018-01-05 Yao Qi * Makefile.in (COMMON_SFILES): Remove selftest-arch.c and common/selftest.c. (COMMON_OBS): Remove selftest.o. * configure.ac: Append selftest-arch.c and common/selftest.c to CONFIG_SRCS. Append selftest-arch.o and selftest.o to COMMON_OBS. * configure: Re-generated. * maint.c (maintenance_selftest): Wrap selftests::run_tests with GDB_SELF_TEST. (maintenance_info_selftests): Likewise. --- gdb/Makefile.in | 3 --- gdb/configure | 4 ++-- gdb/configure.ac | 4 ++-- gdb/maint.c | 4 ++++ 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/gdb/Makefile.in b/gdb/Makefile.in index c0486c4..17b71c6 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -1050,7 +1050,6 @@ COMMON_SFILES = \ remote-notif.c \ reverse.c \ rust-lang.c \ - selftest-arch.c \ sentinel-frame.c \ ser-event.c \ serial.c \ @@ -1139,7 +1138,6 @@ SFILES = \ common/ptid.c \ common/rsp-low.c \ common/run-time-clock.c \ - common/selftest.c \ common/signals.c \ common/signals-state-save-restore.c \ common/vec.c \ @@ -1555,7 +1553,6 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \ ptid.o \ rsp-low.o \ run-time-clock.o \ - selftest.o \ signals.o \ signals-state-save-restore.o \ vec.o \ diff --git a/gdb/configure b/gdb/configure index 7b25007..db610f3 100755 --- a/gdb/configure +++ b/gdb/configure @@ -17599,8 +17599,8 @@ if $development; then $as_echo "#define GDB_SELF_TEST 1" >>confdefs.h - CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS)" - CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS)" + CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) selftest.o selftest-arch.o" + CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS) common/selftest.c selftest-arch.c" fi diff --git a/gdb/configure.ac b/gdb/configure.ac index 3e073b5..3db44ae 100644 --- a/gdb/configure.ac +++ b/gdb/configure.ac @@ -2293,8 +2293,8 @@ AC_DEFINE(GDB_DEFAULT_HOST_CHARSET, "UTF-8", if $development; then AC_DEFINE(GDB_SELF_TEST, 1, [Define if self-testing features should be enabled]) - CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS)" - CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS)" + CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_UNITTESTS_OBS) selftest.o selftest-arch.o" + CONFIG_SRCS="$CONFIG_SRCS \$(SUBDIR_UNITTESTS_SRCS) common/selftest.c selftest-arch.c" fi GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME]) diff --git a/gdb/maint.c b/gdb/maint.c index a924f83..624a80e 100644 --- a/gdb/maint.c +++ b/gdb/maint.c @@ -939,16 +939,20 @@ show_per_command_cmd (const char *args, int from_tty) static void maintenance_selftest (const char *args, int from_tty) { +#if GDB_SELF_TEST selftests::run_tests (args); +#endif } static void maintenance_info_selftests (const char *arg, int from_tty) { printf_filtered ("Registered selftests:\n"); +#if GDB_SELF_TEST selftests::for_each_selftest ([] (const std::string &name) { printf_filtered (" - %s\n", name.c_str ()); }); +#endif }