[{"id":1761894,"web_url":"http://patchwork.ozlabs.org/comment/1761894/","msgid":"<6b180fca-d109-868d-d563-a961b219e73b@redhat.com>","list_archive_url":null,"date":"2017-09-01T18:16:07","subject":"Re: [PATCH 00/58] Hide internal functions in libc.so","submitter":{"id":14312,"url":"http://patchwork.ozlabs.org/api/people/14312/","name":"Florian Weimer","email":"fweimer@redhat.com"},"content":"On 09/01/2017 07:59 PM, H.J. Lu wrote:\n> On x86,\n> \n> # readelf -rW libc_pic.a | grep \" __\" | grep PLT32  | awk '{ print $5 }' | sort | uniq\n> \n> shows that many internal functions are called via PLT in libc.so.  This\n> series of patches hides internal functions to allow direct access within\n> libc.so and libc.a without using GOT nor PLT.\n\nI think we need to automate the generation of hidden attributes (or the\nhidden aliases).\n\nAny ideas how we can do this?\n\nThanks,\nFlorian","headers":{"Return-Path":"<libc-alpha-return-84106-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-84106-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=\"xUbT61WI\"; dkim-atps=neutral","sourceware.org; auth=none","ext-mx09.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx09.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=fweimer@redhat.com"],"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 3xkS9d3LLpz9sNr\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  2 Sep 2017 04:16:21 +1000 (AEST)","(qmail 106288 invoked by alias); 1 Sep 2017 18:16:16 -0000","(qmail 106277 invoked by uid 89); 1 Sep 2017 18:16:15 -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:subject:to:references:from:message-id:date\n\t:mime-version:in-reply-to:content-type\n\t:content-transfer-encoding; q=dns; s=default; b=koXrtHRLhlISGAZ4\n\tBKL3g0j8YedrkAiSFywKnSIuw8fpTEw8TbKO5+fSMOWi2iuMIwfg6RqEqjnSWTGr\n\t8tIgSLJf00neSnL/LCFQ5z/linjjwJoRtU0bX3v7KougMW4Col/Zz+0MHqFeC5Oa\n\tyjfmqtNSx3KQokVNRiRTX3cakgE=","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:subject:to:references:from:message-id:date\n\t:mime-version:in-reply-to:content-type\n\t:content-transfer-encoding; s=default; bh=EdzfhOtvSfH1if13fEzSMY\n\tsgP+4=; b=xUbT61WIfNiGrDzT9LIjquNw56OktvFGSI3lUEr3TM6n4WWaHxGsCq\n\tt1eyO1dyJ0ECBanyZ5Nk7vn594PCJJ5X5CVzzm4athwAmRxDeTCrbEWqlPtYDmcJ\n\tPL+ywZbTJyjbT5HXJ++zc8j6xQ8F9CjNGfQWxH36D8nQ/ApupYxJk=","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=-1.9 required=5.0 tests=BAYES_00,\n\tRP_MATCHES_RCVD,\n\tSPF_HELO_PASS autolearn=ham version=3.3.2 spammy=","X-HELO":"mx1.redhat.com","DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com BA17966CA3","Subject":"Re: [PATCH 00/58] Hide internal functions in libc.so","To":"\"H.J. Lu\" <hjl.tools@gmail.com>, libc-alpha@sourceware.org","References":"<20170901180029.9527-1-hjl.tools@gmail.com>","From":"Florian Weimer <fweimer@redhat.com>","Message-ID":"<6b180fca-d109-868d-d563-a961b219e73b@redhat.com>","Date":"Fri, 1 Sep 2017 20:16:07 +0200","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.2.1","MIME-Version":"1.0","In-Reply-To":"<20170901180029.9527-1-hjl.tools@gmail.com>","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"7bit"}},{"id":1761947,"web_url":"http://patchwork.ozlabs.org/comment/1761947/","msgid":"<CAMe9rOoCKN0z=3Z9q+tHuOgj6bb-+M3hL_WPVQHzja1kebsL-g@mail.gmail.com>","list_archive_url":null,"date":"2017-09-01T19:41:56","subject":"Re: [PATCH 00/58] Hide internal functions in libc.so","submitter":{"id":4387,"url":"http://patchwork.ozlabs.org/api/people/4387/","name":"H.J. Lu","email":"hjl.tools@gmail.com"},"content":"On Fri, Sep 1, 2017 at 11:16 AM, Florian Weimer <fweimer@redhat.com> wrote:\n> On 09/01/2017 07:59 PM, H.J. Lu wrote:\n>> On x86,\n>>\n>> # readelf -rW libc_pic.a | grep \" __\" | grep PLT32  | awk '{ print $5 }' | sort | uniq\n>>\n>> shows that many internal functions are called via PLT in libc.so.  This\n>> series of patches hides internal functions to allow direct access within\n>> libc.so and libc.a without using GOT nor PLT.\n>\n> I think we need to automate the generation of hidden attributes (or the\n> hidden aliases).\n\nI'd love to see it.\n\n> Any ideas how we can do this?\n>\n\nIt won't be easy.","headers":{"Return-Path":"<libc-alpha-return-84114-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-84114-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=\"ptmVZOUy\"; 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 3xkV4f4cfHz9sPt\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  2 Sep 2017 05:42:10 +1000 (AEST)","(qmail 91650 invoked by alias); 1 Sep 2017 19:42:04 -0000","(qmail 91636 invoked by uid 89); 1 Sep 2017 19:42:04 -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:cc:content-type; q=dns; s=default; b=uTga\n\ttiYp6xyRBiJLK1RblXX88TZVwFVbPgJjNhORaxxMCd2lzRXeCSdgpDnt8MWUSQ36\n\t3/V498c/BFAoIGJulohe+wmW439C5lL4iUryMdIR7ktOXkM8nrkEN+CLSWC0/D2i\n\tbVvzh7zIhBSsFN4L7I2au+oOkOUls6rqNuoGjhM=","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:cc:content-type; s=default; bh=d0MxDYZtU0\n\tiOzigilMQQcp+YmFs=; b=ptmVZOUycR/OkodY9jt2JYqvOWqEj2iQZFE2WNonqt\n\tYD6yLAXkqp4epNEsbEc0c/3vALumpcrjOdv7c9nyDoc74q1tPmTqVSAC+NPFR3ck\n\ttyedRooQ4PXxmbQXEvs+Uh2WefLSmRkFM5478pcuy4brPB4BPc2REOm4DF9+GYWM\n\tM=","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=Hx-languages-length:655,\n\tlove","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:cc;\n\tbh=fCQ0dMvbkVH+KzD86rqXrDyUXH7CBfSQ9eWLTob850w=;\n\tb=sT0yS3VXIpihVbuBTF3UlVF8Jtcgup29zmP07Ic6KQCV4oYnSg6azdyqsd3QWHwLaA\n\tYSl174oXiy4OihLrdOZsSltdF3/DwODKbWULoVcZ5fNH1vEYqRM1HRC1+tUinU2I0PkQ\n\tq4P5Q/y110ZnwkUXaleOXOI8Z0nEkXYFWSm78mA2jvdqMWqfgrRxcEXZ6x1qwOyB6xn4\n\t7E+8SvUR+/OZZM8ZyyerWgxGTIdSZSWj+rFqR6NXJ0kuX6hkQruSAAQXQ3vYaU2ykny/\n\t9Any8TbhBQt9tDQMvFFxDPMMfgImU5HXis9/by/ohsj0sY2XilH+Sg7ZZdly9GAf0stQ\n\t/2og==","X-Gm-Message-State":"AHPjjUgf8Nkt4upFrls2VJqCBoEYP8+9K4Dq+R6eIGZGAEU2tBG7LNuU\n\tE30q7ZZDJBkMNLZuCqAVmPIc/wmOFA==","X-Google-Smtp-Source":"ADKCNb5FtzLh0FlIqEOX7ZHLz8V/ymUU2J47U00FukTzToHACYFa1oL+p5bSvFz50bU062gz8sNs1eovMbVA91XMysk=","X-Received":"by 10.202.208.10 with SMTP id h10mr2529486oig.97.1504294917407; \n\tFri, 01 Sep 2017 12:41:57 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<6b180fca-d109-868d-d563-a961b219e73b@redhat.com>","References":"<20170901180029.9527-1-hjl.tools@gmail.com>\n\t<6b180fca-d109-868d-d563-a961b219e73b@redhat.com>","From":"\"H.J. Lu\" <hjl.tools@gmail.com>","Date":"Fri, 1 Sep 2017 12:41:56 -0700","Message-ID":"<CAMe9rOoCKN0z=3Z9q+tHuOgj6bb-+M3hL_WPVQHzja1kebsL-g@mail.gmail.com>","Subject":"Re: [PATCH 00/58] Hide internal functions in libc.so","To":"Florian Weimer <fweimer@redhat.com>","Cc":"GNU C Library <libc-alpha@sourceware.org>","Content-Type":"text/plain; charset=\"UTF-8\""}},{"id":1761964,"web_url":"http://patchwork.ozlabs.org/comment/1761964/","msgid":"<alpine.DEB.2.20.1709012000470.24256@digraph.polyomino.org.uk>","list_archive_url":null,"date":"2017-09-01T20:14:20","subject":"Re: [PATCH 00/58] Hide internal functions in libc.so","submitter":{"id":4349,"url":"http://patchwork.ozlabs.org/api/people/4349/","name":"Joseph Myers","email":"joseph@codesourcery.com"},"content":"On Fri, 1 Sep 2017, Florian Weimer wrote:\n\n> On 09/01/2017 07:59 PM, H.J. Lu wrote:\n> > On x86,\n> > \n> > # readelf -rW libc_pic.a | grep \" __\" | grep PLT32  | awk '{ print $5 }' | sort | uniq\n> > \n> > shows that many internal functions are called via PLT in libc.so.  This\n> > series of patches hides internal functions to allow direct access within\n> > libc.so and libc.a without using GOT nor PLT.\n> \n> I think we need to automate the generation of hidden attributes (or the\n> hidden aliases).\n\nI'm not convinced, for the present patch series.  An internal function \nneeds to be declared somewhere anyway, with or without an explicit hidden \nattribute, so putting the attribute there when declaring the function \ndoesn't really complicate things.  (I do think that if the attributes are \nexplicit, there should also be a test that any external symbol in an \nobject going into a shared library, that doesn't end up as a (defined or \nundefined) dynamic symbol in that shared library, is hidden, so that \nadding a non-hidden internal function is immediately visible as a test \nfailure.)\n\n> Any ideas how we can do this?\n\nWell, an alternative to marking internal functions hidden would be to mark \nexported functions (mostly but not entirely declared in the public \nheaders) as exported, and then build with -fvisibility=hidden.  But that's \nstill a lot of declarations in source files.  Maybe for each public header \nyou could compile an include of it with -D_GNU_SOURCE -aux-info to get a \nlist of functions (like conform/GlibcConform.pm does) and automatically \ngenerate a header with a series of\n\nextern __typeof (foo) foo __attribute__ ((__visibility__ (\"default\")));\n\ndeclarations.  (Note -aux-info only covers functions, not variables, and \nthe exported names may not always be the ones declared in the header.  The \nVersions files would be another source of information on what should be \nexported.)\n\nNow, currently getting a list of all public headers requires recursing \ninto each build subdirectory and doing something like the above would \nrequire such recursing before any of the rest of the build could start - \nand recursing into each subdirectory is serialized, and comparatively \nslow.  If it were helpful we could e.g. decide to put all public headers \neither in an include-public directory, or in sysdeps directories, so e.g. \ninclude-public/stdlib.h instead of stdlib/stdlib.h.","headers":{"Return-Path":"<libc-alpha-return-84115-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-84115-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=\"D1lJZ1hx\"; 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 3xkW4K1q1Pz9s7M\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  2 Sep 2017 06:26:57 +1000 (AEST)","(qmail 22481 invoked by alias); 1 Sep 2017 20:14:32 -0000","(qmail 22411 invoked by uid 89); 1 Sep 2017 20:14:31 -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:date:from:to:cc:subject:in-reply-to:message-id\n\t:references:mime-version:content-type; q=dns; s=default; b=YXwSJ\n\tauohuRV3vJFy0dG9+Tc+qHspBrNQHM8TNbvuUM0V/A9j+4b65Rjy379MiystOoVW\n\tWaSRgpMu/nnw2FPjb7HKxrT0JNTfrgNNN+GUy8gcHQz5Y2kYA5RgVkuUAqBGj7dw\n\t6xRTVe2OofEBELLIT4M9QJSQnWuFsH189Cl1G4=","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:date:from:to:cc:subject:in-reply-to:message-id\n\t:references:mime-version:content-type; s=default; bh=AHDaqjpiZ1Q\n\tCWmhiRxnGVKXUEMQ=; b=D1lJZ1hx2t04qN5J5jJ18SmbX4SMzWLFa9xkgcezfDv\n\tzY2bNMmp+WLVEkfsFG4cSqMV/c2vqYJg9OS/1oqsB0RcuVGz7/zBPMRmEB8H5r75\n\tjyvLaFr5I6sluU8x8x/u3Co4itAJiDYla/muHVtzleoy3u5C4sg6VdOhu8iNCbQw\n\t=","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.0 required=5.0 tests=AWL, BAYES_00,\n\tRCVD_IN_DNSWL_NONE, SPF_PASS,\n\tURIBL_RED autolearn=ham version=3.3.2 spammy=Hx-languages-length:2459,\n\tdeclaring","X-HELO":"relay1.mentorg.com","Date":"Fri, 1 Sep 2017 20:14:20 +0000","From":"Joseph Myers <joseph@codesourcery.com>","To":"Florian Weimer <fweimer@redhat.com>","CC":"\"H.J. Lu\" <hjl.tools@gmail.com>, <libc-alpha@sourceware.org>","Subject":"Re: [PATCH 00/58] Hide internal functions in libc.so","In-Reply-To":"<6b180fca-d109-868d-d563-a961b219e73b@redhat.com>","Message-ID":"<alpine.DEB.2.20.1709012000470.24256@digraph.polyomino.org.uk>","References":"<20170901180029.9527-1-hjl.tools@gmail.com>\n\t<6b180fca-d109-868d-d563-a961b219e73b@redhat.com>","User-Agent":"Alpine 2.20 (DEB 67 2015-01-07)","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"US-ASCII\"","X-ClientProxiedBy":"svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To\n\tsvr-ies-mbx-01.mgc.mentorg.com (139.181.222.1)"}},{"id":1770183,"web_url":"http://patchwork.ozlabs.org/comment/1770183/","msgid":"<98f13a11-cc3d-a24c-58c9-907ae77fe066@redhat.com>","list_archive_url":null,"date":"2017-09-18T13:58:54","subject":"Re: [PATCH 00/58] Hide internal functions in libc.so","submitter":{"id":14312,"url":"http://patchwork.ozlabs.org/api/people/14312/","name":"Florian Weimer","email":"fweimer@redhat.com"},"content":"On 09/01/2017 10:14 PM, Joseph Myers wrote:\n> On Fri, 1 Sep 2017, Florian Weimer wrote:\n> \n>> On 09/01/2017 07:59 PM, H.J. Lu wrote:\n>>> On x86,\n>>>\n>>> # readelf -rW libc_pic.a | grep \" __\" | grep PLT32  | awk '{ print $5 }' | sort | uniq\n>>>\n>>> shows that many internal functions are called via PLT in libc.so.  This\n>>> series of patches hides internal functions to allow direct access within\n>>> libc.so and libc.a without using GOT nor PLT.\n>> I think we need to automate the generation of hidden attributes (or the\n>> hidden aliases).\n> I'm not convinced, for the present patch series.  An internal function\n> needs to be declared somewhere anyway, with or without an explicit hidden\n> attribute, so putting the attribute there when declaring the function\n> doesn't really complicate things.  (I do think that if the attributes are\n> explicit, there should also be a test that any external symbol in an\n> object going into a shared library, that doesn't end up as a (defined or\n> undefined) dynamic symbol in that shared library, is hidden, so that\n> adding a non-hidden internal function is immediately visible as a test\n> failure.)\n\nI was concerned about cross-architecture variance in this area.\n\nBut I presume we can just add a hidden alias and add the export to the \nrelevant sysdeps Versions files, so that's not an actual blocker for \nexplicit specification of visibility.\n\nSo the main issue here is testing that we do not regression in the \ncoverage of hidden declarations.\n\nThanks,\nFlorian","headers":{"Return-Path":"<libc-alpha-return-84679-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-84679-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=\"hQWXh6xi\"; dkim-atps=neutral","sourceware.org; auth=none","ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=fweimer@redhat.com"],"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 3xwnfy4CtLz9s7G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 18 Sep 2017 23:59:06 +1000 (AEST)","(qmail 77147 invoked by alias); 18 Sep 2017 13:59:00 -0000","(qmail 75330 invoked by uid 89); 18 Sep 2017 13:58:59 -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:subject:to:cc:references:from:message-id:date\n\t:mime-version:in-reply-to:content-type\n\t:content-transfer-encoding; q=dns; s=default; b=ig4Kt5aSqgnkTSv+\n\tKf6DR0MDUmSXB85mxVjIayyvHyq5BDq2erVU60CJ+zvZu9wjhA4X3vU3fZqFG6GY\n\tzpgFHWzMkqTp8V5xdV17auQ/JxmlHnl4UgRI5QLze5AEhOBCTIiGNaX2E3+0S3yY\n\tXHKEM0HXWYdrB0H8dJn1bRVu2kE=","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:subject:to:cc:references:from:message-id:date\n\t:mime-version:in-reply-to:content-type\n\t:content-transfer-encoding; s=default; bh=ZJ5qmHU/T39PH6yxgpI+xf\n\tqdmEs=; b=hQWXh6xiiBgRDKjltmNbRrz3yyBBy9ppHz28w9ghwbp2CXEm1JjBta\n\t12EhyqewC9Xy8ZVR7/0EmklmB94ymgZmVaF1Vu6YOqo0zggml8VlVPhjlQsdqV2O\n\tjeCocB+UiNh0SvZ8KGFTqFkbZ2Bnlv4LzRa51Ax2HFNGlXmISYV+E=","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=-1.9 required=5.0 tests=BAYES_00,\n\tRP_MATCHES_RCVD,\n\tSPF_HELO_PASS autolearn=ham version=3.3.2 spammy=Hide,\n\tHx-languages-length:1552","X-HELO":"mx1.redhat.com","DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 0990261498","Subject":"Re: [PATCH 00/58] Hide internal functions in libc.so","To":"Joseph Myers <joseph@codesourcery.com>","Cc":"\"H.J. Lu\" <hjl.tools@gmail.com>, libc-alpha@sourceware.org","References":"<20170901180029.9527-1-hjl.tools@gmail.com>\n\t<6b180fca-d109-868d-d563-a961b219e73b@redhat.com>\n\t<alpine.DEB.2.20.1709012000470.24256@digraph.polyomino.org.uk>","From":"Florian Weimer <fweimer@redhat.com>","Message-ID":"<98f13a11-cc3d-a24c-58c9-907ae77fe066@redhat.com>","Date":"Mon, 18 Sep 2017 15:58:54 +0200","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<alpine.DEB.2.20.1709012000470.24256@digraph.polyomino.org.uk>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Transfer-Encoding":"7bit"}}]