VMPLAYER cannot be installed - GCC version mismatch?

Hi!

I’m trying to install VMPLAYER, but I get an error, “A compatible version of gcc was not found”, and the software says “GNU C Compiler (gcc) version 5.3.1 was not found.” However, I have the latest version of gcc, as shown in:

> gcc --version
gcc (SUSE Linux) 5.3.1 20160412 [gcc-5-branch revision 234894]

Is there a way out of this? I’m using the latest VMware-Player-12.1.1-3770994.x86_64.bin version, which I just downloaded.

Thanks!

Last time I looked at VMware on TW issues was a long time ago, at that time I had to install gcc 4.6 and force that during the VMware install.

It’s hard to say if your error might be a more recent version of what I ran into before.

I recommend you

  • post your TW version, you can do this by running the following command
cat /etc/os-release
  • Post your entire VMware install stdout. There may be a clue you didn’t notice prior to the error you posted. You can post long bits of data like the stdout on a pastebin and provide the link your in your Forum post.

A couple pastebins…
http://paste.opensuse.org/
http://pastebin.com/

TSU

Hi!

My Tumbleweed version:

> cat /etc/os-release  
NAME=openSUSE
VERSION="Tumbleweed"
VERSION_ID="20160417"
PRETTY_NAME="openSUSE Tumbleweed (20160417) (x86_64)"
ID=opensuse
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:opensuse:20160417"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
ID_LIKE="suse"

and the output for VMPlayer doesn’t appear on the console. You get a first window saying “A compatible version of gcc was not found” and then a second one saying “GNU C Compiler (gcc) version 5.3.1 was not found”.

I also tried:

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

Need to see the exact wording of your gcc error.
You can post your entire stdout to a pastebin as I described.

There are many reasons why a “compatible version was not found,” ie bad path, a version not recognized, a file missing.

TSU

Hi!

Sorry, but as I said, there is NO console output. When you run vmplayer, and it decides that it needs to build and install some modules, all output is sent to the screen. I tried the --console parameter (and other variations) but couldn’t get any console output; it was always shown onscreen, without further details.

My question is: how can I attempt to “make” the modules by hand? I think there was a way to create each one (vmmon, vmnet, etc.) by running “make” (possibly with some parameters…) in such and such directories, and then finishing the installation by copying, moving, or insmod’ding, or something like that.

Best regards,
FK

That screen output is what we need to see.

Methods you can use to capture that windowed console output…
Copy/Paste.
If you are using a windowed console like Konsole or LXterminal or XFCEterminal, the screen buffer allows you to scroll to select more than what the screen displays at once. Once you have selected all you wish using something like SHFT-Click or the “mark” in the Edit menu or “click-down-scroll” or whatever else is provided you, you can copy either by using a Menu copy selection or adding a Shift to a normal copy keystroke function (often CTL-C). After copying to the clipboard you can then paste anywhere including a pastebin input box.

Redirect output from screen to file
Simply run the command followed by an angle bracket pointing to the right followed by some file name. The result is that you won’t see the usual stdout, instead you’ll simply see a working command and when it finishes you’ll see the command prompt again. The result will be a textfile in the same location the console is in unless you described a path elsewhere (like /home/User/Documents). You can now open that file and post its contents in a Pastebin. In the following, substitute your vmplayer install command for “command”

 *command* > *textfile *

The above methods should work in all openSUSE “enhanced” windowed consoles, the second method might be the only practical option if you’re using an unenhanced terminal like xterm (or using some distro other than openSUSE). If you’re running your command in a non-windowed console like a raw tty (eg init 3), then use the second method.

TSU

As I said, there is NO console output whatsoever. The window output is as follows:

https://www.dropbox.com/s/ul8w657v81bph9i/vmplayer_install_error_1.png?dl=0

https://www.dropbox.com/s/0d9088c3qhgns60/vmplayer_install_error_2.png?dl=0

https://www.dropbox.com/s/qrkrb5sketb9tyl/vmplayer_install_error_3.png?dl=0

After you confirm on the third screen, it goes back to the 1st one.

Thanks for your help!

That screen output is what we need to see.

Hi! I’m providing links (in a separate reply) to the windowed output; there’s no output whatsoever on the console.

Thanks!

Do you actually have gcc installed??

OK,

First, let’s get the package info for your existing gcc

zypper info gcc

Also the package contents

rpm -ql gcc

Just verifying that the gcc you’re pointing to is actually what the VMware install is likely pointing to.
Seems to me that if you are actually able to enter a path to the gcc the install wants, that should be sufficient even if the VMware install’s default path to find the gcc is somehow incorrect.

Consider also that although the VMware install might be asking for gcc 5.3.1, that version of gcc isn’t actually compatible… That’s what I found about a half(maybe slightly longer) year ago but don’t know if that should still be the case today. My solution then was to compile with gcc46(installable from the TW repo).

TSU

Hi! Yes, of course; I provided the version in my first email.

Thanks!

Hi!

I think you nailed it… gcc -v shows version 5.3.1, but zypper thinks otherwise:

**#** zypper info gcc
Loading repository data...
Reading installed packages...


Information for package gcc:
----------------------------
Repository: Tumbleweed OSS
Name: gcc
**Version: 5-2.50**
Arch: x86_64
Vendor: openSUSE
Installed: Yes
Status: up-to-date
Installed Size: 0 B
Summary: The system GNU C Compiler
Description:  
  The system GNU C Compiler.

