Bug 487212
| Summary: | libthread_db does not work (error TD_TLSDEFER) | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Jan Kratochvil <jan.kratochvil> | ||||
| Component: | glibc | Assignee: | Jakub Jelinek <jakub> | ||||
| Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | medium | ||||||
| Version: | rawhide | CC: | jakub, mcepl, mcepl, roland, tromey, zyta2002 | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2009-03-03 10:10:31 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Bug Depends On: | |||||||
| Bug Blocks: | 446452 | ||||||
| Attachments: |
|
||||||
|
Description
Jan Kratochvil
2009-02-24 19:29:32 UTC
Created attachment 333164 [details]
objdump output of libpthread.a
Saw this too, the problem is that in glibc/nptl/init.c
there's a 'static boolean nptl_initial_report_events'
that's used by thread_db to detect if threads have
been started already.
This boolean is optimized away by gcc/ld
where gdb later actively tries to find it.
Solution: remove 'static' here.
Cheers,
Ronald.
Should be fixed in glibc-2.9.90-8.1, building now. (Fixes are upstream, Jakub's next rebase will pull them in more properly too.) But note that thread_db is really only needed nowadays for two things: user-visible thread IDs (pthread_t), and TLS. So I would hope that when thread_db fails, gdb can be robust enough to keep working happily and just not have pthread_t's to display (can display Linux TIDs instead) and can't do TLS variables. |