VirtualBox

Changeset 87728 in vbox for trunk/src/VBox/HostDrivers/linux


Ignore:
Timestamp:
Feb 12, 2021 2:24:07 AM (4 years ago)
Author:
vboxsync
Message:

SUPDrv,VMMR0,VBoxDDR0,++: More work on wrapper kmods. bugref:9937

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/linux/Makefile

    r85943 r87728  
    3030
    3131obj-m = vboxdrv/
    32 ifneq ($(wildcard $(CURDIR)/vboxnetflt/Makefile),)
    33  obj-m += vboxnetflt/
    34 endif
    35 ifneq ($(wildcard $(CURDIR)/vboxnetadp/Makefile),)
    36  obj-m += vboxnetadp/
    37 endif
    38 ifneq ($(wildcard $(CURDIR)/vboxpci/Makefile),)
    39  obj-m += vboxpci/
    40 endif
     32 ifneq ($(wildcard $(CURDIR)/vboxnetflt/Makefile),)
     33obj-m += vboxnetflt/
     34 endif
     35 ifneq ($(wildcard $(CURDIR)/vboxnetadp/Makefile),)
     36obj-m += vboxnetadp/
     37 endif
     38 ifneq ($(wildcard $(CURDIR)/vboxpci/Makefile),)
     39obj-m += vboxpci/
     40 endif
    4141
    4242else # ! KERNELRELEASE
     
    4545
    4646KBUILD_VERBOSE ?=
    47 KERN_VER ?= $(shell uname -r)
    4847.PHONY: all install clean check unload load \
    4948    vboxdrv vboxnetflt vboxnetadp vboxpci \
     
    5453
    5554# We want to build on Linux 2.6.18 and later kernels.
    56 ifneq ($(filter-out 1.% 2.0.% 2.1.% 2.2.% 2.3.% 2.4.% 2.5.%,$(KERN_VER)),)
     55KERN_VER ?= $(shell uname -r)
     56 ifneq ($(filter-out 1.% 2.0.% 2.1.% 2.2.% 2.3.% 2.4.% 2.5.%,$(KERN_VER)),)
    5757
    5858vboxdrv:
     
    115115install: install-vboxdrv install-vboxnetflt install-vboxnetadp install-vboxpci
    116116
    117 else
     117# Look for wrapper modules, sorting them so vmmr0 is first.
     118VBOX_WRAPPER_DIRS := $(notdir $(wildcard $(CURDIR)/vbox_*))
     119  ifneq ($(VBOX_WRAPPER_DIRS),)
     120VBOX_WRAPPER_DIRS := $(filter vbox_vmmr0,$(VBOX_WRAPPER_DIRS)) $(sort $(filter-out vbox_vmmr0,$(VBOX_WRAPPER_DIRS)))
     121  endif
     122  define wrapper_template
     123$(wrapper): $(subst $(wrapper),,vbox_vmmr0)
     124        $$(MAKE) KBUILD_VERBOSE=$$(KBUILD_VERBOSE) -C $(wrapper)/
     125
     126load-$(wrapper): $(if $(eq $(wrapper),vbox_vmmr0),,load-vbox_vmmr0)
     127        @if ! grep -q "^$(wrapper) " /proc/modules; then \
     128        echo "Loading $(wrapper)..."; \
     129                /sbin/insmod $(wrapper)/$(wrapper).ko; \
     130        else \
     131        echo "Skipping loading $(wrapper) module (already loaded)."; \
     132        fi
     133
     134unload-$(wrapper):
     135        @if grep -q "^$(wrapper) " /proc/modules; then \
     136        echo "Unloading $(wrapper)..."; \
     137                /sbin/rmmod $(wrapper)/$(wrapper).ko; \
     138        fi
     139  endef
     140$(foreach wrapper,$(VBOX_WRAPPER_DIRS), $(eval $(wrapper_template)))
     141
     142wrappers:       $(VBOX_WRAPPER_DIRS)
     143load-wrappers: $(addprefix load-,$(VBOX_WRAPPER_DIRS))
     144unload-wrappers:
     145        @for module in $(filter-out vbox_vmmr0,$(VBOX_WRAPPER_DIRS)) $(filter vbox_vmmr0,$(VBOX_WRAPPER_DIRS)); \
     146        do \
     147                if grep -q "^$${module} " /proc/modules; then \
     148                        echo "Unloading $${module}..."; \
     149                if \
     150        done
     151
     152buildid:
     153        @for module in $(foreach module,vboxdrv vboxnetflt vboxnetadp $(VBOX_WRAPPER_DIRS),$(module)/$(module).ko); \
     154        do \
     155                buildid=`readelf -n $${module} | sed -ne 's/^.*Build ID: *\([[:xdigit:]][[:xdigit:]]\)\(.*\)$$/\1\/\2/p' `; \
     156                if [ -n "$${buildid}" ]; then \
     157                        mkdir -p ~/.debug/.build-id/`dirname $${buildid}`; \
     158                        ln -sfn -- "$(CURDIR)/$${module}" ~/.debug/.build-id/$${buildid}; \
     159                else \
     160                        echo "warning: No build ID for $${module}}"; \
     161                fi \
     162        done
     163
     164.PHONY: wrappers load-wrappers unload-wrappers buildid $(VBOX_WRAPPER_DIRS) \
     165        $(addprefix load-,$(VBOX_WRAPPER_DIRS)) $(addprefix unload-,$(VBOX_WRAPPER_DIRS))
     166
     167 else # Too old:
     168
     169VBOX_WRAPPER_DIRS :=
    118170
    119171vboxdrv:
     
    122174vboxpci:
    123175install:
    124 
    125 endif
     176wrappers:
     177load-wrappers:
     178unload-wrappers:
     179buildid-wrappers:
     180
     181 endif
    126182
    127183clean-vboxdrv:
     
    169225
    170226endif # ! KERNELRELEASE
     227
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette