From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x22e.google.com (mail-oi1-x22e.google.com [IPv6:2607:f8b0:4864:20::22e]) by sourceware.org (Postfix) with ESMTPS id 379D93872B6E for ; Fri, 7 Jul 2023 12:48:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 379D93872B6E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-oi1-x22e.google.com with SMTP id 5614622812f47-3a37909a64eso1518143b6e.1 for ; Fri, 07 Jul 2023 05:48:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1688734114; x=1691326114; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=t+LezLx8v0EYT2EM9Dp86WCHieRdr1bQUnn1LPRtHs4=; b=QuTvEUkEz/iNy9QnxBkQ4ChrD4OUzm1HGeA0fiYle79n3rAupSBEDta4mXaGeEHkAQ f2eWWawrMCRXkMAuSDL+4aY26XC62O3jWZcRJz9GJ83xu4xmBngPs+l9c1bw3L+wub5h Bu6e2nHoCIwKCUf5i3qAKcMuKY409ObqjGKHT4u1K/3m2FG0c7f9ZpDdkhlGBjkXy/Uc ZSA7HLWq6URI0u706sTOGM2z8MZzNLyxWY6VJWnAgsCqYq7j5Pu/VXhKNmVJ1+LL+LRm fEww5SFrxrfTfCGRt+wQJtZtqS4JoylCQrg204TpiX+NKsL38eI9DscwrumbR8a1+UrJ 09sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688734114; x=1691326114; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=t+LezLx8v0EYT2EM9Dp86WCHieRdr1bQUnn1LPRtHs4=; b=F5XUu+EcFpC2j9/llC59nLOweexcyNxSeZyMeI7rLtJha9uzADUu0iv8FGOArLh9zQ ppicFdX8gTJ1Y1MB0hwM/ofcSaDl1/m8nKvlm2tmA2FgAT7IUjKHyt3LLlS5AOcWP9jU a2h6Ig1CDfi3FqF+6tsnzblgGu3axIedSNVyz52yuUxHQV5WOAuX3BkkBoACGomb3lQr dl62xAcYXurV7lVa+26oGsh/hVG//c69nd5mHkCX3HqwjV+Q9AmHEcR4XL/shJpaMh/g sAiBarCszBndwMhsk6MgvoBVehUMyd9buiFAGP9ZslTVLMLJcJkmBhmFzhyxQZot/qzM XmMQ== X-Gm-Message-State: ABy/qLbQfqhMogfCjwJKpiJd6z5bbbEgUWQYlbG7phheT70up19MGMGn ZK6fYsgHmiYJVrDucvSThp1BFw== X-Google-Smtp-Source: APBJJlF4K7ReDjP5UU2W/WYNBtvbq707MmfUG+76TUaEmVFcmHqkg2hQuxMXZ+1JKOTD8vgkb1Jbjw== X-Received: by 2002:a05:6808:23c2:b0:3a3:7ee9:8f17 with SMTP id bq2-20020a05680823c200b003a37ee98f17mr5639989oib.39.1688734113960; Fri, 07 Jul 2023 05:48:33 -0700 (PDT) Received: from ?IPV6:2804:1b3:a7c3:e0c8:a0b6:5cc0:2cd7:740f? ([2804:1b3:a7c3:e0c8:a0b6:5cc0:2cd7:740f]) by smtp.gmail.com with ESMTPSA id u19-20020a056808001300b003a365d2746esm1602316oic.9.2023.07.07.05.48.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 07 Jul 2023 05:48:33 -0700 (PDT) Message-ID: <9495eead-7153-82dc-ccf8-7e5ff089ba40@linaro.org> Date: Fri, 7 Jul 2023 09:48:30 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH 00/33] RFC: RELRO link maps Content-Language: en-US To: Florian Weimer Cc: Carlos O'Donell , Maxim Kuvyrkov , libc-alpha@sourceware.org References: <874jmjwid9.fsf@oldenburg.str.redhat.com> <741d667e-818e-1552-a496-7d6bb1212313@redhat.com> <87edlmfj17.fsf@oldenburg.str.redhat.com> <873520geot.fsf@oldenburg.str.redhat.com> <87pm53gafm.fsf@oldenburg.str.redhat.com> From: Adhemerval Zanella Netto Organization: Linaro In-Reply-To: <87pm53gafm.fsf@oldenburg.str.redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00,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.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 07/07/23 09:42, Florian Weimer wrote: > * Florian Weimer: > >>> I will take a look of what might be happening here. >> >> I can't find the failure anymore. >> >> What's the target triplet for this builder? What's the closest >> build-many-glibcs.py configuration? > > I managed to reproduce it using the arm-linux-gnueabihf configureation: > > openat(AT_FDCWD, "./", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 > read(3, 0xffcd9a28, 512) = -1 EISDIR (Is a directory) > close(3) = 0 > dlopen [initial] (NULL): ./: cannot read file data: Is a directory > exit_group(1) = ? > > Or alternatively, using a different LD_LIBRARY_PATH setting with an > absolute path: > > openat(AT_FDCWD, "/root/build/", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 > read(3, 0xffe12f18, 512) = -1 EISDIR (Is a directory) > close(3) = 0 > dlopen [initial] (NULL): /root/build/: cannot read file data: Is a directory > exit_group(1) = ? > > I assume it's the same failure. > > It's because there's no vDSO: > > 00010000-00098000 r-xp 00000000 fd:00 11958481 /root/build/dlfcn/tststatic4 > 00098000-000b5000 rw-p 00087000 fd:00 11958481 /root/build/dlfcn/tststatic4 > 000b5000-000b8000 rw-p 00000000 00:00 0 [heap] > 000b8000-000da000 rw-p 00000000 00:00 0 [heap] > f7fef000-f7ff0000 r-xp 00000000 00:00 0 [sigpage] > fffcf000-ffff0000 rw-p 00000000 00:00 0 [stack] > ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors] > > This means that the main map is the only map, and l_prev and l_next are > NULL. The _dl_lookup_map function treats this as the early startup > situation, where things show up in the hash table but are not actually > on the list. > > I think I can #ifdef out that check for !SHARED. I also seeing extra regressions on arm-linux-gnueabihf: FAIL: elf/tst-audit11 FAIL: elf/tst-audit12 FAIL: elf/tst-audit2 FAIL: elf/tst-audit9 FAIL: elf/tst-tls-ie-dlmopen $ cat elf/tst-audit11.out Start $ cat elf/tst-audit12.out Start $ cat elf/tst-audit2.out version: 2 objopen: 0, �t�� objopen: 0, /home/adhemerval.zanella/projects/glibc/build/arm-linux-gnueabihf/elf/ld.so activity: add objsearch: libc.so.6, LA_SET_ORIG objsearch: /home/adhemerval.zanella/projects/glibc/build/arm-linux-gnueabihf/libc.so.6, LA_SER_RUNPATH objopen: 0, /home/adhemerval.zanella/projects/glibc/build/arm-linux-gnueabihf/libc.so.6 symbind32: symname=calloc, st_value=0x7af938, ndx=68, flags=8 symbind32: symname=free, st_value=0xf7709774, ndx=1547, flags=8 symbind32: symname=malloc, st_value=0xf7708ed0, ndx=397, flags=8 symbind32: symname=realloc, st_value=0xf7709b20, ndx=2033, flags=8 symbind32: symname=__tls_get_addr, st_value=0xf7b786a4, ndx=19, flags=3 symbind32: symname=malloc, st_value=0xf7708ed0, ndx=397, flags=0 pltenter: symname=malloc, st_value=0xf7708ed0, ndx=397, flags=0 symbind32: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 symbind32: symname=memset, st_value=0xf770fbf0, ndx=1300, flags=0 pltenter: symname=memset, st_value=0xf770fbf0, ndx=1300, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 pltenter: symname=__tunable_get_val, st_value=0xf7b79610, ndx=30, flags=0 activity: consistent symbind32: symname=mmap, st_value=0xf777fc5c, ndx=3064, flags=0 pltenter: symname=mmap, st_value=0xf777fc5c, ndx=3064, flags=0 symbind32: symname=__libc_start_main, st_value=0xf7682b1c, ndx=710, flags=0 pltenter: symname=__libc_start_main, st_value=0xf7682b1c, ndx=710, flags=0 pltenter: symname=mmap, st_value=0xf777fc5c, ndx=3064, flags=0 symbind32: symname=_dl_audit_preinit, st_value=0xf7b7b2d0, ndx=38, flags=0 pltenter: symname=_dl_audit_preinit, st_value=0xf7b7b2d0, ndx=38, flags=0 preinit pltenter: symname=memset, st_value=0xf770fbf0, ndx=1300, flags=0 symbind32: symname=getenv, st_value=0xf76a0e1c, ndx=1900, flags=0 pltenter: symname=getenv, st_value=0xf76a0e1c, ndx=1900, flags=0 symbind32: symname=mallopt, st_value=0xf770b28c, ndx=1591, flags=0 pltenter: symname=mallopt, st_value=0xf770b28c, ndx=1591, flags=0 symbind32: symname=getopt_long, st_value=0xf774736c, ndx=1467, flags=0 pltenter: symname=getopt_long, st_value=0xf774736c, ndx=1467, flags=0 pltenter: symname=getenv, st_value=0xf76a0e1c, ndx=1900, flags=0 pltenter: symname=getenv, st_value=0xf76a0e1c, ndx=1900, flags=0 symbind32: symname=setvbuf, st_value=0xf76d49ac, ndx=1342, flags=0 pltenter: symname=setvbuf, st_value=0xf76d49ac, ndx=1342, flags=0 pltenter: symname=getenv, st_value=0xf76a0e1c, ndx=1900, flags=0 pltenter: symname=getenv, st_value=0xf76a0e1c, ndx=1900, flags=0 symbind32: symname=fork, st_value=0xf7741ab8, ndx=2327, flags=0 pltenter: symname=fork, st_value=0xf7741ab8, ndx=2327, flags=0 symbind32: symname=signal, st_value=0xf769c164, ndx=973, flags=0 pltenter: symname=signal, st_value=0xf769c164, ndx=973, flags=0 symbind32: symname=alarm, st_value=0xf773cb88, ndx=350, flags=0 pltenter: symname=alarm, st_value=0xf773cb88, ndx=350, flags=0 pltenter: symname=signal, st_value=0xf769c164, ndx=973, flags=0 symbind32: symname=waitpid, st_value=0xf7765508, ndx=2882, flags=0 pltenter: symname=waitpid, st_value=0xf7765508, ndx=2882, flags=0 symbind32: symname=setrlimit64, st_value=0xf7779db8, ndx=2349, flags=0 pltenter: symname=setrlimit64, st_value=0xf7779db8, ndx=2349, flags=0 symbind32: symname=setpgid, st_value=0xf7762740, ndx=1838, flags=0 pltenter: symname=setpgid, st_value=0xf7762740, ndx=1838, flags=0 pltenter: symname=getenv, st_value=0xf76a0e1c, ndx=1900, flags=0 symbind32: symname=dlopen, st_value=0xf76eab28, ndx=1984, flags=0 pltenter: symname=dlopen, st_value=0xf76eab28, ndx=1984, flags=0 objsearch: $ORIGIN/tst-auditmod9b.so, LA_SET_ORIG activity: delete symbind32: symname=__cxa_finalize, st_value=0xf769f328, ndx=232, flags=0 pltenter: symname=__cxa_finalize, st_value=0xf769f328, ndx=232, flags=0 objclose objclose objclose activity: consistent (the objopen: seems bogus) $ cat elf/tst-audit9.out $ $ cat elf/tst-tls-ie-dlmopen.out maintls[1000]: 0xf7a83f88 .. 0xf7a84370 var0[480]: 0x15b8320 .. 0x15b8500 global-dynamic var1[120]: 0x15b86a8 .. 0x15b8720 global-dynamic var2[24]: 0x15b8f00 .. 0x15b8f18 global-dynamic var3[16]: 0x15b90c0 .. 0x15b90d0 global-dynamic var6[576]: 0xf7a844b0 .. 0xf7a846f0 initial-exec The next dlmopen should fail... ...OK failed with: /home/adhemerval.zanella/projects/glibc/build/arm-linux-gnueabihf/elf/tst-tls-ie-mod4.so: cannot allocate memory in static TLS block. Didn't expect signal from child: got `Segmentation fault'