VMware – Not Working with Fedora 26 – GCC 7, and Workarounds..

I have recently updated one crash-and-burn system to Fedora 26 (alpha/testing) and have encountered two problems with VMware and the ‘bleeding edge’ version of GCC included..

The first problem sounded very familiar, and it is a repeat of one from 2015, where the vmware runtime would simply not start, with no output..   (see http://rglinuxtech.com/?p=1601 )..  The second problem was with the ‘automated’ compilation of the VMware modules, and none of the usual methods worked.   Both problems can be traced to Fedora 26’s use of GCC version 7 (currently 7.0.1)

To get the vmware runtime to execute, force it to use the Fedora 26 versions of various glib2 libraries:

As root, cd to /usr/lib/vmware/lib , then:

# cp -afv /usr/lib64/libgio-2.0.so.0.5104.0 libgio-2.0.so.0/libgio-2.0.so.0
# cp -afv /usr/lib64/libglib-2.0.so.0.5104.0 libglib-2.0.so.0/libglib-2.0.so.0
# cp -afv /usr/lib64/libgmodule-2.0.so.0.5104.0 libgmodule-2.0.so.0/libgmodule-2.0.so.0
# cp -afv /usr/lib64/libgobject-2.0.so.0.5104.0 libgobject-2.0.so.0/libgobject-2.0.so.0
# cp -afv /usr/lib64/libgthread-2.0.so.0.5104.0 libgthread-2.0.so.0/libgthread-2.0.so.0

The VMware libraries are each in their own individual directory, with the same name as that library.. Of course, the Fedora 26 library version numbers may change over time..

After that, run vmware, forcing the use of the copied libraries:

# VMWARE_USE_SHIPPED_LIBS=force vmware

The application will run, but will immediately encounter the second problem…   VMware does not ‘recognise’ GCC version 7..

The vmware runtime graphical module compiler/installer will complain that ‘GNU C Compiler (gcc) version 6.3.1 was not found’, and then ‘A compatible version of gcc was not found’..

The command-line installer fails, but with less detail:

# vmware-modconfig --console --install-all
Failed to get gcc information.

The fix is a bit messy, but does work..

The VMware 12.5.3 vmmon and vmnet modules will actually both compile OK with GCC 7.0.1, and the trick is to manually install these, and then run the vmware runtime application directly, instead of via the normal ‘complaining’ scripts..

In the /usr/lib/vmware/modules/source directory, unTAR vmmon.tar and vmnet.tar, and then enter the resulting vmmon-only and vmnet-only directories and just type # make in each. Then create a /lib/modules/<kernel version>/misc directory, and copy vmmon.ko and vmnet.ko there, then #depmod -a.

To run the vmware runtime directly, instead of /usr/bin/vmware, run /usr/lib/vmware/bin/vmware, and the runtime application should execute without any gcc checks etc….

Combining the two workarounds, the runtime command is now:

# VMWARE_USE_SHIPPED_LIBS=force /usr/lib/vmware/bin/vmware

I have tested this with Fedora 26 – with GCC 7.0.1, and VMware 12.5.3, and it works..     The current release schedule shows this version of Fedora will be released around June 2017, but – of course – this may well slip..

Robert Gadsdon.  March 12, 2017.

Thanks to Vincent Cojot for the original glib2 fix info, in 2015..


Leave a Reply

Your email address will not be published. Required fields are marked *