From: drew@fnbc.com (Drew Davidson)
Subject: Re: rld: undefined symbols
Reply-To: drew@fnbc.com
Organization: First National Bank Of Chicago, Chicago IL, USA
Date: Mon, 23 Nov 92 23:14:27 GMT

In article <1992Nov23.163544.247@object.com> bbum@object.com (Bill Bumgarner)  
writes:
> In article <1992Nov21.090743.8818@monu6.cc.monash.edu.au>  
> ede978e@monu6.cc.monash.edu.au (Robert D. Nicholson) writes:
> > 
> > I am writing a Workspace contents inspector.
> > 
> > Upon trying to load the bundle I get the following
> > message on the console.
> > 
> > /robert/Apps/RIBInspector.bundle/RIBInspector
> > 
> > Nov 21 19:59:45 steffi WM[148]: rld(): Undefined symbols:
> > 
> > My Bundle's nib has a customView is this legal with bundles?
> > 
> 
> Assuming that by saying customView, you mean that you have a custom subclass  
of  
> the view class-- in this case, probably a subclass of N3DMovieCamera-- yes,  
> this is allowable within a bundle.  The source files (whatever.[hm]) should  
> just be added to the bundle project like any other source files.
> 
> That rld() message is totally useless-- and not uncommon.  There is an  
annoying  
> bug in rld such that it doesn't dump a complete message to console.  It DOES  
> work under gdb-- so you might try attaching gdb to the WM process:
> 
> gdb /usr/lib/NextStep/Workspace.app/WM.app/WM
> attach 148
> 
> << go inspect a .rib file here and it should give you a useful message >>
> 
> In the best case, there is simply some function/class being referenced that  
you  
> have forgotten to include in your code or have mis-typed it (any compiler  
> warnings when you compile the code?).
> 
> In the worst case, the undefined symbol is N3DCamera itself because WM.app  
> doesn't include libMedia-- looking at WM.app/WM via otool -l, one gets:
> 
> Load command 6
>            cmd LC_LOADFVMLIB
>        cmdsize 56
>           name /usr/shlib/libIndexing_s.A.shlib (offset 20)
>  minor version 1
>    header addr 0x0a000000
> Load command 7
>            cmd LC_LOADFVMLIB
>        cmdsize 52
>           name /usr/shlib/libNeXT_s.C.shlib (offset 20)
>  minor version 57
>    header addr 0x06000000
> Load command 8
>            cmd LC_LOADFVMLIB
>        cmdsize 48
>           name /usr/shlib/libsys_s.B.shlib (offset 20)
>  minor version 55
>    header addr 0x05000000
> Load command 9
>      cmd LC_SYMTAB
>  cmdsize 24
>   symoff 524288
>    nsyms 5106
>   stroff 585560
>  strsize 121640
> 
> 
> Which seems to indicate that WM.app doesn't have any kind of a reference to  
> libMedia_... which would leave the 3Dkit (and anything else in that lib--  
live  
> video, as well) inaccessible...
> 
> One COULD potentially edit the load commands....
> 
> --
> Bill Bumgarner <bbum@object.com> | "The devils of truth...
> Objective Technologies, Inc.     |    steal the souls of the free." -- NIN
> -- 
> Bill Bumgarner <bbum@object.com> | "The devils of truth...

This brings up a really sticky question that I've been troubled by recently.   
How in the world do you put an object that you use a lot in two IB Palettes, WM  
Inspectors, Preferences modules, or whatever?  If you link against it in both  
bundles, one will cause rld() to choke at load time, so you cannot use both  
bundles at the same time.  I've got a pretty good library to objects that I  
don't feel like renaming each time they get put into a bundle that *may* have a  
conflict somewhere down the line.

--
+--------------------------------+-------------------------------------------+
|        Drew  Davidson          | "Never ask a programmer if he'll have     |
|         Software Guy           |  another cup of coffee because it's       |
| First National Bank of Chicago |  nobody's damn business how much he's     |
|     drew@fnbc.com  (NeXTmail)  |  already had!"       - me                 |
+--------------------------------+-------------------------------------------+
Newsgroups: comp.sys.next.programmer