From owner-p4-projects@FreeBSD.ORG Sat Apr 15 02:30:46 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3002A16A405; Sat, 15 Apr 2006 02:30:46 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E8BEB16A402 for ; Sat, 15 Apr 2006 02:30:45 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 985ED43D45 for ; Sat, 15 Apr 2006 02:30:45 +0000 (GMT) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k3F2Ujfp012509 for ; Sat, 15 Apr 2006 02:30:45 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k3F2UjTC012503 for perforce@freebsd.org; Sat, 15 Apr 2006 02:30:45 GMT (envelope-from jb@freebsd.org) Date: Sat, 15 Apr 2006 02:30:45 GMT Message-Id: <200604150230.k3F2UjTC012503@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 95300 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Apr 2006 02:30:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=95300 Change 95300 by jb@jb_freebsd2 on 2006/04/15 02:30:23 Create weak references the FreeBSD way. It looks like gcc on FreeBSD silently ignores #pragma weak. Affected files ... .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/begin.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/cntl.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/end.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/error.c#3 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/fill.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/flag.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getarhdr.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getarsym.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getbase.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getdata.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getehdr.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getident.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getphdr.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getscn.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getshdr.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/hash.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/kind.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/ndxscn.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/newdata.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/newphdr.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/newscn.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/next.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/nextscn.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/rand.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/rawdata.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/rawfile.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/strptr.c#2 edit .. //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/xlate.m4#2 edit Differences ... ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/begin.c#2 (text) ==== @@ -32,8 +32,14 @@ #pragma ident "@(#)begin.c 1.17 05/06/08 SMI" /* SVr4.0 1.13 */ +#if defined(sun) #pragma weak elf_begin = _elf_begin #pragma weak elf_memory = _elf_memory +#else +#include +__weak_reference(_elf_begin,elf_begin); +__weak_reference(_elf_memory,elf_memory); +#endif #include "syn.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/cntl.c#2 (text) ==== @@ -30,8 +30,12 @@ #pragma ident "@(#)cntl.c 1.10 05/06/08 SMI" /* SVr4.0 1.4 */ +#if defined(sun) #pragma weak elf_cntl = _elf_cntl - +#else +#include +__weak_reference(_elf_cntl,elf_cntl); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/end.c#2 (text) ==== @@ -31,8 +31,12 @@ #pragma ident "@(#)end.c 1.11 05/06/08 SMI" /* SVr4.0 1.11 */ +#if defined(sun) #pragma weak elf_end = _elf_end - +#else +#include +__weak_reference(_elf_end,elf_end); +#endif #include "syn.h" #include ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/error.c#3 (text) ==== @@ -27,8 +27,14 @@ #pragma ident "@(#)error.c 1.20 05/06/08 SMI" /* SVr4.0 1.16 */ +#if defined(sun) #pragma weak elf_errmsg = _elf_errmsg #pragma weak elf_errno = _elf_errno +#else +#include +__weak_reference(_elf_errmsg,elf_errmsg); +__weak_reference(_elf_errno,elf_errno); +#endif #include "syn.h" #if defined(sun) @@ -64,13 +70,18 @@ NOTE(DATA_READABLE_WITHOUT_LOCK(bufonce)) +#if defined(sun) extern char *_dgettext(const char *, const char *); - +#endif const char * _libelf_msg(Msg mid) { +#ifdef DOODAD return (_dgettext(MSG_ORIG(MSG_SUNW_OST_SGS), MSG_ORIG(mid))); +#else +return NULL; +#endif } @@ -110,7 +121,12 @@ if (keyonce == 0) return (0); +#if defined(sun) (void) thr_getspecific(errkey, (void **)(&rc)); +#else + rc = (intptr_t) pthread_getspecific(errkey); +#endif + return ((int)rc); } @@ -154,7 +170,11 @@ (void) mutex_unlock(&buflock); } +#if defined(sun) (void) thr_getspecific(bufkey, (void **)&buffer); +#else + buffer = (char *) pthread_getspecific(bufkey); +#endif if (!buffer) { if ((buffer = malloc(MAXELFERR)) == 0) ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/fill.c#2 (text) ==== @@ -30,7 +30,12 @@ #pragma ident "@(#)fill.c 1.10 05/06/08 SMI" /* SVr4.0 1.2 */ +#if defined(sun) #pragma weak elf_fill = _elf_fill +#else +#include +__weak_reference(_elf_fill,elf_fill); +#endif #include #include "syn.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/flag.c#2 (text) ==== @@ -30,13 +30,22 @@ #pragma ident "@(#)flag.c 1.10 05/06/08 SMI" /* SVr4.0 1.6 */ +#if defined(sun) #pragma weak elf_flagdata = _elf_flagdata #pragma weak elf_flagehdr = _elf_flagehdr #pragma weak elf_flagelf = _elf_flagelf #pragma weak elf_flagphdr = _elf_flagphdr #pragma weak elf_flagscn = _elf_flagscn #pragma weak elf_flagshdr = _elf_flagshdr - +#else +#include +__weak_reference(_elf_flagdata,elf_flagdata); +__weak_reference(_elf_flagehdr,elf_flagehdr); +__weak_reference(_elf_flagelf,elf_flagelf); +__weak_reference(_elf_flagphdr,elf_flagphdr); +__weak_reference(_elf_flagscn,elf_flagscn); +__weak_reference(_elf_flagshdr,elf_flagshdr); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getarhdr.c#2 (text) ==== @@ -30,8 +30,12 @@ #pragma ident "@(#)getarhdr.c 1.12 05/06/08 SMI" /* SVr4.0 1.7 */ +#if defined(sun) #pragma weak elf_getarhdr = _elf_getarhdr - +#else +#include +__weak_reference(_elf_getarhdr,elf_getarhdr); +#endif #include #include "syn.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getarsym.c#2 (text) ==== @@ -31,8 +31,12 @@ #pragma ident "@(#)getarsym.c 1.14 05/06/08 SMI" /* SVr4.0 1.6 */ +#if defined(sun) #pragma weak elf_getarsym = _elf_getarsym - +#else +#include +__weak_reference(_elf_getarsym,elf_getarsym); +#endif #include "syn.h" #include ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getbase.c#2 (text) ==== @@ -30,8 +30,12 @@ #pragma ident "@(#)getbase.c 1.9 05/06/08 SMI" /* SVr4.0 1.6 */ +#if defined(sun) #pragma weak elf_getbase = _elf_getbase - +#else +#include +__weak_reference(_elf_getbase,elf_getbase); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getdata.c#2 (text) ==== @@ -31,8 +31,12 @@ #pragma ident "@(#)getdata.c 1.22 06/03/03 SMI" /* SVr4.0 1.16 */ +#if defined(sun) #pragma weak elf_getdata = _elf_getdata - +#else +#include +__weak_reference(_elf_getdata,elf_getdata); +#endif #include "syn.h" #include ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getehdr.c#2 (text) ==== @@ -32,8 +32,12 @@ #pragma ident "@(#)getehdr.c 1.11 05/06/08 SMI" /* SVr4.0 1.8 */ +#if defined(sun) #pragma weak elf32_getehdr = _elf32_getehdr - +#else +#include +__weak_reference(_elf32_getehdr,elf32_getehdr); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getident.c#2 (text) ==== @@ -29,8 +29,12 @@ #pragma ident "@(#)getident.c 1.9 05/06/08 SMI" /* SVr4.0 1.8 */ +#if defined(sun) #pragma weak elf_getident = _elf_getident - +#else +#include +__weak_reference(_elf_getident,elf_getident); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getphdr.c#2 (text) ==== @@ -31,8 +31,12 @@ #pragma ident "@(#)getphdr.c 1.11 05/06/08 SMI" /* SVr4.0 1.10 */ +#if defined(sun) #pragma weak elf32_getphdr = _elf32_getphdr - +#else +#include +__weak_reference(_elf32_getphdr,elf32_getphdr); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getscn.c#2 (text) ==== @@ -29,8 +29,12 @@ #pragma ident "@(#)getscn.c 1.10 05/06/08 SMI" /* SVr4.0 1.10 */ +#if defined(sun) #pragma weak elf_getscn = _elf_getscn - +#else +#include +__weak_reference(_elf_getscn,elf_getscn); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/getshdr.c#2 (text) ==== @@ -29,7 +29,12 @@ #pragma ident "@(#)getshdr.c 1.12 05/06/08 SMI" /* SVr4.0 1.4 */ +#if defined(sun) #pragma weak elf32_getshdr = _elf32_getshdr +#else +#include +__weak_reference(_elf32_getshdr,elf32_getshdr); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/hash.c#2 (text) ==== @@ -30,8 +30,12 @@ #pragma ident "@(#)hash.c 1.10 05/06/08 SMI" /* SVr4.0 1.4 */ +#if defined(sun) #pragma weak elf_hash = _elf_hash - +#else +#include +__weak_reference(_elf_hash,elf_hash); +#endif #include "syn.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/kind.c#2 (text) ==== @@ -30,8 +30,12 @@ #pragma ident "@(#)kind.c 1.9 05/06/08 SMI" /* SVr4.0 1.4 */ +#if defined(sun) #pragma weak elf_kind = _elf_kind - +#else +#include +__weak_reference(_elf_kind,elf_kind); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/ndxscn.c#2 (text) ==== @@ -31,8 +31,12 @@ #pragma ident "@(#)ndxscn.c 1.9 05/06/08 SMI" /* SVr4.0 1.2 */ +#if defined(sun) #pragma weak elf_ndxscn = _elf_ndxscn - +#else +#include +__weak_reference(_elf_ndxscn,elf_ndxscn); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/newdata.c#2 (text) ==== @@ -31,8 +31,12 @@ #pragma ident "@(#)newdata.c 1.12 05/06/08 SMI" /* SVr4.0 1.2 */ +#if defined(sun) #pragma weak elf_newdata = _elf_newdata - +#else +#include +__weak_reference(_elf_newdata,elf_newdata); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/newphdr.c#2 (text) ==== @@ -30,9 +30,14 @@ #pragma ident "@(#)newphdr.c 1.17 05/06/08 SMI" +#if defined(sun) #if !defined(_ELF64) #pragma weak elf32_newphdr = _elf32_newphdr #endif +#else +#include +__weak_reference(_elf32_newphdr,elf32_newphdr); +#endif #include "syn.h" #include ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/newscn.c#2 (text) ==== @@ -30,8 +30,12 @@ #pragma ident "@(#)newscn.c 1.12 05/06/08 SMI" /* SVr4.0 1.4 */ +#if defined(sun) #pragma weak elf_newscn = _elf_newscn - +#else +#include +__weak_reference(_elf_newscn,elf_newscn); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/next.c#2 (text) ==== @@ -30,8 +30,12 @@ #pragma ident "@(#)next.c 1.9 05/06/08 SMI" /* SVr4.0 1.5 */ +#if defined(sun) #pragma weak elf_next = _elf_next - +#else +#include +__weak_reference(_elf_next,elf_next); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/nextscn.c#2 (text) ==== @@ -31,7 +31,12 @@ #pragma ident "@(#)nextscn.c 1.9 05/06/08 SMI" /* SVr4.0 1.2 */ +#if defined(sun) #pragma weak elf_nextscn = _elf_nextscn +#else +#include +__weak_reference(_elf_nextscn,elf_nextscn); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/rand.c#2 (text) ==== @@ -30,8 +30,12 @@ #pragma ident "@(#)rand.c 1.10 05/06/08 SMI" /* SVr4.0 1.2 */ +#if defined(sun) #pragma weak elf_rand = _elf_rand - +#else +#include +__weak_reference(_elf_rand,elf_rand); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/rawdata.c#2 (text) ==== @@ -31,8 +31,12 @@ #pragma ident "@(#)rawdata.c 1.12 05/06/08 SMI" /* SVr4.0 1.3 */ +#if defined(sun) #pragma weak elf_rawdata = _elf_rawdata - +#else +#include +__weak_reference(_elf_rawdata,elf_rawdata); +#endif #include "syn.h" #include ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/rawfile.c#2 (text) ==== @@ -31,8 +31,12 @@ #pragma ident "@(#)rawfile.c 1.9 05/06/08 SMI" /* SVr4.0 1.4 */ +#if defined(sun) #pragma weak elf_rawfile = _elf_rawfile - +#else +#include +__weak_reference(_elf_rawfile,elf_rawfile); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/strptr.c#2 (text) ==== @@ -30,8 +30,12 @@ #pragma ident "@(#)strptr.c 1.11 05/06/08 SMI" /* SVr4.0 1.6 */ +#if defined(sun) #pragma weak elf_strptr = _elf_strptr - +#else +#include +__weak_reference(_elf_strptr,elf_strptr); +#endif #include "syn.h" #include "libelf.h" ==== //depot/projects/dtrace/src/contrib/opensolaris/cmd/sgs/libelf/common/xlate.m4#2 (text) ==== @@ -26,10 +26,18 @@ #pragma ident "@(#)xlate.m4 1.27 06/03/07 SMI" +#if defined(sun) #pragma weak elf32_fsize = _elf32_fsize #pragma weak elf_version = _elf_version #pragma weak elf32_xlatetof = _elf32_xlatetof #pragma weak elf32_xlatetom = _elf32_xlatetom +#else +#include +__weak_reference(_elf32_fsize,elf32_fsize); +__weak_reference(_elf_version,elf_version); +__weak_reference(_elf32_xlatetof,elf32_xlatetof); +__weak_reference(_elf32_xlatetom,elf32_xlatetom); +#endif #include "syn.h" #include