From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 1919D385C426 for ; Wed, 16 Aug 2023 04:43:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1919D385C426 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1692161004; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7AMDeLLTbY5Tn7yD/sAFuxg5mU6Uc3fQPhmfefRW1C4=; b=cizjyl5HnM8QtZspKQ3f2xwoAKQ0aLgyyLCRxmM722TWHUWarCBZ7qik2Y9nVRJxAGYb+A PN+jNIrAnzMWATMo+lMDMsdzAkCaKPKBeX4SZYd6thQ+YkyAQH5BJPSNPkmgygoF8IqXST hvFes27zckNQ6z0uH8EPtqoUw14umDc= 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) From: Aaron Merey 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 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true 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=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: 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; } -- 2.41.0