From owner-svn-src-head@FreeBSD.ORG Wed Jul 21 09:56:42 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 84A2A1065676; Wed, 21 Jul 2010 09:56:42 +0000 (UTC) (envelope-from kaiw@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5A9858FC0A; Wed, 21 Jul 2010 09:56:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o6L9ugbE081422; Wed, 21 Jul 2010 09:56:42 GMT (envelope-from kaiw@svn.freebsd.org) Received: (from kaiw@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o6L9ugTM081418; Wed, 21 Jul 2010 09:56:42 GMT (envelope-from kaiw@svn.freebsd.org) Message-Id: <201007210956.o6L9ugTM081418@svn.freebsd.org> From: Kai Wang Date: Wed, 21 Jul 2010 09:56:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r210332 - head/lib/libelf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jul 2010 09:56:42 -0000 Author: kaiw Date: Wed Jul 21 09:56:42 2010 New Revision: 210332 URL: http://svn.freebsd.org/changeset/base/210332 Log: Changes for supporting GNU Hash sections. Obtained from: elftoolchain MFC after: 1 month Modified: head/lib/libelf/libelf_align.c head/lib/libelf/libelf_fsize.m4 head/lib/libelf/libelf_msize.m4 Modified: head/lib/libelf/libelf_align.c ============================================================================== --- head/lib/libelf/libelf_align.c Wed Jul 21 09:51:24 2010 (r210331) +++ head/lib/libelf/libelf_align.c Wed Jul 21 09:56:42 2010 (r210332) @@ -51,6 +51,10 @@ struct align { .a32 = 0, \ .a64 = __alignof__(Elf64_##V) \ } +#define MALIGN_WORD() { \ + .a32 = __alignof__(int32_t), \ + .a64 = __alignof__(int64_t) \ + } #else #error Need the __alignof__ builtin. #endif @@ -92,7 +96,10 @@ static struct align malign[ELF_T_NUM] = [ELF_T_VNEED] = MALIGN(Verneed), #endif [ELF_T_WORD] = MALIGN(Word), - [ELF_T_XWORD] = MALIGN64(Xword) + [ELF_T_XWORD] = MALIGN64(Xword), +#if __FreeBSD_version >= 800062 + [ELF_T_GNUHASH] = MALIGN_WORD() +#endif }; int @@ -140,7 +147,10 @@ static struct align falign[ELF_T_NUM] = [ELF_T_VNEED] = FALIGN(4,4), #endif [ELF_T_WORD] = FALIGN(4,4), - [ELF_T_XWORD] = FALIGN(0,8) + [ELF_T_XWORD] = FALIGN(0,8), +#if __FreeBSD_version >= 800062 + [ELF_T_GNUHASH] = FALIGN(4,8) +#endif }; int Modified: head/lib/libelf/libelf_fsize.m4 ============================================================================== --- head/lib/libelf/libelf_fsize.m4 Wed Jul 21 09:51:24 2010 (r210331) +++ head/lib/libelf/libelf_fsize.m4 Wed Jul 21 09:56:42 2010 (r210332) @@ -45,6 +45,7 @@ include(SRCDIR`/elf_types.m4') /* `Basic' types */ define(`BYTE_SIZE', 1) +define(`GNUHASH_SIZE', 1) /* Elf_GNU_Hash_Header structures vary in length. */ define(`IDENT_SIZE', `EI_NIDENT') define(`NOTE_SIZE', 1) /* Elf_Note structures have variable length. */ Modified: head/lib/libelf/libelf_msize.m4 ============================================================================== --- head/lib/libelf/libelf_msize.m4 Wed Jul 21 09:51:24 2010 (r210331) +++ head/lib/libelf/libelf_msize.m4 Wed Jul 21 09:56:42 2010 (r210332) @@ -49,6 +49,7 @@ divert(-1) include(SRCDIR`/elf_types.m4') define(BYTE_SIZE, 1) +define(GNUHASH_SIZE, 1) define(NOTE_SIZE, 1) /*