VMware Communities
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
Hot Shot
Hot Shot

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