From patchwork Mon Apr 28 11:03:49 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ondrej Bilka X-Patchwork-Id: 721 Return-Path: X-Original-To: siddhesh@wilcox.dreamhost.com Delivered-To: siddhesh@wilcox.dreamhost.com Received: from homiemail-mx22.g.dreamhost.com (mx2.sub5.homie.mail.dreamhost.com [208.113.200.128]) by wilcox.dreamhost.com (Postfix) with ESMTP id 14AAF360075 for ; Mon, 28 Apr 2014 04:03:59 -0700 (PDT) Received: by homiemail-mx22.g.dreamhost.com (Postfix, from userid 14307373) id B1B564C9FEA0; Mon, 28 Apr 2014 04:03:58 -0700 (PDT) X-Original-To: glibc@patchwork.siddhesh.in Delivered-To: x14307373@homiemail-mx22.g.dreamhost.com Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by homiemail-mx22.g.dreamhost.com (Postfix) with ESMTPS id 4BA0A4C8990D for ; Mon, 28 Apr 2014 04:03:58 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:cc:subject:message-id:references :mime-version:content-type:in-reply-to; q=dns; s=default; b=Be7k en1xxoGxNmlb5Oxz0ryy6Vkg+RR/rQF1Gs7K4o37/CpTg+UmyTK8AP3O5uD874E2 ZXdKN33GGTSAZfP7zT6cAvld8ZS6KxHOjQFDEzZMIX6tDvBAGVltdymJcrAfdtge DjRhnYb0zBAneu8y2hCfLrG6wvEsrDP3TvnTXb0= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:cc:subject:message-id:references :mime-version:content-type:in-reply-to; s=default; bh=Wv2EjGlPtW 41rUj2c9y4SaonVmI=; b=JLLqJ9S2ryFw6igAmT7tlljhi8DrNmb2XJfjOo9OCD rKhmsPDAqgN/sxPlNbp7zb1i5SI63olFuebgiWokW7gubWrD/EjHZ77OjPk+uEgY AmpbP0fNNm5E5xfrn4BAtfyU4bi6eTQzqEKEOhE9dXUZUTAd7BXjEamUJh/yGiXK g= Received: (qmail 11893 invoked by alias); 28 Apr 2014 11:03:56 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 11879 invoked by uid 89); 28 Apr 2014 11:03:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.6 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, SPF_NEUTRAL autolearn=no version=3.3.2 X-HELO: popelka.ms.mff.cuni.cz Date: Mon, 28 Apr 2014 13:03:49 +0200 From: =?utf-8?B?T25kxZllaiBCw61sa2E=?= To: Roland McGrath Cc: libc-alpha@sourceware.org Subject: Re: [PATCH v1.2] Deprecate malloc_(sg)et state. Message-ID: <20140428110349.GA23227@domone.podge> References: <20140304123542.GA12375@domone.podge> <20140314170541.EF58A74495@topped-with-meat.com> <20140324092658.GA3973@domone.podge> <20140324221550.649EA74484@topped-with-meat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20140324221550.649EA74484@topped-with-meat.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-DH-Original-To: glibc@patchwork.siddhesh.in On Mon, Mar 24, 2014 at 03:15:50PM -0700, Roland McGrath wrote: > > As I want to move forward with this patch I deleted this testcase and > > when plumbing will be available I will restore it from git history. Is > > that ok? > > Nope. We're not going to reduce our test coverage for some unknown period > waiting for work that nobody has volunteered to do. If deprecating this > interface is a priority for you, then make the ability to test deprecated > interfaces a priority for you or someone. Here is new version. I simply used dlvsym to get these symbols. * malloc/malloc.c: Make malloc_get_state and malloc_set_state compatibility symbols. * malloc/hooks.c: Likewise. * malloc/tst-mallocstate.c (main): Use dynamic loader to get malloc_get_state and malloc_set_state symbols. * malloc/Makefile: Link tst-mallocstate with libdl. diff --git a/malloc/Makefile b/malloc/Makefile index 2871726..00d0e2c 100644 --- a/malloc/Makefile +++ b/malloc/Makefile @@ -149,6 +149,7 @@ $(objpfx)memusage: memusage.sh # The implementation uses `dlsym' $(objpfx)libmemusage.so: $(common-objpfx)dlfcn/libdl.so +$(objpfx)tst-mallocstate: $(common-objpfx)dlfcn/libdl.so # Extra dependencies $(foreach o,$(all-object-suffixes),$(objpfx)malloc$(o)): arena.c hooks.c diff --git a/malloc/hooks.c b/malloc/hooks.c index 00ee6be..442983e 100644 --- a/malloc/hooks.c +++ b/malloc/hooks.c @@ -474,6 +474,8 @@ struct malloc_save_state unsigned long narenas; }; +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_20) + void * __malloc_get_state (void) { @@ -644,6 +646,7 @@ __malloc_set_state (void *msptr) (void) mutex_unlock (&main_arena.mutex); return 0; } +#endif /* * Local variables: diff --git a/malloc/malloc.c b/malloc/malloc.c index 1120d4d..575a241 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -5181,9 +5181,16 @@ strong_alias (__libc_mallopt, __mallopt) weak_alias (__libc_mallopt, mallopt) weak_alias (__malloc_stats, malloc_stats) weak_alias (__malloc_usable_size, malloc_usable_size) weak_alias (__malloc_trim, malloc_trim) + +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_20) + weak_alias (__malloc_get_state, malloc_get_state) weak_alias (__malloc_set_state, malloc_set_state) +compat_symbol (libc, malloc_get_state, malloc_get_state, GLIBC_2_0); +compat_symbol (libc, malloc_set_state, malloc_set_state, GLIBC_2_0); + +#endif /* ------------------------------------------------------------ History: diff --git a/malloc/tst-mallocstate.c b/malloc/tst-mallocstate.c index 69c4500..247bd22 100644 --- a/malloc/tst-mallocstate.c +++ b/malloc/tst-mallocstate.c @@ -16,6 +16,8 @@ License along with the GNU C Library; if not, see . */ +#define _GNU_SOURCE +#include #include #include #include "malloc.h" @@ -36,6 +38,12 @@ main (void) void *save_state; long i; + void *(*malloc_get_state)(); + void *(*malloc_set_state)(void ()); + + malloc_get_state = dlvsym (RTLD_NEXT, "malloc_get_state", "GLIBC_2.2.5"); + malloc_set_state = dlvsym (RTLD_NEXT, "malloc_set_state", "GLIBC_2.2.5"); + errno = 0; p1 = malloc (10);