[{"id":1778071,"web_url":"http://patchwork.ozlabs.org/comment/1778071/","msgid":"<CAMe9rOoWriagSdxNaKXW+mCuWAxYJW=E7=uRChi=iURSfnG_iQ@mail.gmail.com>","list_archive_url":null,"date":"2017-10-01T21:37:33","subject":"Re: [PATCH 01/58] Mark internal functions with attribute_hidden [BZ\n\t#18822]","submitter":{"id":4387,"url":"http://patchwork.ozlabs.org/api/people/4387/","name":"H.J. Lu","email":"hjl.tools@gmail.com"},"content":"On 9/1/17, H.J. Lu <hjl.tools@gmail.com> wrote:\n> Mark internal functions with attribute_hidden to allow direct access to\n> internal functions within libc.so and libc.a without using GOT nor PLT.\n>\n> Size comparison of libc.so:\n>\n> On x86-64:\n>         text\t   data\t    bss\t    dec\t    hex\n> Before: 1728577\t  20584\t  17088\t1766249\t 1af369\n> After : 1728593\t  20584\t  17088\t1766265\t 1af379\n>\n> The only change is __gconv_release_shlib in iconv/gconv_dl.c is inlined\n> since it is hidden, which increases the code size of gconv_dl.os by 18\n> bytes.\n>\n> On i686:\n>         text\t   data\t    bss\t    dec\t    hex\n> Before: 1869039\t  11444\t  11112\t1891595\t 1cdd0b\n> After : 1868635\t  11444\t  11112\t1891191\t 1cdb77\n>\n> The code size is decreased by avoiding GOT/PLT for hidden functions.\n>\n> \t[BZ #18822]\n> \t* iconv/gconv_int.h (__gconv_open): Add attribute_hidden.\n> \t(__gconv_close): Likewise.\n> \t(__gconv): Likewise.\n> \t(__gconv_find_transform): Likewise.\n> \t(__gconv_lookup_cache): Likewise.\n> \t(__gconv_compare_alias_cache): Likewise.\n> \t(__gconv_load_cache): Likewise.\n> \t(__gconv_get_path): Likewise.\n> \t(__gconv_close_transform): Likewise.\n> \t(__gconv_release_cache): Likewise.\n> \t(__gconv_find_shlib): Likewise.\n> \t(__gconv_release_shlib): Likewise.\n> \t(__gconv_get_builtin_trans): Likewise.\n> \t(__gconv_compare_alias): Likewise.\n> \t* include/dlfcn.h (_dlerror_run): Likewise.\n> \t* include/stdio.h (__fortify_fail_abort): Likewise.\n> \t* include/time.h (__tz_compute): Likewise.\n> \t(__strptime_internal): Likewise.\n> \t* intl/gettextP.h (_nl_find_domain): Likewise.\n> \t(_nl_load_domain): Likewise.\n> \t(_nl_find_msg): Likewise.\n> \t* intl/plural-exp.h (FREE_EXPRESSION): Likewise.\n> \t(EXTRACT_PLURAL_EXPRESSION): Likewise.\n> \t* locale/coll-lookup.h (__collidx_table_lookup): Likewise.\n> \t* resolv/gai_misc.h (__gai_enqueue_request): Likewise.\n> \t(__gai_find_request): Likewise.\n> \t(__gai_remove_request): Likewise.\n> \t(__gai_notify): Likewise.\n> \t(__gai_notify_only): Likewise.\n> \t* sysdeps/generic/aio_misc.h (__aio_sigqueue): Likewise.\n> \t* sysdeps/generic/ldsodefs.h (_dl_fini): Likewise.\n> \t(_dl_non_dynamic_init): Likewise.\n> \t(_dl_aux_init): Likewise.\n> \t* sysdeps/i386/machine-gmon.h (mcount_internal): Likewise.\n> \t* sysdeps/unix/sysv/linux/i386/olddirent.h (__old_getdents64):\n> \tLikewise.\n> \t* wcsmbs/wcsmbsload.h (__wcsmbs_load_conv): Likewise.\n> \t(__wcsmbs_clone_conv): Likewise.\n> \t(__wcsmbs_named_conv): Likewise.\n\nTested with build-many-glibcs.py.  I am checking it in.","headers":{"Return-Path":"<libc-alpha-return-85194-incoming=patchwork.ozlabs.org@sourceware.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list libc-alpha@sourceware.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=sourceware.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=libc-alpha-return-85194-incoming=patchwork.ozlabs.org@sourceware.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tsecure) header.d=sourceware.org header.i=@sourceware.org\n\theader.b=\"ViBooQR5\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y4zDC0TW7z9sxR\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon,  2 Oct 2017 08:37:46 +1100 (AEDT)","(qmail 43148 invoked by alias); 1 Oct 2017 21:37:37 -0000","(qmail 43132 invoked by uid 89); 1 Oct 2017 21:37:36 -0000"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:content-type; q=dns; s=default; b=K/WGRZw\n\tzkUNRjTqwJsKnPIIfpAw9rK03lRVMNVVySo4hzrAJHy4dEIgbkqELQsGrQbHS56s\n\tUEPmzGZvgRU1mn3TaFzbuUaCodbL4E1YqzaXbqyCj1A5VwJ5vW1QAgfsmGIsZv+1\n\tKcZ1jrFQD9ALyB54kd5/Az6/xuAiutDv9SMI=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to:content-type; s=default; bh=8oOZMpPC5F6cK\n\tjYS0DHTcIUMiUg=; b=ViBooQR5BVhKWcMC2Iz9NxvDt9tHPJ5zGRUGuPf2OYYll\n\tMPmTH8+Imk1leGv3ogUBOctvxhGa9lydmKhhhsngHAe8budpKDnDPn5fvYHaxslz\n\tVFkHrE9qvT4PUeEDKMp8pE4ws/JMiFdbcqwvGhlP8HoSR1RVLwwaOlHJQhD1NI=","Mailing-List":"contact libc-alpha-help@sourceware.org; run by ezmlm","Precedence":"bulk","List-Id":"<libc-alpha.sourceware.org>","List-Unsubscribe":"<mailto:libc-alpha-unsubscribe-incoming=patchwork.ozlabs.org@sourceware.org>","List-Subscribe":"<mailto:libc-alpha-subscribe@sourceware.org>","List-Archive":"<http://sourceware.org/ml/libc-alpha/>","List-Post":"<mailto:libc-alpha@sourceware.org>","List-Help":"<mailto:libc-alpha-help@sourceware.org>,\n\t<http://sourceware.org/ml/#faqs>","Sender":"libc-alpha-owner@sourceware.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-2.5 required=5.0 tests=AWL, BAYES_00,\n\tFREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_SPAM,\n\tSPF_PASS autolearn=no version=3.3.2 spammy=","X-HELO":"mail-oi0-f67.google.com","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to;\n\tbh=ugyHIQUrjoY1xsFuhtDgfswwB6VnExueUBfmMSes35A=;\n\tb=GGp1QywFuTjvz+P8oOSb2kmPu5Npm3a3XcBO+OP2/1ALfD2qv8mZk/b8U4UptTH2fK\n\tCHP+huyzgCodOcYuk/RNGTGdMFAqoeixP7IlYLZOCcSWfxcNrqBLfd9tWjGhzilnfRMp\n\tuXPl1HHXwL7s0x6952zJariOjQcqE3581fQBXTMD4uN24GrwqItYg21NIVrJnExPbj6R\n\tBbNwVSVKm+JvqbctADLW/SPAXKfl9+s4R3UOWfoctT4WVpG8tm/a1TP0s5TN11WK5Byd\n\t4i3INcwFqFK3fLds67F3qI2P30qGVg7JZPmbrkW/L3jqkfqXFLcBhA9ba0unu0qp7kI9\n\tf2Kw==","X-Gm-Message-State":"AMCzsaUz9oFVFWwdLducm89JN0zD40otQSuK1y6YUgw7jQ+c9WgzbG7j\n\thK880EFqLYXe9HEK0vntiNQOtFJ1CM0WKE+n254=","X-Google-Smtp-Source":"AOwi7QBK3DePC/cWA4m+3G+HxhGZAR2TKA/IC5a5WpLiF3i12IbOwi+rjiT2pLxjFwoNviTXY5CWelMZYMcac6arl6s=","X-Received":"by 10.202.208.141 with SMTP id j13mr483270oiy.116.1506893853513; \n\tSun, 01 Oct 2017 14:37:33 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<20170901180029.9527-2-hjl.tools@gmail.com>","References":"<20170901180029.9527-1-hjl.tools@gmail.com>\n\t<20170901180029.9527-2-hjl.tools@gmail.com>","From":"\"H.J. Lu\" <hjl.tools@gmail.com>","Date":"Sun, 1 Oct 2017 14:37:33 -0700","Message-ID":"<CAMe9rOoWriagSdxNaKXW+mCuWAxYJW=E7=uRChi=iURSfnG_iQ@mail.gmail.com>","Subject":"Re: [PATCH 01/58] Mark internal functions with attribute_hidden [BZ\n\t#18822]","To":"libc-alpha@sourceware.org","Content-Type":"text/plain; charset=\"UTF-8\""}}]