From owner-cvs-all@FreeBSD.ORG Thu Mar 27 14:13:26 2003 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 78BA337B404; Thu, 27 Mar 2003 14:13:26 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CA5A443FBF; Thu, 27 Mar 2003 14:13:25 -0800 (PST) (envelope-from mbr@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h2RMDP0U010228; Thu, 27 Mar 2003 14:13:25 -0800 (PST) (envelope-from mbr@repoman.freebsd.org) Received: (from mbr@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h2RMDP3w010214; Thu, 27 Mar 2003 14:13:25 -0800 (PST) Message-Id: <200303272213.h2RMDP3w010214@repoman.freebsd.org> From: Martin Blapp Date: Thu, 27 Mar 2003 14:13:25 -0800 (PST) To: ports-committers@FreeBSD.org, cvs-ports@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD X-Spam-Status: No, hits=0.0 required=5.0 tests=none version=2.50 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp) Subject: cvs commit: ports/editors/openoffice-devel/files patch-bridges+source+cpp_uno+gcc3_freebsd_intel X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Mar 2003 22:13:28 -0000 mbr 2003/03/27 14:13:25 PST FreeBSD ports repository Modified files: editors/openoffice-devel/files patch-bridges+source+cpp_uno+gcc3_freebsd_intel Log: Depending on how a compiler generates code (e.g., GCC 3.2.2 vs. GCC 3.0.1), a bug in the gcc3_linux_intel UNO bridge is revealed: If a C/C++ function returns a complex object (class, struct, union), the 386 ABI specifies that the caller pushes the address for that object on the stack, and the callee removes it from the stack. The code in the UNO bridge (callVirtualMethod in bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx) erroneously assumes that the callee does *not* remove the address from the stack, corrupting the stack. We use the same bridge code as linux does for gcc3.x. So this fix also works for us. Submitted by: Stephan Bergmann Revision Changes Path 1.3 +41 -0 ports/editors/openoffice-devel/files/patch-bridges+source+cpp_uno+gcc3_freebsd_intel