dicomscope fails to start with "undefined symbol" error
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
dicomscope (Debian) |
Fix Released
|
Unknown
|
|||
dicomscope (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
When starting dicomscope, it immediately aborts with the following message printed to the console:
$ dicomscope
starting DICOMscope
please wait...
Exception in thread "main" java.lang.
at java.lang.
at java.lang.
at java.lang.
at java.lang.
at java.lang.
at main.MainContex
at dicomscope.
What I've found so far is:
The missing symbol is:
$ c++filt _ZTI22DcmTransp
typeinfo for DcmTransportCon
Which is indeed undefined in libdcmtls:
$ objdump -CT /usr/lib/
00000000 D *UND* 00000000 typeinfo for DcmTransportCon
And defined in libdcmnet:
$ objdump -CT /usr/lib/
000d468c w DO .data.rel.ro 00000008 Base typeinfo for DcmTransportCon
But since libdcmtls does not "need" libdcmnet:
$ objdump -x /usr/lib/
NEEDED libgcc_s.so.1
NEEDED libc.so.6
libdcmnet is not loaded when libdcmtls is, and so the start fails.
I have confirmed this by compiling the affected libraries myself and linking them with the correct dependencies, with which dicomscope starts and works.
System info:
$ lsb_release -rd
Description: Ubuntu 11.10
Release: 11.10
$ apt-cache policy dicomscope
dicomscope:
Installed: 3.6.0-6.1
Candidate: 3.6.0-6.1
Version table:
*** 3.6.0-6.1 0
500 http://
100 /var/lib/
$ apt-cache policy libdcmtk2
libdcmtk2:
Installed: 3.6.0-6ubuntu1
Candidate: 3.6.0-6ubuntu1
Version table:
*** 3.6.0-6ubuntu1 0
500 http://
100 /var/lib/
$ apt-cache policy openjdk-6-jre
openjdk-6-jre:
Installed: 6b23~pre11-
Candidate: 6b23~pre11-
Version table:
*** 6b23~pre11-
500 http://
500 http://
100 /var/lib/
6b23~
500 http://
Changed in dicomscope (Debian): | |
status: | Unknown → Fix Released |
Status changed to 'Confirmed' because the bug affects multiple users.