• Javier Martinez Canillas's avatar
    ACPI: Fix build errors due objects compiled unconditionally · 08dc7c7e
    Javier Martinez Canillas authored
    If the CONFIG_ACPI Kconfig symbol is not enabled and a partial build is
    attempted, compile errors will happen due missing types and identifiers.
    
    This can be easily reproduced with the following commands:
    
    $ export CROSS_COMPILE="arm-linux-gnueabihf-" ARCH=arm
    $ make allmodconfig
    $ make M=drivers/acpi/
      CC      drivers/acpi//tables.o
    drivers/acpi//tables.c:235:3: warning: 'struct acpi_subtable_proc' declared inside parameter list
       unsigned int max_entries)
       ^
    drivers/acpi//tables.c:235:3: warning: its scope is only this definition or declaration, which is probably not what you want
    drivers/acpi//tables.c: In function 'acpi_parse_entries_array':
    drivers/acpi//tables.c:269:4: error: invalid use of undefined type 'struct acpi_subtable_proc'
    ...
    scripts/Makefile.build:258: recipe for target 'drivers/acpi//tables.o' failed
    make[1]: *** [drivers/acpi//tables.o] Error 1
    Makefile:1401: recipe for target '_module_drivers/acpi/' failed
    make: *** [_module_drivers/acpi/] Error 2
    
    This is because objects are tried to be built unconditionally even when
    CONFIG_ACPI is not enabled. This is usually not a problem since arches'
    Kconfig sources drivers/acpi/Kconfig directly and also selects ACPI but
    the Makefile should conditionally build the objects as well to prevent
    these build errors.
    Signed-off-by: default avatarJavier Martinez Canillas <javier@osg.samsung.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    08dc7c7e
Makefile 2.84 KB