From patchwork Fri Nov 5 07:23:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fangrui Song X-Patchwork-Id: 47093 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8AF3F3858D35 for ; Fri, 5 Nov 2021 07:23:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8AF3F3858D35 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1636097021; bh=B2ThyGWCM0EZ+DqkUzjds5ou3kNMqKiQrxm+rphxwfM=; h=Date:To:Subject:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=Lkv+2KU8IA4iVeDeLVuzZBOkWoVpe4MebEoUWFftdvtEy85Sak6uLO5j433VhnPpz 5/mhCMZZ+6mRaYKrVY2uAbwzYixDoUGLCLvVRlhb17ssdm6eeNZNHwxMt4gKKH4HsS JCiNwSKqhP8sJqL7cm4UmJ++E1piMKVNZXGpbHjs= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-pf1-x42d.google.com (mail-pf1-x42d.google.com [IPv6:2607:f8b0:4864:20::42d]) by sourceware.org (Postfix) with ESMTPS id C708C3858D35 for ; Fri, 5 Nov 2021 07:23:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C708C3858D35 Received: by mail-pf1-x42d.google.com with SMTP id h74so8177623pfe.0 for ; Fri, 05 Nov 2021 00:23:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=B2ThyGWCM0EZ+DqkUzjds5ou3kNMqKiQrxm+rphxwfM=; b=5Huy2/LpglIkBGotFBKZTcgcJTjY4gMG96yuILPZlQl32YzMG8Ah9QEhuR4nQH1nOV 5tXBTZfg7Fz3vYAOmX5nX3cEAx7RjIw3mjC1K397fCRD5dgMEA3My63ohLeZVtqGv3th AeMhzenbU4JY3DQoiHIaE/gVnlVWVx7bi/6Jk3R6Ed/8QZkyxQTHM8ByHLhX8a/ARZ0Z DjYSHyHGh4JT/2MbFtPmabhR9G6vStFfqQCkhzKyEjSHT+rz22uUiKz3MYUzuPDuCZ2Y FZRG0nEhu0rwuWlCpzfBCREeiqRdfUs1HIQbdjPqKpebYMzpB/LWPFqvOybcUYD6yXbp akFw== X-Gm-Message-State: AOAM531j2s8Lj7y8DSluOP298xwm6nfpx9mI8WgdjnTalDPR2l+Mz2/w nDHZw7azc3nta8ERuoWtpr7C7J8xz80Bfw== X-Google-Smtp-Source: ABdhPJwGZ+85Drc4wtYXylrjNGW/fKJV5SLhct6MowxAeLwixTAf8t+H+reUUuHQFqLaoWJit7eHCQ== X-Received: by 2002:a63:af09:: with SMTP id w9mr42494000pge.323.1636096995724; Fri, 05 Nov 2021 00:23:15 -0700 (PDT) Received: from google.com ([2620:15c:2ce:200:fc07:bdc9:3466:8995]) by smtp.gmail.com with ESMTPSA id fw21sm8886802pjb.25.2021.11.05.00.23.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Nov 2021 00:23:15 -0700 (PDT) Date: Fri, 5 Nov 2021 00:23:12 -0700 To: Tulio Magno Quites Machado Filho Subject: lld status with powerpc64 Message-ID: <20211105072312.wbqrhgyjvsypkj52@google.com> References: <20211026200346.3371750-1-adhemerval.zanella@linaro.org> <20211026203327.6b2o5k4cmkuzzm6j@google.com> <87lf2ejdnw.fsf@linux.ibm.com> <87ilxijd5f.fsf@linux.ibm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <87ilxijd5f.fsf@linux.ibm.com> X-Spam-Status: No, score=-19.1 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH, KAM_INFOUSMEBIZ, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=no 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-Patchwork-Original-From: Fangrui Song via Libc-alpha From: Fangrui Song Reply-To: Fangrui Song Cc: libc-alpha@sourceware.org Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" On 2021-10-27, Tulio Magno Quites Machado Filho wrote: >Tulio Magno Quites Machado Filho via Libc-alpha writes: > >> Fangrui Song via Libc-alpha writes: >> >>> On 2021-10-26, Adhemerval Zanella wrote: >>>> #2 0x00007ffff7d7ae90 in __libc_start_main_impl () >>>> from >>>> /home/azanella/glibc/build/powerpc64le-linux-gnu-power9-lld/libc.so.6 >>>> #3 0x0000000000000000 in ?? () >>>> (gdb) disas >>>> Dump of assembler code for function __gep_setup___vmx__sigjmp_save: >>>> => 0x00007ffff7f2a980 <+0>: .long 0x613ffe6 >>>> 0x00007ffff7f2a984 <+4>: li r12,-1280 >> >> This is a pla, but this GDB isn't able to disassemble it. This instruction >> shouldn't be used unless when configuring glibc using --with-cpu=power10. > >I can reproduce this issue even when configuring glibc with >--with-cpu=power9 --disable-multi-arch, which means the build should not have >any Power10 instructions. > >-- >Tulio Magno __gep_setup___vmx__sigjmp_save means a r12 setup stub in ld.lld and is used with R_PPC64_REL24_NOTOC for a non-PLT branch. Clang only emits `bl foo@notoc` with -mcpu=power10. However, sysdeps/powerpc/powerpc64/configure.ac enables USE_PPC64_NOTOC when the assembler (gas) supports it. Adhemerval noticed that ld.lld has a behavior difference from GNU ld: ld.lld defaults to PC-relative paddi stub while GNU ld doesn't (like --power10-stubs=no). Is USE_PPC64_NOTOC supposed to be used when targeting POWER9 and below? If yes, the ld.lld default should be fixed. In my testing environment (POWER9), ld.bfd doesn't support @notoc, so USE_PPC64_NOTOC is undefined. % gcc --version gcc (Debian 8.3.0-6) 8.3.0 ... % ld.bfd --version GNU ld (GNU Binutils for Debian) 2.31.1 ... I only see 8 more FAILs with ld.lld than ld.bfd % diff -u 0 1 I suspect ifuncmain1* is again related to the order of R_*_IRELATIVE with regard to R_*_JUMP_SLOT referencing a STT_GNU_IFUNC symbol. (something like https://maskray.me/blog/2021-01-18-gnu-indirect-function#relocation-resolving-order) But perhaps Adhemerval can look a look at it. For elf/tst-tlsopt-powerpc, it is simply because ld.lld doesn't implement the GNU ld powerpc64's __tls_get_addr_opt (pseudo-TLSDESC): https://maskray.me/blog/2021-02-14-all-about-thread-local-storage#powerpc-__tls_get_addr_opt Let me send a configure patch to disable it... Hey, so lld linked glibc powerpc64 is in a pretty good status! --- 0 2021-11-05 00:11:43.218731302 -0700 +++ 1 2021-11-05 00:11:37.659286448 -0700 @@ -9,6 +9,14 @@ FAIL: debug/tst-lfschk6 FAIL: dlfcn/bug-atexit3 FAIL: elf/check-abi-libc +FAIL: elf/ifuncmain1pic +FAIL: elf/ifuncmain1pie +FAIL: elf/ifuncmain1vis +FAIL: elf/ifuncmain1vispic +FAIL: elf/ifuncmain1vispie +FAIL: elf/ifuncmain3 +FAIL: elf/ifuncmain6pie +FAIL: elf/tst-tlsopt-powerpc FAIL: nptl/tst-cancel24 FAIL: nptl/tst-minstack-throw FAIL: nptl/tst-once5