Bug 17016 - XFAIL: gdb.threads/dlopen-libpthread.exp: info probes all rtld rtld_map_complete
Summary: XFAIL: gdb.threads/dlopen-libpthread.exp: info probes all rtld rtld_map_complete
Status: RESOLVED FIXED
Alias: None
Product: gdb
Classification: Unclassified
Component: testsuite (show other bugs)
Version: HEAD
: P2 normal
Target Milestone: 14.1
Assignee: Sergio Durigan Junior
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-06-04 12:45 UTC by Pedro Alves
Modified: 2022-12-30 15:55 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
Tentative patch (1.42 KB, patch)
2022-12-24 11:32 UTC, Tom de Vries
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Pedro Alves 2014-06-04 12:45:30 UTC
I'm seeing this new XFAIL/UNTESTED on Fedora 20, compared to a test run I had done a month ago, on Fedora 17:

 -PASS: gdb.threads/dlopen-libpthread.exp: info probes all rtld rtld_map_complete
 -PASS: gdb.threads/dlopen-libpthread.exp: libpthread.so not found
 -PASS: gdb.threads/dlopen-libpthread.exp: set variable filename="dlopen-libpthread.so"
 -PASS: gdb.threads/dlopen-libpthread.exp: continue to breakpoint: notify
 -PASS: gdb.threads/dlopen-libpthread.exp: libpthread.so found
 +XFAIL: gdb.threads/dlopen-libpthread.exp: info probes all rtld rtld_map_complete
 +UNTESTED: gdb.threads/dlopen-libpthread.exp: dlopen-libpthread.exp

I'm surprised this XFAILs on Fedora 20 while it passed on F17.  The .exp file doesn't include any hint on why this could be normal.  If this is really expected, and I'm missing something on my system, it'd be good if the test had a comment to the effect.
Comment 1 Sergio Durigan Junior 2014-09-24 18:04:25 UTC
Proposed patch: <https://sourceware.org/ml/gdb-patches/2014-09/msg00712.html>
Comment 2 Tom de Vries 2022-12-24 07:45:03 UTC
I did a test run on ubuntu 22.04.1 x86_64 and I'm also seeing this.

Reading through the thread pointed at by comment 1, it seems we need to test both scenarios of Fedora 17 glibc and upstream glibc, but currently we only test the former.

FWIW, I've tried removing the rtld_ prefix of rtld_map_complete in the test-case, and ran into:
...
FAIL: libpthread.so not found
...

This is with glibc 2.35, which has libpthread integrated into glibc, so it's not suprising that libpthread is already loaded at main.
Comment 3 Tom de Vries 2022-12-24 11:32:17 UTC
Created attachment 14537 [details]
Tentative patch
Comment 4 Sourceware Commits 2022-12-30 15:53:55 UTC
The master branch has been updated by Tom de Vries <vries@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=cb2a1d0aca416235aed885e4796eeb70fbcd3b95

commit cb2a1d0aca416235aed885e4796eeb70fbcd3b95
Author: Tom de Vries <tdevries@suse.de>
Date:   Fri Dec 30 16:53:51 2022 +0100

    [gdb/testsuite] Fix gdb.threads/dlopen-libpthread.exp for upstream glibc
    
    On ubuntu 22.04.1 x86_64, I run into:
    ...
    (gdb) info probes all rtld rtld_map_complete^M
    No probes matched.^M
    (gdb) XFAIL: gdb.threads/dlopen-libpthread.exp: info probes all rtld rtld_map_complete
    UNTESTED: gdb.threads/dlopen-libpthread.exp: no matching probes
    ...
    This has been filed as PR testsuite/17016.
    
    The problem is that the name rtld_map_complete is used, which was only
    available in Fedora 17, and upstream the name map_complete was used.
    
    In the email thread discussing a proposed patch (
    https://sourceware.org/legacy-ml/gdb-patches/2014-09/msg00712.html ) it was
    suggested to make the test-case handle both names.
    
    So, handle both names: map_complete and rtld_map_complete.
    
    This exposes the following FAIL:
    ...
    (gdb) info sharedlibrary^M
    From To    Syms Read Shared Object Library^M
    $hex $hex  Yes       /lib64/ld-linux-x86-64.so.2^M
    $hex $hex  Yes (*)   /lib/x86_64-linux-gnu/libgtk3-nocsd.so.0^M
    $hex $hex  Yes       /lib/x86_64-linux-gnu/libc.so.6^M
    $hex $hex  Yes       /lib/x86_64-linux-gnu/libdl.so.2^M
    $hex $hex  Yes       /lib/x86_64-linux-gnu/libpthread.so.0^M
    (*): Shared library is missing debugging information.^M
    (gdb) FAIL: gdb.threads/dlopen-libpthread.exp: libpthread.so not found
    ...
    due to using a glibc (v2.35) that has libpthread integrated into libc.
    
    Fix this by changing the FAIL into UNSUPPORTED.
    
    Tested on x86_64-linux.
    
    Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=17016
Comment 5 Tom de Vries 2022-12-30 15:55:17 UTC
Fixed by commit.