[OpenIndiana-discuss] New request for info `Are we able to install recent vbox versions'

Peter Tribble peter.tribble at gmail.com
Thu Jul 27 09:01:45 UTC 2017


On Wed, Jul 26, 2017 at 10:33 PM, Harry Putnam <reader at newsguy.com> wrote:

> Peter Tribble <peter.tribble at gmail.com> writes:
>
> > On Sun, Jul 16, 2017 at 5:34 PM, Harry Putnam <reader at 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/


More information about the openindiana-discuss mailing list