From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id UaWMKNyPy2rl/zEAWB0awg (envelope-from ) for ; Sun, 11 Oct 2026 09:32:12 -0400 Received: by simark.ca (Postfix, from userid 112) id A13121E051; Sun, 11 Oct 2026 09:32:12 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 05CF21E04E for ; Sun, 11 Oct 2026 09:32:12 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 168134BA2E36 for ; Sun, 11 Oct 2026 13:32:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 168134BA2E36 Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 6D15B4BA2E29 for ; Sun, 11 Oct 2026 13:31:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6D15B4BA2E29 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6D15B4BA2E29 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=158.69.221.121 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1791725500; cv=none; b=NivD2KSPsM1nDR5D3W+ccklM8uUIqqwagqa4IDOA9OaXkX5umF5o+oLPRvawdBIdjNslZedVq+ObK31AancD5BqPZmM2cXgGlf9wL9PMU7Gylp0cKTas4ALLcm6c5njS+w+g6LL4ukdcc3z2oyxU2tIJqm6Jm2wP0S4LfJTiikM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1791725500; c=relaxed/simple; bh=4kL8+tEStjl10z+MiMDY8OvdT3IFVdKbiBNzuEvUMUQ=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=KHX7MmFcSYdO3POYkah4aQ+tyZkyZaHDMnRGxORlhsLdZTUq0xmN9B/hL5atBgW8UfThsfI7kcQTQWGcSXJjqnfm6LhCJUpFdPhs3y4GOvD73Assav6Q/gVErjSnYowT8kTuKgIOJe1IBOwVBWElSVapIRdUsXvx3iONKpnGxnM= ARC-Authentication-Results: i=1; sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6D15B4BA2E29 Received: by simark.ca (Postfix) id EE8581E04E; Sun, 11 Oct 2026 09:31:37 -0400 (EDT) From: Simon Marchi To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH 1/2] gdb: use XML_GetCurrentLineNumber64 with expat >= 2.9.0 Date: Sun, 11 Oct 2026 09:31:13 -0400 Message-ID: <20261011133136.472634-1-simon.marchi@efficios.com> X-Mailer: git-send-email 2.56.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org When building against expat 2.9.0, I get: CXX xml-support.o /home/smarchi/src/binutils-gdb/gdb/xml-support.c:182:39: error: 'XML_Size XML_GetCurrentLineNumber(XML_Parser)' is deprecated: please use XML_GetCurrentLineNumber64 instead [-Werror=deprecated-declarations] 182 | int line = XML_GetCurrentLineNumber (m_expat_parser); | ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~ The functions that return XML_Size were deprecated in favor of the new functions, with suffix 64, that return uint64_t. Add a gdb_xml_get_current_line_number wrapper in gdb_expat.h, which calls XML_GetCurrentLineNumber64 with expat 2.9.0 and later, and XML_GetCurrentLineNumber otherwise. Use it in xml-support.c. The uint64_t gets truncated when converted to int, but that was already true before, as XML_Size is 64-bits when building on an arch where unsigned long is 64-bits. Change-Id: I31a0657702cf45d9d7572276d5c8cc37aed41f79 --- gdb/gdb_expat.h | 16 ++++++++++++++++ gdb/xml-support.c | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/gdb/gdb_expat.h b/gdb/gdb_expat.h index 1feac7f764c0..756cf81be95c 100644 --- a/gdb/gdb_expat.h +++ b/gdb/gdb_expat.h @@ -35,4 +35,20 @@ #define XMLCALL #endif +/* Return the line number of PARSER's current position. + + Expat 2.9.0 deprecates XML_GetCurrentLineNumber in favor of + XML_GetCurrentLineNumber64. */ + +static inline std::uint64_t +gdb_xml_get_current_line_number (XML_Parser parser) +{ +#if (XML_MAJOR_VERSION > 2 \ + || (XML_MAJOR_VERSION == 2 && XML_MINOR_VERSION >= 9)) + return XML_GetCurrentLineNumber64 (parser); +#else + return XML_GetCurrentLineNumber (parser); +#endif +} + #endif /* GDB_GDB_EXPAT_H */ diff --git a/gdb/xml-support.c b/gdb/xml-support.c index d806b53c9fa2..7d86dbb8c698 100644 --- a/gdb/xml-support.c +++ b/gdb/xml-support.c @@ -179,7 +179,7 @@ gdb_xml_body_text (void *data, const XML_Char *text, int length) void gdb_xml_parser::vdebug (const char *format, va_list ap) { - int line = XML_GetCurrentLineNumber (m_expat_parser); + int line = gdb_xml_get_current_line_number (m_expat_parser); std::string message = string_vprintf (format, ap); if (line) @@ -208,7 +208,7 @@ gdb_xml_debug (struct gdb_xml_parser *parser, const char *format, ...) void gdb_xml_parser::verror (const char *format, va_list ap) { - int line = XML_GetCurrentLineNumber (m_expat_parser); + int line = gdb_xml_get_current_line_number (m_expat_parser); m_last_line = line; throw_verror (XML_PARSE_ERROR, format, ap); base-commit: 0aeb555307247b71116fd063f436d9311aadfbe0 -- 2.56.0