From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19730 invoked by alias); 8 Oct 2003 21:00:39 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 19723 invoked from network); 8 Oct 2003 21:00:38 -0000 Received: from unknown (HELO localhost.redhat.com) (207.219.125.105) by sources.redhat.com with SMTP; 8 Oct 2003 21:00:38 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 101C92B89; Wed, 8 Oct 2003 17:00:37 -0400 (EDT) Message-ID: <3F847AF4.8090409@redhat.com> Date: Wed, 08 Oct 2003 21:00:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.2) Gecko/20030820 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Roland McGrath , Elena Zannoni Cc: gdb-patches@sources.redhat.com Subject: Re: unwind support for Linux 2.6 vsyscall DSO References: <200310070428.h974SDFm019376@magilla.sf.frob.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-10/txt/msg00265.txt.bz2 >> - unpack an architecture's auxv >> - pack an architecture's auxv > > > This in fact differs with byte order and word size, not further by target. > So a generic utility function suffices for this. If the responsibility for > packing and unpacking is in each target, they should all be able to use the > same utility function and stay about as simple as the block-reading target > code. If the responsibility for unpacking lies with the caller of the > target function, then the single utility function suffices for all callers > (since then there is never a need for packing, only unpacking). Unfortunatly, things aren't so simple :-( Solaris: #define AT_DCACHEBSIZE 10 /* smallest data cache block size */ #define AT_ICACHEBSIZE 11 /* smallest instruction cache block size */ #define AT_UCACHEBSIZE 12 /* smallest unified cache block size */ ... GNU/Linux: #define AT_NOTELF 10 /* program is not ELF */ #define AT_UID 11 /* real uid */ #define AT_EUID 12 /* effective uid */ ... As with signals, the attribute indexes are per-os (and potentially per ISA). So core code will need to define an OS independant set of enums and then map that onto the real numbers. If I understand things correctly, the two driving needs are: - being able to extract the value of AT_ENTRY, and AT_LINUX_ - being able to obtain the entire AUXV so that it can be saved in a core file Would a per-os (technically per-architecture) SVR4 auxv lookup method that was implement using a fixed to_query() work? Andrew