Kuranaga
Contributor
Contributor

Building vmware Linux modules rebuilds the complete kernel tree - what is wrong?

Hello

while trying to build the vmmon and vmnet modules, the build system rebuilds the complete kernel source tree instead of building just vmmon etc:

dell:/usr/lib/vmware/modules/source/vmmon-only # make

Using kernel build system.

make -C /lib/modules/5.4.13/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \

  MODULEBUILDDIR= modules

make[1]: Entering directory '/home/root/src/linux-5.4.13'

scripts/kconfig/conf  --syncconfig Kconfig

  CC      scripts/mod/empty.o

  MKELF   scripts/mod/elfconfig.h

  HOSTCC  scripts/mod/modpost.o

  CC      scripts/mod/devicetable-offsets.s

  HOSTCC  scripts/mod/file2alias.o

  HOSTCC  scripts/mod/sumversion.o

  HOSTLD  scripts/mod/modpost

  CC      kernel/bounds.s

  CC      arch/x86/kernel/asm-offsets.s

  CALL    scripts/checksyscalls.sh

  CALL    scripts/atomic/check-atomics.sh

  DESCEND  objtool

  CC [M]  arch/x86/crypto/glue_helper.o

  AS [M]  arch/x86/crypto/des3_ede-asm_64.o

  CC [M]  arch/x86/crypto/des3_ede_glue.o

  LD [M]  arch/x86/crypto/des3_ede-x86_64.o

  AS [M]  arch/x86/crypto/camellia-x86_64-asm_64.o

  CC [M]  arch/x86/crypto/camellia_glue.o

  LD [M]  arch/x86/crypto/camellia-x86_64.o

  AS [M]  arch/x86/crypto/blowfish-x86_64-asm_64.o

.....

why is this happening? Same happens if you just run vmware or vmware-modconfig (and there is no module yet), it still rebuilds the complete kernel.

Workstation 15

0 Kudos
3 Replies
Kuranaga
Contributor
Contributor

it actually never finish building it, terminates with error:

  CC [M]  drivers/gpu/drm/drm_print.o

  CC [M]  drivers/gpu/drm/drm_dumb_buffers.o

  CC [M]  drivers/gpu/drm/drm_mode_config.o

  CC [M]  drivers/gpu/drm/drm_vblank.o

  CC [M]  drivers/gpu/drm/drm_syncobj.o

  LD [M]  drivers/gpu/drm/drm_vram_helper.o

  LD [M]  drivers/gpu/drm/drm_kms_helper.o

  LD [M]  drivers/gpu/drm/drm.o

  LD [M]  drivers/gpu/drm/amd/amdgpu/amdgpu.o

ld: drivers/gpu/drm/amd/amdgpu/amdgpu_kms.o: bad reloc symbol index (0x20776f6c >= 0x96) for offset 0x6f20726566667542 in section `.text'

ld: final link failed: bad value

make[5]: *** [scripts/Makefile.build:446: drivers/gpu/drm/amd/amdgpu/amdgpu.o] Error 1

make[4]: *** [scripts/Makefile.build:509: drivers/gpu/drm/amd/amdgpu] Error 2

make[4]: *** Waiting for unfinished jobs....

make[3]: *** [scripts/Makefile.build:509: drivers/gpu/drm] Error 2

make[2]: *** [scripts/Makefile.build:509: drivers/gpu] Error 2

make[1]: *** [Makefile:1652: drivers] Error 2

make[1]: Leaving directory '/home/root/src/linux-5.4.13'

seems to me vmware Makefile is messing with the .config in the original Linux build directory and triggers a complete rebuild of the kernel?

0 Kudos
Franck35
Contributor
Contributor

Hello, is there a solution?

Thank you

0 Kudos
mkubecek
Enthusiast
Enthusiast

Somewhere around kernel 5.0, Masahiro Yamada announced that support for long deprecated SUBDIRS variable would be removed "after 5.3". This happened in commit 7e35b42591c0 ("kbuild: remove SUBDIRS support") in 5.4-rc2 but VMware developers apparently didn't fix it before it actually broke.

However, this is not the only problem with 5.4 and newer kernel; you can use patched version of the modules from GitHub - mkubecek/vmware-host-modules: Patches needed to build VMware (Player and Workstation) host ...

0 Kudos