From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x22b.google.com (mail-oi1-x22b.google.com [IPv6:2607:f8b0:4864:20::22b]) by sourceware.org (Postfix) with ESMTPS id 27E0A385E019 for ; Wed, 30 Mar 2022 16:28:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 27E0A385E019 Received: by mail-oi1-x22b.google.com with SMTP id z8so22561356oix.3 for ; Wed, 30 Mar 2022 09:28:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=Z7w123fAIh/RfckfE5VcAaKzePky5r5NakzeVYKYCqs=; b=CEjsz5rEesrPQou5sCd3txeeRI/1CTJN0Tt+cvMl39ZOF2ByQrhBls/UTOhhQ0iwI5 ieNYUJLyURCCOOAZbbmffMmk3+qAYk4vMkRYSgZpEzX8g6vRN8l7jjwSmNqfW2eU/gVy zUJ/0RaLTnf+koKlpWUVbNXPz/piv46Z55xWC5DFaL4LL0rh6MKzsF/ciZMOZFKwLKQ3 w/eH4J0sXKDhnwge45PgixFhtb81Pajx3XVHog1yaisQHgEIgS9NLKAe6en4vtyWpmGv 26GpXXhldx9UKMDa7ktlG38JySg8PVlW8AmlcUFmshYvDH4HyuHra19KpazkhFse+hwI ZMTg== X-Gm-Message-State: AOAM532oGY7V33At/Er22bhNc1hf970Gz+8ceADzPbxLoHL1DavunrKF WddFFHKxYCfH+vKBSVWqJm7YVA== X-Google-Smtp-Source: ABdhPJy/psZ8AHnhBTwgnuZMRcRbYSL+vUtUHdpQ1FKwL4sZ5RP9SbyxT6japmZMynMX4jyCf93HDA== X-Received: by 2002:aca:2307:0:b0:2ed:22b4:bacd with SMTP id e7-20020aca2307000000b002ed22b4bacdmr256374oie.117.1648657691393; Wed, 30 Mar 2022 09:28:11 -0700 (PDT) Received: from ?IPV6:2804:431:c7cb:a6c0:ca7b:5b69:d952:46d0? ([2804:431:c7cb:a6c0:ca7b:5b69:d952:46d0]) by smtp.gmail.com with ESMTPSA id x65-20020a9d20c7000000b005cdaeec68d5sm10568485ota.37.2022.03.30.09.28.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Mar 2022 09:28:10 -0700 (PDT) Message-ID: <7e7fdfdc-ddc8-cf5a-0525-f927b4ae1e39@linaro.org> Date: Wed, 30 Mar 2022 13:28:08 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH] Remove fno-unit-at-a-time make variable Content-Language: en-US To: Fangrui Song Cc: libc-alpha@sourceware.org References: <20220330050729.2176630-1-maskray@google.com> <0295bfe2-2f44-c15e-1628-acaf94fc407c@linaro.org> <20220330162311.pwg52gcrr5vnlabe@google.com> From: Adhemerval Zanella In-Reply-To: <20220330162311.pwg52gcrr5vnlabe@google.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-5.1 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Mar 2022 16:28:14 -0000 On 30/03/2022 13:23, Fangrui Song wrote: > On 2022-03-30, Adhemerval Zanella wrote: >> >> >> On 30/03/2022 02:07, Fangrui Song wrote: >>> 795985e4e751 in 2003 added -fno-unit-at-a-time to errlist.c and >>> siglist.c to "avoid reordering assembler output". -fno-toplevel-reorder >>> is a rough replacement for this legacy option >>> (https://sourceware.org/pipermail/gcc-patches/2006-January/186801.html). >>> >>> The reordering requirement does not seem to be needed any longer. >> >> We still need them for otherwise DEFINE_COMPAT_ERRLIST used on errlist-compat.c >> does not create _sys_errlist and _sys_siglist with expected sizes defined by >> glibc ABI. >> >> I am trying to fix without resorting to compiler options. > > DEFINE_COMPAT_ERRLIST does not expand to code/data, just reordeable directives: > > >        .globl  __GLIBC_2_1_sys_errlist > .set __GLIBC_2_1_sys_errlist, _sys_errlist_internal >         .type   __GLIBC_2_1_sys_errlist,@object >         .size   __GLIBC_2_1_sys_errlist, 1000 >         .globl  __GLIBC_2_1__sys_errlist > .set __GLIBC_2_1__sys_errlist, _sys_errlist_internal >         .type   __GLIBC_2_1__sys_errlist,@object >         .size   __GLIBC_2_1__sys_errlist, 1000 > .symver __GLIBC_2_1_sys_nerr, sys_nerr@GLIBC_2.2.5 > .symver __GLIBC_2_1__sys_nerr, _sys_nerr@GLIBC_2.2.5 > .symver __GLIBC_2_1_sys_errlist, sys_errlist@GLIBC_2.2.5 > .symver __GLIBC_2_1__sys_errlist, _sys_errlist@GLIBC_2.2.5 >         .globl  __GLIBC_2_3_sys_errlist > .set __GLIBC_2_3_sys_errlist, _sys_errlist_internal >         .type   __GLIBC_2_3_sys_errlist,@object >         .size   __GLIBC_2_3_sys_errlist, 1008 >         .globl  __GLIBC_2_3__sys_errlist > .set __GLIBC_2_3__sys_errlist, _sys_errlist_internal >         .type   __GLIBC_2_3__sys_errlist,@object >         .size   __GLIBC_2_3__sys_errlist, 1008 > .symver __GLIBC_2_3_sys_nerr, sys_nerr@GLIBC_2.3 > .symver __GLIBC_2_3__sys_nerr, _sys_nerr@GLIBC_2.3 > .symver __GLIBC_2_3_sys_errlist, sys_errlist@GLIBC_2.3 > .symver __GLIBC_2_3__sys_errlist, _sys_errlist@GLIBC_2.3 >         .globl  __GLIBC_2_4_sys_errlist > > I do not know whether GCC would reorder these macros. Even yes, > that'd just change the .symtab entries in the relocatable object file. > The linker behavior remains the same with reordering. It does not seem to, just remove the -fno-unit-at-a-time and issue make check-abi and you will see that object size for the compat symbols reference to _sys_err_internal instead of the define compat ones.