**#** rpm -ql gcc
/usr/bin/cc
/usr/bin/gcc
/usr/bin/gcc-ar
/usr/bin/gcc-nm
/usr/bin/gcc-ranlib
/usr/bin/gcov
/usr/lib/bfd-plugins
/usr/lib/bfd-plugins/liblto_plugin.so.0.0.0
/usr/share/man/man1/cc.1.gz
/usr/share/man/man1/gcc.1.gz
/usr/share/man/man1/gcov.1.gz
**
#** gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/5/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,o
bj-c++,java,ada,go --enable-checking=release --with-gxx-include-dir=/usr/include/c++/5 --enable-ssp --disable-libssp --disable-libvtv --enable-libmpx --disable-plugin --with-bug
url=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --with-slibdir=/lib64 --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --d
isable-libstdcxx-pch --enable-version-specific-runtime-libs --enable-linker-build-id --enable-linux-futex --program-suffix=-5 --without-system-libunwind --enable-multilib --with
-arch-32=x86-64 --with-tune=generic --build=x86_64-suse-linux --host=x86_64-suse-linux
Thread model: posix
**gcc version 5.3.1 20160412 [gcc-5-branch revision 234894] (SUSE Linux)**

So… how come gcc reports a different version? And how can I fix this?

Best regards,
FK

Please delete.

Maybe it is this bug:
https://communities.vmware.com/thread/509702?tstart=0

Taking a look on my test TW,
I’m seeing the same gcc version mis-match you’re seeing.
Not sure what it means, and I don’t do too much on this TW so not sure when this might have happened and what might be affected.

Trying to remember what I did long ago to resolve installing VMware on this TW, I think I uninstalled gcc and simply installed gcc46 and things worked… But it looks like today gcc46 (and all gcc4x) has been fully deprecated and is no longer available… The only versions now are gcc5 and gcc6. Since the existing gcc links to gcc5, I’m suggesting the following (I can’t test until I build another TW since I already have VMware installed on my existing TW). I recommend the following steps which install gcc6 and manually create a symbolic link between gcc and the gcc6 binary. Unfortunately, although you can install gcc versions side by side you can’t switch between them easily except to explicitly name the gcc binary (I submitted a request for openSUSE to enable update-alternatives to manage gcc versions with no response yet), so the following are required to point gcc to something other than what is configured by the gcc package.

  • Uninstall gcc5. This will also remove gcc
zypper rm gcc5
  • Install gcc6 (this is just a try)
zypper in gcc6
  • Unfortunately installing gcc6 does not automatically link the gcc binary to gcc6, so the following creates the symbolic link for the gcc binary (there are other parts to the gcc6 package that probably aren’t necessary)
ln /usr/bin/gcc-6 /usr/bin/gcc

Check your gcc version

gcc --version

And now you can try running the VMware Player installer again.
If it doesn’t work, you can try installing only gcc5 (without the gcc package) and try creating a symbolic link to that the same way I described doing this for gcc6.

As for the VMware discussion thread referenced by Saurland, I see two issues trying to be addressed in that thread…

  • The compiler being used to compile the VMware KLM is older than the compiler that might have been used to compile the kernel. My suggestion to try to step up to gcc6 should address that, the compiler used for compiling the VMware modules will be <newer> than what was used to compile the kernel. Although possible, I’m not necessarily convinced if this scenario exists that it should be a regular issue. Using different version compilers do not guarantee errors, only raises possibilities of errors so the problem seen in those versions a year ago won’t necessarily be seen with today’s versions.
  • A gtk error. It’s only a warning that a particular theme won’t be loaded. Should be non-critical, unless you want some control over appearance, IMO whatever default is used should be functional.

TSU

I built a new TW and took a look at this…

First disregard the tries I suggest in the above post, they do not work.

Despite the error displayed by VMware, the problem isn’t likely a gcc version mis-match, the problem is likely a plain and simple situation that the VMware install code isn’t supported by any leading/bleeding edge gcc.

The complete description of the process is that the VMware Player installation does succeed initially, but fails trying to build KLM (Kernel Loadable Modules) when VMware Player is launched for the first time.

When you try to launch VMware Player, it throws the “gcc 5.3.1 not found” error.
The way to gain access to the install log which includes the errors and backtrace is to launch VMware Player from the command line with the “–help” flag as follows,

vmyer --help

Inspecting the contents, there’s nothing I can use to troubleshoot this problem further.

@fkereki
I recommend you raise an issue in the VMware Support Forums and include the install log I describe, it should include the necessary info for VMware to fix the problem.

As always, although it’s important for people with time to find these errors, for anyone who uses their machines for Productive Work to not use TW particularly as a virtualization Host (It’s OK as a Guest). Today, LEAP or 13.2 should be your stable choices for a HostOS.

TSU

Inspecting the contents, there’s nothing I can use to troubleshoot this problem further.

@fkereki
I recommend you raise an issue in the VMware Support Forums and include the install log I describe, it should include the necessary info for VMware to fix the problem.

Thanks for the tip; I’ll try this out. I also experimented un-installing and re-installing gcc, but it didn’t work.

I’m using the latest VMware-Player-12.1.1x86_64.bin version, which I just downloaded.I had to install gcc 4.6 and force that during the VMware install.

You’re replying to a 4+ year old thread. Will close this out.