From owner-freebsd-gnome@FreeBSD.ORG Mon Apr 17 21:45:10 2006 Return-Path: X-Original-To: gnome@freebsd.org Delivered-To: freebsd-gnome@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5CC4C16A401 for ; Mon, 17 Apr 2006 21:45:10 +0000 (UTC) (envelope-from caelian@gmail.com) Received: from pproxy.gmail.com (pproxy.gmail.com [64.233.166.182]) by mx1.FreeBSD.org (Postfix) with ESMTP id DE09B43D45 for ; Mon, 17 Apr 2006 21:45:09 +0000 (GMT) (envelope-from caelian@gmail.com) Received: by pproxy.gmail.com with SMTP id t32so715998pyc for ; Mon, 17 Apr 2006 14:45:09 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type; b=awse7RB+bdFmtADAiwVitgDxOvLwEKQWIpOpJ42OFUOoqhU9zmclpgJ12dakwpgEYVhT6GKKQZYSBtFU9uPhVEGyTmeGCkYPRtvYLIYz2LQJ6OkNrqE3ZfBv0qEo9BLo6WqiE8xSiudiCRfHwTn94ArpH+fq0Y8+eAvwAPEkM0s= Received: by 10.35.105.18 with SMTP id h18mr1394968pym; Mon, 17 Apr 2006 14:45:09 -0700 (PDT) Received: by 10.35.45.11 with HTTP; Mon, 17 Apr 2006 14:45:09 -0700 (PDT) Message-ID: Date: Mon, 17 Apr 2006 14:45:09 -0700 From: "Pascal Hofstee" To: gnome@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: gnome-session [mc-gnome] on amd64 problems. X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Apr 2006 21:45:10 -0000 Hi, It looks like i stumbled across some pointer-truncation in the current MC-gnome gnome-session port on amd64. I'll try to outline the problem as i understand it below .. any assistence here would be appreciated. in ${WORKDIR}/gnome-session/gsm-xrandr.c there's a function called "gsm_set_display_properties" at line 134 the following call get's made: client =3D gsm_get_conf_client (); client is defined in the function definition as GConfClient *client; (this definition is inside an #ifdef HAVE_RANDR .. i have tried moving it outside the ifdef to no avail though). I have stepped through the gsm_get_conf_client() call in a gdb session .. and everything seems to be alright including the function's return call. Th= e function tries to return a valid 64-bit pointer. However .. immediately after the assignment has been done. client now point= s to a (truncated) 32-bit address. This obviously causes a problem whenever client is used to get any gconf data, which in turn causes gnome-session to segfault. My first guess is that somehow the storagesize/datatype for GConfClient is being obscured causing the compiler to default it to a 32bit integer, which would explain the sudden pointer truncation upon assignment. I currently do not have an actual backtrace available .. as i am not writin= g this on my FreeBSD system. If anybody has any idea why the pointer gets truncated to 32bit in this case, please enlighten me so i can try to test potential fixes. -- Pascal Hofstee