Bug 245048 - emulators/virtualbox-ose: failed with message "version CXXABI_1.3.9 required by /usr/local/lib/virtualbox/VBoxRT.so not found"
Summary: emulators/virtualbox-ose: failed with message "version CXXABI_1.3.9 required ...
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Many People
Assignee: vbox
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-03-25 10:32 UTC by Hiroyuki Une
Modified: 2020-03-25 10:32 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (vbox)


Attachments
build log of virtualbox-ose (until DynamicConfig.kmk on early stage of build) (60.30 KB, text/plain)
2020-03-25 10:32 UTC, Hiroyuki Une
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Hiroyuki Une 2020-03-25 10:32:48 UTC
Created attachment 212694 [details]
build log of virtualbox-ose (until DynamicConfig.kmk on early stage of build)

After I upgraded virtualbox-ose to 5.3.34_1 (ports r528258) built by poudriere (I attached the build log until DynamicConfig.kmk was build), it failed with the following error messages.  

=== begin error messages
% virtualbox
VirtualBox: Error -610 in supR3HardenedMainInitRuntime!
VirtualBox: dlopen("/usr/local/lib/virtualbox/VBoxRT.so",) failed: /usr/lib/libstdc++.so.6: version CXXABI_1.3.9 required by /usr/local/lib/virtualbox/VBoxRT.so not found

VirtualBox: Tip! It may help to reinstall VirtualBox.

=== end error messages

IMHO, /usr/local/lib/virtualbox/VBoXRT.so dlopen(3)ed by virtualbox should be linked with /usr/local/lib/gcc9/libstdc++.so.6 installed by lang/gcc9 which is used to build virtualbox-ose.  However, rtld(1) chooses /usr/lib/libstdc++.so.6 to link due to the following configuration by ldconfig(8).  

=== begin the output of ldconfig -r for libstdc++.so.6
% ldconfig -r | grep libstdc\+\+
        105:-lstdc++.6 => /usr/lib/libstdc++.so.6
        1189:-lstdc++.6 => /usr/local/lib/gcc7/libstdc++.so.6
        1201:-lstdc++.6 => /usr/local/lib/gcc8/libstdc++.so.6
        1207:-lstdc++.6 => /usr/local/lib/gcc9/libstdc++.so.6

=== end the output of ldconfig -r for libstdc++.so.6

I tried using LD_LIBRARY_PATH, but it had no effect.  I would appreciate if someone gives any suggestion.