From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 15E693858C53; Tue, 18 Apr 2023 00:05:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 15E693858C53 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1681776337; bh=cNWBHvdK+ziDN5+9wq4Gvgnfv5BDdF0VJx+ihw7Z21U=; h=From:To:Subject:Date:In-Reply-To:References:From; b=JQFMCv3+nDda121I6bS6JyA63OGvkbfIcgsFcI8gZYCxf68bu0aAtqE+koSWteZlL sXiRGL6Uf0qsTk5YrVJzzJOc+Rc9C8/ccbCbRXlXKLlgnHwuVMWOiRF9p2XNGXdLai 8xGvlryi1xFtKqPVbhkmcCb0mXRtTvHRXeNCBME0= From: "woodard at redhat dot com" To: libabigail@sourceware.org Subject: [Bug default/30363] Location of return type not tracked in ABI model. Date: Tue, 18 Apr 2023 00:05:36 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: libabigail X-Bugzilla-Component: default X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: woodard at redhat dot com X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: dodji at redhat dot com X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://sourceware.org/bugzilla/show_bug.cgi?id=3D30363 --- Comment #1 from Ben Woodard --- I know one of the founding principles of libabigail is that it assumes the compiler implements the calling convention correctly. I do not think that t= his is entirely sufficient. I think that there are several cases where we should also verify parameter and return type locations. 1) Compiler bugs such as this one 2) Compilation options, for example if the same library with the same defin= ed types were compiled without SSE support then the compiler may choose a different version of the calling convention which passed the vector array t= ype by pointer reference rather than as a value in a vector register. This one = is really subtle and may be the source of several problems that we have here in HPC. 3) Inter compiler variation, there are subtle cases where differences in the interpretation of the calling convention could lead to differences in the allocation of registers and stack. In theory, this should not happen but it actually does and this has been a problem that has led to the entire HPC community creating vertical software stacks with every compiler. Therefore, I believe that we need to include the location of the parameters= and the return value in our ABI model to catch these problems. --=20 You are receiving this mail because: You are on the CC list for the bug.=