From patchwork Wed Aug 16 04:42:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aaron Merey X-Patchwork-Id: 74188 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E671A38560B6 for ; Wed, 16 Aug 2023 04:44:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E671A38560B6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1692161066; bh=7AMDeLLTbY5Tn7yD/sAFuxg5mU6Uc3fQPhmfefRW1C4=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=kvWXKKJBVbR1X76yP2vxIwvL8yKOexHA9sIXQsGz8j2BcPyhUMiFCVQa6v0Y1uOoR RsKlnKrx06wYAU6SxRiAP2yTVPT8UrUAWKgukijz3dNGP1TDKszj3t5YmlDvxSFukK 6fNxIvyoF2Dik+syTvZ6gzzc72sLjdiucGuli6GI= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id E5582385624F for ; Wed, 16 Aug 2023 04:43:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E5582385624F Received: from mimecast-mx02.redhat.com (66.187.233.73 [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-610-Db21wTnBM5SA9loc6oyssQ-1; Wed, 16 Aug 2023 00:43:19 -0400 X-MC-Unique: Db21wTnBM5SA9loc6oyssQ-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id DC9451C03D86; Wed, 16 Aug 2023 04:43:18 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.22.8.113]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5AE202026D4B; Wed, 16 Aug 2023 04:43:18 +0000 (UTC) To: gdb-patches@sourceware.org, binutils@sourceware.org Cc: aburgess@redhat.com, Aaron Merey Subject: [PATCH 1/7] config/debuginfod.m4: Add check for libdebuginfod 0.188 Date: Wed, 16 Aug 2023 00:42:52 -0400 Message-ID: <20230816044259.2675531-2-amerey@redhat.com> In-Reply-To: <20230816044259.2675531-1-amerey@redhat.com> References: <20230816044259.2675531-1-amerey@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Aaron Merey via Binutils From: Aaron Merey Reply-To: Aaron Merey Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Sender: "Binutils" Add check for libdebuginfod 0.188 in AC_DEBUGINFOD and if found define macro HAVE_LIBDEBUGINFOD_FIND_SECTION. This macro indicates support for downloading ELF sections from debuginfod servers. --- binutils/config.in | 3 ++ binutils/configure | 108 ++++++++++++++++++++++++++++++++++++++++++- config/debuginfod.m4 | 13 +++++- gdb/config.in | 3 ++ gdb/configure | 108 ++++++++++++++++++++++++++++++++++++++++++- 5 files changed, 232 insertions(+), 3 deletions(-) diff --git a/binutils/config.in b/binutils/config.in index 91fe00af777..8907a56fc15 100644 --- a/binutils/config.in +++ b/binutils/config.in @@ -94,6 +94,9 @@ /* Define to 1 if debuginfod is enabled. */ #undef HAVE_LIBDEBUGINFOD +/* Define to 1 if debuginfod section downloading is supported. */ +#undef HAVE_LIBDEBUGINFOD_FIND_SECTION + /* Define if mbstate_t exists in wchar.h. */ #undef HAVE_MBSTATE_T diff --git a/binutils/configure b/binutils/configure index 101671411a5..7806ff2a0b3 100755 --- a/binutils/configure +++ b/binutils/configure @@ -11809,7 +11809,13 @@ $as_echo "no" >&6; } fi fi -# Handle optional debuginfod support +# Handle optional debuginfod support as well as optional section +# downloading support. +# +# Define HAVE_LIBDEBUGINFOD if libdebuginfod is found with version >= 0.179. +# +# Define HAVE_LIBDEBUGINFOD_FIND_SECTION if libdebuginfod is found with +# version >= 0.188. # Check whether --with-debuginfod was given. if test "${with_debuginfod+set}" = set; then : @@ -11825,6 +11831,106 @@ $as_echo "$with_debuginfod" >&6; } if test "x$with_debuginfod" != xno; then +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libdebuginfod >= 0.188" >&5 +$as_echo_n "checking for libdebuginfod >= 0.188... " >&6; } + +if test -n "$DEBUGINFOD_CFLAGS"; then + pkg_cv_DEBUGINFOD_CFLAGS="$DEBUGINFOD_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libdebuginfod >= 0.188\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libdebuginfod >= 0.188") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_DEBUGINFOD_CFLAGS=`$PKG_CONFIG --cflags "libdebuginfod >= 0.188" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$DEBUGINFOD_LIBS"; then + pkg_cv_DEBUGINFOD_LIBS="$DEBUGINFOD_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libdebuginfod >= 0.188\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libdebuginfod >= 0.188") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_DEBUGINFOD_LIBS=`$PKG_CONFIG --libs "libdebuginfod >= 0.188" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + +if test $pkg_failed = no; then + pkg_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $pkg_cv_DEBUGINFOD_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + pkg_failed=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$pkg_save_LDFLAGS +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + DEBUGINFOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libdebuginfod >= 0.188" 2>&1` + else + DEBUGINFOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libdebuginfod >= 0.188" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$DEBUGINFOD_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libdebuginfod is missing or some features may be unavailable." >&5 +$as_echo "$as_me: WARNING: libdebuginfod is missing or some features may be unavailable." >&2;} +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libdebuginfod is missing or some features may be unavailable." >&5 +$as_echo "$as_me: WARNING: libdebuginfod is missing or some features may be unavailable." >&2;} +else + DEBUGINFOD_CFLAGS=$pkg_cv_DEBUGINFOD_CFLAGS + DEBUGINFOD_LIBS=$pkg_cv_DEBUGINFOD_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_LIBDEBUGINFOD_FIND_SECTION 1" >>confdefs.h + +fi + + pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libdebuginfod >= 0.179" >&5 $as_echo_n "checking for libdebuginfod >= 0.179... " >&6; } diff --git a/config/debuginfod.m4 b/config/debuginfod.m4 index 2c1bfbdb544..c5077acb4c3 100644 --- a/config/debuginfod.m4 +++ b/config/debuginfod.m4 @@ -7,7 +7,13 @@ dnl the same distribution terms as the rest of that program. AC_DEFUN([AC_DEBUGINFOD], [ -# Handle optional debuginfod support +# Handle optional debuginfod support as well as optional section +# downloading support. +# +# Define HAVE_LIBDEBUGINFOD if libdebuginfod is found with version >= 0.179. +# +# Define HAVE_LIBDEBUGINFOD_FIND_SECTION if libdebuginfod is found with +# version >= 0.188. AC_ARG_WITH([debuginfod], AC_HELP_STRING([--with-debuginfod], [Enable debuginfo lookups with debuginfod (auto/yes/no)]), [], [with_debuginfod=auto]) @@ -15,6 +21,11 @@ AC_MSG_CHECKING([whether to use debuginfod]) AC_MSG_RESULT([$with_debuginfod]) if test "x$with_debuginfod" != xno; then + PKG_CHECK_MODULES([DEBUGINFOD], [libdebuginfod >= 0.188], + [AC_DEFINE([HAVE_LIBDEBUGINFOD_FIND_SECTION], [1], + [Define to 1 if debuginfod section downloading is supported.])], + [AC_MSG_WARN([libdebuginfod is missing or some features may be unavailable.])]) + PKG_CHECK_MODULES([DEBUGINFOD], [libdebuginfod >= 0.179], [AC_DEFINE([HAVE_LIBDEBUGINFOD], [1], [Define to 1 if debuginfod is enabled.])], [if test "x$with_debuginfod" = xyes; then diff --git a/gdb/config.in b/gdb/config.in index bc562669d2c..f67d3029d82 100644 --- a/gdb/config.in +++ b/gdb/config.in @@ -244,6 +244,9 @@ /* Define to 1 if debuginfod is enabled. */ #undef HAVE_LIBDEBUGINFOD +/* Define to 1 if debuginfod section downloading is supported. */ +#undef HAVE_LIBDEBUGINFOD_FIND_SECTION + /* Define if you have the expat library. */ #undef HAVE_LIBEXPAT diff --git a/gdb/configure b/gdb/configure index ab1a299d860..2d07e0cb596 100755 --- a/gdb/configure +++ b/gdb/configure @@ -18405,7 +18405,13 @@ esac # Handle optional debuginfod support -# Handle optional debuginfod support +# Handle optional debuginfod support as well as optional section +# downloading support. +# +# Define HAVE_LIBDEBUGINFOD if libdebuginfod is found with version >= 0.179. +# +# Define HAVE_LIBDEBUGINFOD_FIND_SECTION if libdebuginfod is found with +# version >= 0.188. # Check whether --with-debuginfod was given. if test "${with_debuginfod+set}" = set; then : @@ -18421,6 +18427,106 @@ $as_echo "$with_debuginfod" >&6; } if test "x$with_debuginfod" != xno; then +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libdebuginfod >= 0.188" >&5 +$as_echo_n "checking for libdebuginfod >= 0.188... " >&6; } + +if test -n "$DEBUGINFOD_CFLAGS"; then + pkg_cv_DEBUGINFOD_CFLAGS="$DEBUGINFOD_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libdebuginfod >= 0.188\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libdebuginfod >= 0.188") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_DEBUGINFOD_CFLAGS=`$PKG_CONFIG --cflags "libdebuginfod >= 0.188" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$DEBUGINFOD_LIBS"; then + pkg_cv_DEBUGINFOD_LIBS="$DEBUGINFOD_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libdebuginfod >= 0.188\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libdebuginfod >= 0.188") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_DEBUGINFOD_LIBS=`$PKG_CONFIG --libs "libdebuginfod >= 0.188" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + +if test $pkg_failed = no; then + pkg_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $pkg_cv_DEBUGINFOD_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + pkg_failed=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$pkg_save_LDFLAGS +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + DEBUGINFOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libdebuginfod >= 0.188" 2>&1` + else + DEBUGINFOD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libdebuginfod >= 0.188" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$DEBUGINFOD_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libdebuginfod is missing or some features may be unavailable." >&5 +$as_echo "$as_me: WARNING: libdebuginfod is missing or some features may be unavailable." >&2;} +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libdebuginfod is missing or some features may be unavailable." >&5 +$as_echo "$as_me: WARNING: libdebuginfod is missing or some features may be unavailable." >&2;} +else + DEBUGINFOD_CFLAGS=$pkg_cv_DEBUGINFOD_CFLAGS + DEBUGINFOD_LIBS=$pkg_cv_DEBUGINFOD_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAVE_LIBDEBUGINFOD_FIND_SECTION 1" >>confdefs.h + +fi + + pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libdebuginfod >= 0.179" >&5 $as_echo_n "checking for libdebuginfod >= 0.179... " >&6; }