[Gc] Missing symbols error when _dyld_bind_fully_image_containing_address is called on OSX
Kjetil Matheussen <[email protected]> Wed, 13 Jul 2016 10:14:34 +0200
| Newsgroups | gmane.comp.programming.garbage-collection.boehmgc |
|---|---|
| Message-ID | <CAC6niEJtPmqh4SfB8-mNpgER2nbRL04L3k2jYJPDaE5s=tqcqA@mail.gmail.com> |
--===============2015936666== Content-Type: multipart/alternative; boundary=001a114004b6ccbdff05377ff96c --001a114004b6ccbdff05377ff96c Content-Type: text/plain; charset=UTF-8 Hi all, I'm compiling a program (users.notam02.no/~kjetism/radium) for osx which uses bdwgc. But when I run the program I get this error: dyld: _dyld_bind_fully_image_containing_address() error dyld: Symbol not found: __ZN22QWindowSystemInterface19registerTouchDeviceEP12QTouchDevice Referenced from: /Volumes/samba_share/Radium.app/Contents/MacOS/./../lib/QtWebKit Expected in: /Volumes/samba_share/Radium.app/Contents/MacOS/./../lib/QtGui in /Volumes/samba_share/Radium.app/Contents/MacOS/./../lib/QtWebKit Trace/BPT trap: 5 It seems like Qt5 from macports has an unresolved symbol. Normally, this shouldn't be a problem since I'm not calling that function. But, the error happens because bdwgc calls _dyld_bind_fully_image_containing_address during GC_INIT().[1] To solve this problem, is it safe to just remove that call to '_dyld_bind_fully_image_containing_address' in bdwgc? I know that I don't store pointers used by the GC in any dynamically loaded libraries, and in my limited knowledge about the gc, that's the only reason bdwgc has for calling this function... There should be a shorter startup time as well for the program when doing this. And as far as I can see, it works for me to remove the call to '_dyld_bind_fully_image_containing_address' in bdwgc. The program runs fine and there are no crashes so far, but maybe it's not safe in the long run? Hopefully someone who knows more than me can comment on this. [1] Same thing happens if I set the DYLD_BIND_AT_LAUNCH environment variable, but then the error shows up before GC_INIT() is called. --001a114004b6ccbdff05377ff96c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><span style=3D"font-size:12.8px">Hi all,</span><div style= =3D"font-size:12.8px"><br></div><div style=3D"font-size:12.8px">I'm com= piling a program (<a href=3D"http://users.notam02.no/~kjetism/radium" targe= t=3D"_blank">users.notam02.no/~kjetism/radium</a>) for osx which uses bdwgc= .</div><div style=3D"font-size:12.8px"><br></div><div style=3D"font-size:12= .8px">But when I run the program I get this error:</div><div style=3D"font-= size:12.8px"><br></div><div style=3D"font-size:12.8px"><div>dyld: _dyld_bin= d_fully_image_containing_address() error</div><div>dyld: Symbol not found: = __ZN22QWindowSystemInterface19registerTouchDeviceEP12QTouchDevice</div><div= >=C2=A0 Referenced from: /Volumes/samba_share/Radium.app/Contents/MacOS/./.= ./lib/QtWebKit</div><div>=C2=A0 Expected in: /Volumes/samba_share/Radium.ap= p/Contents/MacOS/./../lib/QtGui</div><div>=C2=A0in /Volumes/samba_share/Rad= ium.app/Contents/MacOS/./../lib/QtWebKit</div><div>Trace/BPT trap: 5</div><= div><br></div></div><div style=3D"font-size:12.8px">It seems like Qt5 from = macports has an unresolved symbol. Normally, this</div><div style=3D"font-s= ize:12.8px">shouldn't be a problem since I'm not calling that funct= ion.</div><div style=3D"font-size:12.8px"><br></div><div style=3D"font-size= :12.8px">But, the error happens because bdwgc calls=C2=A0_dyld_bind_fully_i= mage_containing_address</div><div style=3D"font-size:12.8px">during GC_INIT= ().[1]</div><div style=3D"font-size:12.8px"><br></div><div style=3D"font-si= ze:12.8px">To solve this problem, is it safe to just remove that call to &#= 39;_dyld_bind_fully_image_containing_address'</div><div style=3D"font-s= ize:12.8px">in bdwgc? I know that I don't store pointers used by the GC= in any dynamically loaded</div><div style=3D"font-size:12.8px">libraries, = and in my limited knowledge about the gc, that's the only reason bdwgc = has</div><div style=3D"font-size:12.8px">for calling this function... There= should be a shorter startup time as well for the program when doing</div><= div style=3D"font-size:12.8px">this.</div><div style=3D"font-size:12.8px"><= br></div><div style=3D"font-size:12.8px">And as far as I can see, it works = for me to remove the</div><div style=3D"font-size:12.8px">call to '_dyl= d_bind_fully_image_containing_address' in bdwgc.</div><div style=3D"fon= t-size:12.8px">The program runs fine and there are no crashes so far,</div>= <div style=3D"font-size:12.8px">but maybe it's not safe in the long run= ? Hopefully someone</div><div style=3D"font-size:12.8px">who knows more tha= n me can comment on this.</div><div style=3D"font-size:12.8px"><br></div><d= iv style=3D"font-size:12.8px"><br></div><div style=3D"font-size:12.8px"><di= v>[1] =C2=A0Same thing happens if I set the=C2=A0DYLD_BIND_AT_LAUNCH</div><= div>environment variable, but then the error shows up before GC_INIT() is c= alled.</div></div></div> --001a114004b6ccbdff05377ff96c-- --===============2015936666== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ bdwgc mailing list [email protected] https://lists.opendylan.org/mailman/listinfo/bdwgc --===============2015936666==--