From owner-svn-ports-all@freebsd.org Mon Jun 1 23:20:09 2020 Return-Path: Delivered-To: svn-ports-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2E1192F5871; Mon, 1 Jun 2020 23:20:09 +0000 (UTC) (envelope-from adridg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 49bWNn0Vkbz44NV; Mon, 1 Jun 2020 23:20:09 +0000 (UTC) (envelope-from adridg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0817A130AB; Mon, 1 Jun 2020 23:20:09 +0000 (UTC) (envelope-from adridg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 051NK85u053245; Mon, 1 Jun 2020 23:20:08 GMT (envelope-from adridg@FreeBSD.org) Received: (from adridg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 051NK8rY053244; Mon, 1 Jun 2020 23:20:08 GMT (envelope-from adridg@FreeBSD.org) Message-Id: <202006012320.051NK8rY053244@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: adridg set sender to adridg@FreeBSD.org using -f From: Adriaan de Groot Date: Mon, 1 Jun 2020 23:20:08 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r537511 - in head/devel/heaptrack: . files X-SVN-Group: ports-head X-SVN-Commit-Author: adridg X-SVN-Commit-Paths: in head/devel/heaptrack: . files X-SVN-Commit-Revision: 537511 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Jun 2020 23:20:09 -0000 Author: adridg Date: Mon Jun 1 23:20:08 2020 New Revision: 537511 URL: https://svnweb.freebsd.org/changeset/ports/537511 Log: devel/heaptrack Try to fix 32-bit build I don't see that this can ever have built on 32-bit FreeBSD (i386 in particular) because the code uses Sxword, which our elf32.h doesn't define. The Linux elf.h (which hanbles both sizes) does define a 64-bit Sxword. The patch throws in a using (typedef, but C++-style) that mimics the 64-bit integers used in the Linux headers; this 64-bit value doesn't match the size of Elf32_Dyn fields in either OS, but I'll take a warning over non-stop build failures any day. Added: head/devel/heaptrack/files/ head/devel/heaptrack/files/patch-src_track_heaptrack__inject.cpp (contents, props changed) Modified: head/devel/heaptrack/Makefile Modified: head/devel/heaptrack/Makefile ============================================================================== --- head/devel/heaptrack/Makefile Mon Jun 1 22:03:23 2020 (r537510) +++ head/devel/heaptrack/Makefile Mon Jun 1 23:20:08 2020 (r537511) @@ -4,6 +4,7 @@ PORTNAME= heaptrack DISTVERSIONPREFIX= v DISTVERSION= 1.1.0-179 DISTVERSIONSUFFIX= -gb0f8f2d +PORTREVISION= 1 CATEGORIES= devel kde MAINTAINER= kde@FreeBSD.org Added: head/devel/heaptrack/files/patch-src_track_heaptrack__inject.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/heaptrack/files/patch-src_track_heaptrack__inject.cpp Mon Jun 1 23:20:08 2020 (r537511) @@ -0,0 +1,21 @@ +--- src/track/heaptrack_inject.cpp.orig 2020-06-01 22:47:27 UTC ++++ src/track/heaptrack_inject.cpp +@@ -66,8 +66,18 @@ using Dyn = ElfW(Dyn); + using Rel = ElfW(Rel); + using Rela = ElfW(Rela); + using Sym = ElfW(Sym); ++#if __WORDSIZE == 64 + using Sxword = ElfW(Sxword); + using Xword = ElfW(Xword); ++#else ++// FreeBSD elf32.h doesn't define Elf32_Sxword or _Xword. This is used in struct ++// elftable, where it's used as a tag value. Our Elf32_Dyn uses Elf32_Sword there, ++// as does the Linux definition (and the standard); the El64_Dyn uses Sxword. ++// ++// Linux elf.h defines Elf32_Sxword as a 64-bit quantity, so let's do that ++using Sxword = int64_t; ++using Xword = uint64_t; ++#endif + } + + void overwrite_symbols() noexcept;