On Wed, Jul 26, 2017 at 10:33 PM, Harry Putnam <rea...@newsguy.com> wrote:
> Peter Tribble <peter.trib...@gmail.com> writes: > > > On Sun, Jul 16, 2017 at 5:34 PM, Harry Putnam <rea...@newsguy.com> > wrote: > > > >> I posted this query July 9th but got no takers far as a response. > >> Is this question in appropriate here? Is it a foolish question? > >> > >> If both answers are no, I'd really like to hear from someone who > >> either knows first hand or has a solid opinion about it. > >> > >> I don't want to start messing up my OS if installing qt5 and trying to > >> run recent version of Vbox are likely to cause me grief, I might not > >> be able to contend with. > >> But I do need to get a newer version of Vbox installed and working. > >> > > > > VirtualBox 5.0.x works fine (may need the vboxconfig.sh patch). > > > > VirtualBox 5.1.x doesn't work, most likely due to illumos bug 5709. > > Peter, is this the bug with the title: > `Add binary compatibility with Solaris 10 update' > > Just making sure I'm reading the right one. That's the one. > I'm too dense to > understand how that impacts installing recent versions of virtualbox. > > Can you explain a bit? > Sure. Over time, functions get added to libc. We don't change the version number of libc itself; the versioning is handled internally. You can see this by using tools such as elfdump and pvs. Eg. # elfdump -v /lib/libc.so | more Version Definition Section: .SUNW_version index version dependency [1] libc.so.1 [ BASE ] [2] ILLUMOS_0.22 ILLUMOS_0.21 [3] ILLUMOS_0.21 ILLUMOS_0.20 [4] ILLUMOS_0.20 ILLUMOS_0.19 ... there's a lot more versions. If you run 'pvs -vs /lib/libc.so' then you get to see which functions were added to libc in that version. The ILLUMOS labels correspond to functions added by the illumos project since the fork; the SUNW symbols correspond to Solaris releases. (And there's a few other things in there too.) The source for that information is here: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libc/port/mapfile-vers which has the advantage of having useful comments about release names and other things of archaeological interest. You can query a binary or shared library to see what it needs, the same elfdump -v as before. So if you look at /bin/true you will find that its requirements are rather minimal. The interesting file in the case of VirtualBox is /opt/VirtualBox/amd64/libQt5XcbQpaVBox.so.5 # elfdump -v /opt/VirtualBox/amd64/libQt5XcbQpaVBox.so.5 Version Needed Section: .SUNW_version index file version [2] libpthread.so.1 SUNW_1.2 [3] libm.so.2 SUNW_1.1 [4] libc.so.1 SUNW_1.22.7 [5] SUNW_1.22 [ INFO ] [6] SUNW_1.1 [ INFO ] [7] SUNW_0.7 [ INFO ] [8] SUNWprivate_1.1 [9] libgcc_s.so.1 GCC_3.0 OK, so this tells you that it needs the SUNW_1.22.7 version of libc. And if you look with pvs -vs you can see exactly which function it needs: # pvs -vs /opt/VirtualBox/amd64/libQt5XcbQpaVBox.so.5 ... libc.so.1 (SUNW_1.22.7): asprintf; ... Now, go back to our libc (or the mapfile source). We jump straight from SUNW_1.22.6 (which is Solaris 10 update 9) to SUNW_1.23 (which is Solaris 11, or OpenSolaris as it was). We're missing SUNW_1.22.7 entirely. That version corresponds to either S10 update 10 or update 11 (something after update 9). We do have the functions present in our libc, but have them labelled as SUNW_1.23. Oracle added that intermediate version when they added (backported) a handful of the Solaris 11 functions to Solaris 10. So the fix we would like for bug 5709 is to add that intermediate version with the functions that are affected being moved from SUNW_1.23. Then VirtualBox will find SUNW_1.22.7 just as it expects. -- -Peter Tribble http://www.petertribble.co.uk/ - http://ptribble.blogspot.com/ _______________________________________________ openindiana-discuss mailing list openindiana-discuss@openindiana.org https://openindiana.org/mailman/listinfo/openindiana-discuss