[Insight-developers] Problem again in NRRDIO

Daniel Blezek Blezek.Daniel at mayo.edu
Tue Mar 23 16:16:08 EDT 2010


<Edit>Mailman didn't like my 40K posting.  Diff attached.


Here is my hand-edited itk_NrrdIO_mangle.h.  It properly links against the
Teem libraries.  Perhaps it will help tease out the missing symbols.  FYI,
we link against Teem 1.11.

Thanks,
-dan


On 3/23/10 12:42 PM, "Bill Lorensen" <bill.lorensen at gmail.com> wrote:

> The other libraries have instructions like this:
> The following commands were used to obtain the symbol list:
> 
> nm libitktiff.a |grep " T "
> nm libitktiff.a |grep " D "
> nm libitktiff.a |grep " R "
> 
> which is similar to what the pl script is doing.
> 
> On Tue, Mar 23, 2010 at 11:30 AM, Gordon L. Kindlmann <glk at uchicago.edu>
> wrote:
>> Hi,
>> 
>> Yes, grepping for those symbols on the "nm" output on Michel's NrrdIO build
>> will clarify how to correctly filter the results in the mangle.pl script,
>> which can be fixed.
>> 
>> On the other hand, it would be interesting to learn how other libraries
>> (zlib, png) are name-mangled: are there automatic scripts, or were symbol
>> lists generated by hand?
>> 
>> Gordon
>> 
>> On Mar 23, 2010, at 1:12 PM, Bill Lorensen wrote:
>> 
>>> Is it possible to fix the mangle.pl script? Otherwise, this will happen
>>> again.
>>> 
>>> Bill
>>> 
>>> On Tue, Mar 23, 2010 at 11:10 AM, Michel Audette
>>> <michel.audette at kitware.com> wrote:
>>>> 
>>>> Hi gents,
>>>> 
>>>> I'll look into this later today and tomorrow.
>>>> 
>>>> Daniel, sorry about your tribulations. It's possible that my edits caused
>>>> bugs not picked up by the existing tests.
>>>> 
>>>> I'll report back shortly.
>>>> 
>>>> Best wishes,
>>>> 
>>>> Michel
>>>> 
>>>> On Tue, Mar 23, 2010 at 2:07 PM, Gordon L. Kindlmann <glk at uchicago.edu>
>>>> wrote:
>>>>> 
>>>>> Hello,
>>>>> 
>>>>> Shoot- sorry about this; I was just thinking the NrrdIO update was
>>>>> finished!
>>>>> 
>>>>> There indeed probably aren't any tests for checking compiling
>>>>> applications
>>>>> against both Teem (containing the air, biff, and nrrd libraries that
>>>>> these
>>>>> symbols are coming from) and ITK (containing NrrdIO, the fraction of
>>>>> Teem
>>>>> required for Nrrd file IO).  Aren't Slicer builds doing this?  Are there
>>>>> analogous tests for, say, compiling applications against non-ITK zlib
>>>>> and
>>>>> ITK name-mangled zlib, which can be copied from?
>>>>> 
>>>>> I can tell that these names are for the global variables that exist in
>>>>> NrrdIO.  These are probably not getting correctly picked up from the
>>>>> list of
>>>>> symbols in the NrrdIO library, which mangle.pl does by using "nm".
>>>>> 
>>>>> Michel, can go through the NrrdIO process on whatever platform you used
>>>>> last, and at the point of running mangle.pl, can you run "nm" manually
>>>>> and
>>>>> grep for, say, _nrrdStateGrayscaleImage3D, and see how that symbol is
>>>>> identified?  Line 66 of mangle.pl apparently is missing this.
>>>>> 
>>>>> Gordon
>>>>> 
>>>>> On Mar 23, 2010, at 12:33 PM, Daniel Blezek wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>>  We link both against NRRD and ITK in our applications.  At the end of
>>>>>> February, the mangled ITK names were changed from what I fixed.
>>>>>>  Clearly,
>>>>>> this is not tested properly, because today I updated ITK and re-built:
>>>>>> 
>>>>>> 34>ITKNrrdIO.lib(string.obj) : error LNK2005: _airStrtokQuoting already
>>>>>> defined in teem.lib(string.obj)
>>>>>> 34>ITKNrrdIO.lib(defaultsNrrd.obj) : error LNK2005: _nrrdStateVerboseIO
>>>>>> already defined in teem.lib(defaultsNrrd.obj)
>>>>>> 34>ITKNrrdIO.lib(defaultsNrrd.obj) : error LNK2005:
>>>>>> _nrrdStateKeyValuePairsPropagate already defined in
>>>>>> teem.lib(defaultsNrrd.obj)
>>>>>> 34>ITKNrrdIO.lib(defaultsNrrd.obj) : error LNK2005:
>>>>>> _nrrdStateDisableContent already defined in teem.lib(defaultsNrrd.obj)
>>>>>> 34>ITKNrrdIO.lib(defaultsNrrd.obj) : error LNK2005:
>>>>>> _nrrdStateGrayscaleImage3D already defined in
>>>>>> teem.lib(defaultsNrrd.obj)
>>>>>> 34>ITKNrrdIO.lib(defaultsNrrd.obj) : error LNK2005:
>>>>>> _nrrdStateKeyValueReturnInternalPointers already defined in
>>>>>> teem.lib(defaultsNrrd.obj)
>>>>>> 34>ITKNrrdIO.lib(defaultsNrrd.obj) : error LNK2005: _nrrdStateKindNoop
>>>>>> already defined in teem.lib(defaultsNrrd.obj)
>>>>>> 34>ITKNrrdIO.lib(biffmsg.obj) : error LNK2005: __biffMsgNoop already
>>>>>> defined in teem.lib(biffmsg.obj)
>>>>>> 34>ITKNrrdIO.lib(dio.obj) : error LNK2005: _airDisableDio already
>>>>>> defined
>>>>>> in teem.lib(dio.obj)
>>>>>> 
>>>>>> Could ³Michel² (according to CVS) please have a closer look at this?  I
>>>>>> had tweaked this once before, and my changes were blown away by the
>>>>>> (broken)
>>>>>> mangle.pl script.
>>>>>> 
>>>>>> I¹ll go back through and manually add the names if necessary.
>>>>>> 
>>>>>> Cheers,
>>>>>> -dan
>>>>>> 
>>>>>> --
>>>>>> Daniel Blezek, PhD
>>>>>> Medical Imaging Informatics Innovation Center
>>>>>> 
>>>>>> P 127 or (77) 8 8886
>>>>>> T 507 538 8886
>>>>>> E blezek.daniel at mayo.edu
>>>>>> 
>>>>>> Mayo Clinic
>>>>>> 200 First St. S.W.
>>>>>> Harwick SL-44
>>>>>> Rochester, MN 55905
>>>>>> mayoclinic.org
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Powered by www.kitware.com
>>>>>> 
>>>>>> Visit other Kitware open-source projects at
>>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>> 
>>>>>> Kitware offers ITK Training Courses, for more information visit:
>>>>>> http://kitware.com/products/protraining.html
>>>>>> 
>>>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>>>> 
>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>> http://www.itk.org/mailman/listinfo/insight-developers
>>>>> 
>>>>> _______________________________________________
>>>>> Powered by www.kitware.com
>>>>> 
>>>>> Visit other Kitware open-source projects at
>>>>> http://www.kitware.com/opensource/opensource.html
>>>>> 
>>>>> Kitware offers ITK Training Courses, for more information visit:
>>>>> http://kitware.com/products/protraining.html
>>>>> 
>>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>>> 
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://www.itk.org/mailman/listinfo/insight-developers
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Michel Audette, Ph.D.
>>>> R & D Engineer,
>>>> Kitware Inc.,
>>>> Chapel Hill, N.C.
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Powered by www.kitware.com
>>>> 
>>>> Visit other Kitware open-source projects at
>>>> http://www.kitware.com/opensource/opensource.html
>>>> 
>>>> Kitware offers ITK Training Courses, for more information visit:
>>>> http://kitware.com/products/protraining.html
>>>> 
>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>> 
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.itk.org/mailman/listinfo/insight-developers
>>>> 
>>>> 
>>> 
>> 
>> 

-- 
Daniel Blezek, PhD
Medical Imaging Informatics Innovation Center

P 127 or (77) 8 8886
T 507 538 8886
E blezek.daniel at mayo.edu

Mayo Clinic
200 First St. S.W.
Harwick SL-44
Rochester, MN 55905
mayoclinic.org


-------------- next part --------------
A non-text attachment was scrubbed...
Name: Diff.txt
Type: application/octet-stream
Size: 1313 bytes
Desc: not available
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20100323/f1beb405/attachment.obj>


More information about the Insight-developers mailing list