From owner-cvs-all@FreeBSD.ORG Sun Jan 27 21:37:57 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0BB8716A420; Sun, 27 Jan 2008 21:37:57 +0000 (UTC) (envelope-from db@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F1D0D13C44B; Sun, 27 Jan 2008 21:37:56 +0000 (UTC) (envelope-from db@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m0RLbup2053300; Sun, 27 Jan 2008 21:37:56 GMT (envelope-from db@repoman.freebsd.org) Received: (from db@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m0RLbuhv053299; Sun, 27 Jan 2008 21:37:56 GMT (envelope-from db) Message-Id: <200801272137.m0RLbuhv053299@repoman.freebsd.org> From: Diane Bruce Date: Sun, 27 Jan 2008 21:37:56 +0000 (UTC) To: ports-committers@FreeBSD.org, cvs-ports@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: ports/devel/sdl12/files patch-include_SDL_stdinc.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 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: Sun, 27 Jan 2008 21:37:57 -0000 db 2008-01-27 21:37:56 UTC FreeBSD ports repository Added files: devel/sdl12/files patch-include_SDL_stdinc.h Log: - The x86 inline assembler version of the SDL macro SDL_revcpy() sets the direction flag ("std"), but does not clear it ("cld"). This is invalid according to GCC (inline assembler, which sets the direction flag, must reset it[0]) and the SYS V ABI (functions must leave with the direction flag cleared[1]). The macro is (indirectly, exact call sequence below) used in SDL_BlitSurface(), so this call sometimes returns with the direction flag set. This happens for bliting a surface onto itself with the destination coordinates set right/down of the source coordinates (typical use of this is scrolling left/up). Later on other parts of the code (like inlined memcpy()) cause memory corruption. [1] - Give maintaintership to submitter (as discussed on irc) PR: ports/120052 [1] Revision Changes Path 1.1 +10 -0 ports/devel/sdl12/files/patch-include_SDL_stdinc.h (new)