Bug 114738
| Summary: | load fail on hidden symbol `__dso_handle' | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 3 | Reporter: | Ralph Menikoff <rmenikoff> | ||||
| Component: | libaio | Assignee: | Jeff Moyer <jmoyer> | ||||
| Status: | CLOSED NOTABUG | QA Contact: | |||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 3.0 | ||||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | All | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2004-02-17 17:23:38 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: | |||||||
| Attachments: |
|
||||||
|
Description
Ralph Menikoff
2004-02-02 07:39:48 UTC
A colleague of mine, James Quirk, had previously come across this bug and gave me a workaround. I had made shared object using g++ and tried to link shared object into execuatble using g++. I can get this to work if I compile object with 1 line void* __dso_handle; and link it with shared object. Then g++ makes executable without error. I was mistaken that my problem was related to previous bug #109457 But that is only reponse I got from bugzilla querry for dso_handle. google search gives slew of comments related to dso_handle problems. When is this bug going to be fixed ? Please provide a reproducer. Created attachment 97695 [details]
tar file of simple source to reproduce __dso_handle error
tar xvf dso_bug.tar
make Main
gives error
/usr/bin/ld: Main: hidden symbol `__dso_handle' in
/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/crtbegin.o is referenced by DSO
Variation make Work; ./Work # runs fine
The line that cause ld problem is #include <iostream> in source Hello.C for
shared object.
Your testcase is broken. Never ever use ld -shared, always use gcc -shared or g++ -shared, it knows the details how to build correct shared libraries unlike your makefile. |