[PATCH 00/12] Remove unneeded build directory traversals

STALE3737d

Revision v1 of 4 in this series.

28 messages, 6 authors, 2016-06-21 · open the first message on its own page

[PATCH 00/12] Remove unneeded build directory traversals

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:01:59

Hello all,

I was building a kernel for x86 and noticed Make still descended into
directories like drivers/gpu/drm/hisilicon, this seems kind of odd given
nothing will be built here. It looks to be due to some directories being
included in obj-y unconditionally instead of only when the relevant
CONFIG_ is set.

These patches are split by subsystem in-case, for some reason, a file in
a directory does need to be built, I believe I have checked for all
instances of this, but a quick review from some maintainers would be nice.

Thanks,
Andrew

Andrew F. Davis (12):
  gpio: Only descend into gpio directory when CONFIG_GPIOLIB is set
  pwm: Only descend into pwm directory when CONFIG_PWM is set
  amba: Only descend into amba directory when CONFIG_ARM_AMBA is set
  NFC: Only descend into nfc directory when CONFIG_NFC is set
  macintosh: Only descend into directory when CONFIG_MACINTOSH_DRIVERS
    is set
  hsi: Only descend into hsi directory when CONFIG_HSI is set
  auxdisplay: Only descend into directory when CONFIG_AUXDISPLAY is set
  i2c: Only descend into i2c directory when CONFIG_I2C is set
  [media] Only descend into directory when CONFIG_MEDIA_SUPPORT is set
  lguest: Only descend into lguest directory when CONFIG_LGUEST is set
  mmc: Only descend into mmc directory when CONFIG_MMC is set
  leds: Only descend into leds directory when CONFIG_NEW_LEDS is set

 drivers/Makefile | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

-- 
2.8.3

[PATCH 01/12] gpio: Only descend into gpio directory when CONFIG_GPIOLIB is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:00

When CONFIG_GPIOLIB is not set make will still descend into the gpio
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 0b6f3d6..50f6131 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -12,7 +12,7 @@ obj-$(CONFIG_GENERIC_PHY)	+= phy/
 
 # GPIO must come after pinctrl as gpios may need to mux pins etc
 obj-$(CONFIG_PINCTRL)		+= pinctrl/
-obj-y				+= gpio/
+obj-$(CONFIG_GPIOLIB)		+= gpio/
 obj-y				+= pwm/
 obj-$(CONFIG_PCI)		+= pci/
 obj-$(CONFIG_PARISC)		+= parisc/
-- 
2.8.3

[PATCH 02/12] pwm: Only descend into pwm directory when CONFIG_PWM is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:01

When CONFIG_PWM is not set make will still descend into the pwm
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 50f6131..01e707b 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -13,7 +13,7 @@ obj-$(CONFIG_GENERIC_PHY)	+= phy/
 # GPIO must come after pinctrl as gpios may need to mux pins etc
 obj-$(CONFIG_PINCTRL)		+= pinctrl/
 obj-$(CONFIG_GPIOLIB)		+= gpio/
-obj-y				+= pwm/
+obj-$(CONFIG_PWM)		+= pwm/
 obj-$(CONFIG_PCI)		+= pci/
 obj-$(CONFIG_PARISC)		+= parisc/
 obj-$(CONFIG_RAPIDIO)		+= rapidio/
-- 
2.8.3

[PATCH 03/12] amba: Only descend into amba directory when CONFIG_ARM_AMBA is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:02

When CONFIG_ARM_AMBA is not set make will still descend into the amba
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 01e707b..841c2dc 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -28,7 +28,7 @@ obj-$(CONFIG_SFI)		+= sfi/
 # PnP must come after ACPI since it will eventually need to check if acpi
 # was used and do nothing if so
 obj-$(CONFIG_PNP)		+= pnp/
-obj-y				+= amba/
+obj-$(CONFIG_ARM_AMBA)		+= amba/
 # Many drivers will want to use DMA so this has to be made available
 # really early.
 obj-$(CONFIG_DMADEVICES)	+= dma/
-- 
2.8.3

[PATCH 04/12] NFC: Only descend into nfc directory when CONFIG_NFC is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:03

When CONFIG_NFC is not set make will still descend into the nfc
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 841c2dc..4a885d8 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -64,7 +64,11 @@ obj-$(CONFIG_FB_INTEL)          += video/fbdev/intelfb/
 
 obj-$(CONFIG_PARPORT)		+= parport/
 obj-$(CONFIG_NVM)		+= lightnvm/
-obj-y				+= base/ block/ misc/ mfd/ nfc/
+obj-y				+= base/
+obj-y				+= block/
+obj-y				+= misc/
+obj-y				+= mfd/
+obj-$(CONFIG_NFC)		+= nfc/
 obj-$(CONFIG_LIBNVDIMM)		+= nvdimm/
 obj-$(CONFIG_DEV_DAX)		+= dax/
 obj-$(CONFIG_DMA_SHARED_BUFFER) += dma-buf/
-- 
2.8.3

[PATCH 05/12] macintosh: Only descend into directory when CONFIG_MACINTOSH_DRIVERS is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:04

When CONFIG_MACINTOSH_DRIVERS is not set make will still descend into the
macintosh directory but nothing will be built. This produces unneeded
build artifacts and messages in addition to slowing the build.
Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 4a885d8..5be5619 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -73,7 +73,7 @@ obj-$(CONFIG_LIBNVDIMM)		+= nvdimm/
 obj-$(CONFIG_DEV_DAX)		+= dax/
 obj-$(CONFIG_DMA_SHARED_BUFFER) += dma-buf/
 obj-$(CONFIG_NUBUS)		+= nubus/
-obj-y				+= macintosh/
+obj-$(CONFIG_MACINTOSH_DRIVERS)	+= macintosh/
 obj-$(CONFIG_IDE)		+= ide/
 obj-$(CONFIG_SCSI)		+= scsi/
 obj-y				+= nvme/
-- 
2.8.3

[PATCH 06/12] hsi: Only descend into hsi directory when CONFIG_HSI is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:05

When CONFIG_HSI is not set make will still descend into the hsi
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 5be5619..78162ba 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -82,7 +82,7 @@ obj-$(CONFIG_TARGET_CORE)	+= target/
 obj-$(CONFIG_MTD)		+= mtd/
 obj-$(CONFIG_SPI)		+= spi/
 obj-$(CONFIG_SPMI)		+= spmi/
-obj-y				+= hsi/
+obj-$(CONFIG_HSI)		+= hsi/
 obj-y				+= net/
 obj-$(CONFIG_ATM)		+= atm/
 obj-$(CONFIG_FUSION)		+= message/
-- 
2.8.3

[PATCH 07/12] auxdisplay: Only descend into directory when CONFIG_AUXDISPLAY is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:06

When CONFIG_AUXDISPLAY is not set make will still descend into the
auxdisplay directory but nothing will be built. This produces unneeded
build artifacts and messages in addition to slowing the build.
Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 78162ba..b4202d0 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -90,7 +90,7 @@ obj-y				+= firewire/
 obj-$(CONFIG_UIO)		+= uio/
 obj-$(CONFIG_VFIO)		+= vfio/
 obj-y				+= cdrom/
-obj-y				+= auxdisplay/
+obj-$(CONFIG_AUXDISPLAY)	+= auxdisplay/
 obj-$(CONFIG_PCCARD)		+= pcmcia/
 obj-$(CONFIG_DIO)		+= dio/
 obj-$(CONFIG_SBUS)		+= sbus/
-- 
2.8.3

[PATCH 08/12] i2c: Only descend into i2c directory when CONFIG_I2C is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:07

When CONFIG_I2C is not set make will still descend into the i2c
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index b4202d0..2d99d4e 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -107,7 +107,8 @@ obj-$(CONFIG_SERIO)		+= input/serio/
 obj-$(CONFIG_GAMEPORT)		+= input/gameport/
 obj-$(CONFIG_INPUT)		+= input/
 obj-$(CONFIG_RTC_LIB)		+= rtc/
-obj-y				+= i2c/ media/
+obj-$(CONFIG_I2C)		+= i2c/
+obj-y				+= media/
 obj-$(CONFIG_PPS)		+= pps/
 obj-$(CONFIG_PTP_1588_CLOCK)	+= ptp/
 obj-$(CONFIG_W1)		+= w1/
-- 
2.8.3

[PATCH 09/12] [media] Only descend into directory when CONFIG_MEDIA_SUPPORT is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:08

When CONFIG_MEDIA_SUPPORT is not set make will still descend into the
media directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 2d99d4e..19305e0 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -108,7 +108,7 @@ obj-$(CONFIG_GAMEPORT)		+= input/gameport/
 obj-$(CONFIG_INPUT)		+= input/
 obj-$(CONFIG_RTC_LIB)		+= rtc/
 obj-$(CONFIG_I2C)		+= i2c/
-obj-y				+= media/
+obj-$(CONFIG_MEDIA_SUPPORT)	+= media/
 obj-$(CONFIG_PPS)		+= pps/
 obj-$(CONFIG_PTP_1588_CLOCK)	+= ptp/
 obj-$(CONFIG_W1)		+= w1/
-- 
2.8.3

[PATCH 10/12] lguest: Only descend into lguest directory when CONFIG_LGUEST is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:09

When CONFIG_LGUEST is not set make will still descend into the lguest
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 19305e0..b178e2f 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -122,7 +122,7 @@ obj-$(CONFIG_ACCESSIBILITY)	+= accessibility/
 obj-$(CONFIG_ISDN)		+= isdn/
 obj-$(CONFIG_EDAC)		+= edac/
 obj-$(CONFIG_EISA)		+= eisa/
-obj-y				+= lguest/
+obj-$(CONFIG_LGUEST)		+= lguest/
 obj-$(CONFIG_CPU_FREQ)		+= cpufreq/
 obj-$(CONFIG_CPU_IDLE)		+= cpuidle/
 obj-y				+= mmc/
-- 
2.8.3

[PATCH 11/12] mmc: Only descend into mmc directory when CONFIG_MMC is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:10

When CONFIG_MMC is not set make will still descend into the mmc
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index b178e2f..567e32c 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -125,7 +125,7 @@ obj-$(CONFIG_EISA)		+= eisa/
 obj-$(CONFIG_LGUEST)		+= lguest/
 obj-$(CONFIG_CPU_FREQ)		+= cpufreq/
 obj-$(CONFIG_CPU_IDLE)		+= cpuidle/
-obj-y				+= mmc/
+obj-$(CONFIG_MMC)		+= mmc/
 obj-$(CONFIG_MEMSTICK)		+= memstick/
 obj-y				+= leds/
 obj-$(CONFIG_INFINIBAND)	+= infiniband/
-- 
2.8.3

[PATCH 12/12] leds: Only descend into leds directory when CONFIG_NEW_LEDS is set

From: Andrew F. Davis <hidden>
Date: 2016-06-13 20:02:11

When CONFIG_NEW_LEDS is not set make will still descend into the leds
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 567e32c..fa514d5 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -127,7 +127,7 @@ obj-$(CONFIG_CPU_FREQ)		+= cpufreq/
 obj-$(CONFIG_CPU_IDLE)		+= cpuidle/
 obj-$(CONFIG_MMC)		+= mmc/
 obj-$(CONFIG_MEMSTICK)		+= memstick/
-obj-y				+= leds/
+obj-$(CONFIG_NEW_LEDS)		+= leds/
 obj-$(CONFIG_INFINIBAND)	+= infiniband/
 obj-$(CONFIG_SGI_SN)		+= sn/
 obj-y				+= firmware/
-- 
2.8.3

Re: [PATCH 08/12] i2c: Only descend into i2c directory when CONFIG_I2C is set

From: kbuild test robot <hidden>
Date: 2016-06-14 00:19:23

Hi,

[auto build test ERROR on gpio/for-next]
[also build test ERROR on v4.7-rc3 next-20160609]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Andrew-F-Davis/gpio-Only-descend-into-gpio-directory-when-CONFIG_GPIOLIB-is-set/20160614-061705
base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: m32r-m32104ut_defconfig (attached as .config)
compiler: m32r-linux-gcc (GCC) 4.9.0
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=m32r 

All errors (new ones prefixed by >>):
quoted
ERROR: "__i2c_board_list" [drivers/i2c/i2c-core.ko] undefined!
ERROR: "__i2c_board_lock" [drivers/i2c/i2c-core.ko] undefined!
ERROR: "__i2c_first_dynamic_bus_num" [drivers/i2c/i2c-core.ko] undefined!
---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Re: [PATCH 12/12] leds: Only descend into leds directory when CONFIG_NEW_LEDS is set

From: kbuild test robot <hidden>
Date: 2016-06-14 00:20:46

Hi,

[auto build test ERROR on gpio/for-next]
[also build test ERROR on v4.7-rc3 next-20160609]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Andrew-F-Davis/gpio-Only-descend-into-gpio-directory-when-CONFIG_GPIOLIB-is-set/20160614-061705
base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: arm-s3c6400_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 5.3.1-8) 5.3.1 20160205
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm 

All errors (new ones prefixed by >>):

   arch/arm/mach-s3c64xx/built-in.o: In function `crag6410_machine_init':
quoted
arch/arm/mach-s3c64xx/mach-crag6410.c:854: undefined reference to `gpio_led_register_device'
vim +854 arch/arm/mach-s3c64xx/mach-crag6410.c

e1a3c74f Mark Brown     2011-05-06  838  	s3c_sdhci2_set_platdata(&crag6410_hsmmc2_pdata);
e1a3c74f Mark Brown     2011-05-06  839  
e1a3c74f Mark Brown     2011-05-06  840  	s3c_i2c0_set_platdata(&i2c0_pdata);
8351c7aa Mark Brown     2011-12-02  841  	s3c_i2c1_set_platdata(&i2c1_pdata);
e1a3c74f Mark Brown     2011-05-06  842  	s3c_fb_set_platdata(&crag6410_lcd_pdata);
1f91b4cc Felipe Balbi   2015-08-06  843  	dwc2_hsotg_set_platdata(&crag6410_hsotg_pdata);
e1a3c74f Mark Brown     2011-05-06  844  
e1a3c74f Mark Brown     2011-05-06  845  	i2c_register_board_info(0, i2c_devs0, ARRAY_SIZE(i2c_devs0));
e1a3c74f Mark Brown     2011-05-06  846  	i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1));
e1a3c74f Mark Brown     2011-05-06  847  
e1a3c74f Mark Brown     2011-05-06  848  	samsung_keypad_set_platdata(&crag6410_keypad_data);
479535ed Mark Brown     2012-10-17  849  	s3c64xx_spi0_set_platdata(NULL, 0, 2);
e1a3c74f Mark Brown     2011-05-06  850  
799fbf8c Thierry Reding 2015-10-13  851  	pwm_add_table(crag6410_pwm_lookup, ARRAY_SIZE(crag6410_pwm_lookup));
e1a3c74f Mark Brown     2011-05-06  852  	platform_add_devices(crag6410_devices, ARRAY_SIZE(crag6410_devices));
e1a3c74f Mark Brown     2011-05-06  853  
66211f98 Mark Brown     2011-12-29 @854  	gpio_led_register_device(-1, &gpio_leds_pdata);
66211f98 Mark Brown     2011-12-29  855  
ae24c263 Mark Brown     2011-06-22  856  	regulator_has_full_constraints();
ae24c263 Mark Brown     2011-06-22  857  
c656c306 Mark Brown     2011-12-08  858  	s3c64xx_pm_init();
e1a3c74f Mark Brown     2011-05-06  859  }
e1a3c74f Mark Brown     2011-05-06  860  
e1a3c74f Mark Brown     2011-05-06  861  MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410")
e1a3c74f Mark Brown     2011-05-06  862  	/* Maintainer: Mark Brown [off-list ref] */

:::::: The code at line 854 was first introduced by commit
:::::: 66211f98d611056bf5fe918bbda37c636688574e ARM: S3C64XX: Support GPIO LEDs on Cragganmore

:::::: TO: Mark Brown [off-list ref]
:::::: CC: Kukjin Kim [off-list ref]

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Re: [PATCH 06/12] hsi: Only descend into hsi directory when CONFIG_HSI is set

From: kbuild test robot <hidden>
Date: 2016-06-14 00:37:46

Hi,

[auto build test ERROR on gpio/for-next]
[also build test ERROR on v4.7-rc3 next-20160609]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Andrew-F-Davis/gpio-Only-descend-into-gpio-directory-when-CONFIG_GPIOLIB-is-set/20160614-061705
base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: i386-randconfig-sb0-06140627 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):
quoted
ERROR: "hsi_board_list" [drivers/hsi/hsi.ko] undefined!
---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Re: [PATCH 11/12] mmc: Only descend into mmc directory when CONFIG_MMC is set

From: kbuild test robot <hidden>
Date: 2016-06-14 01:34:38

Hi,

[auto build test ERROR on gpio/for-next]
[also build test ERROR on v4.7-rc3 next-20160609]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Andrew-F-Davis/gpio-Only-descend-into-gpio-directory-when-CONFIG_GPIOLIB-is-set/20160614-061705
base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
config: i386-randconfig-sb0-06140627 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):
quoted
ERROR: "sdhci_pci_get_data" [drivers/mmc/host/sdhci-pci.ko] undefined!
ERROR: "sdhci_pci_spt_drive_strength" [drivers/mmc/host/sdhci-pci.ko] undefined!
   ERROR: "hsi_board_list" [drivers/hsi/hsi.ko] undefined!

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Re: [PATCH 01/12] gpio: Only descend into gpio directory when CONFIG_GPIOLIB is set

From: Linus Walleij <hidden>
Date: 2016-06-14 06:58:54

On Mon, Jun 13, 2016 at 10:02 PM, Andrew F. Davis [off-list ref] wrote:
When CONFIG_GPIOLIB is not set make will still descend into the gpio
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
Patch applied. Strange that this went unnoticed for years.

Yours,
Linus Walleij

[PATCH] hsi: Build hsi_boardinfo.c into hsi core if enabled

From: Andrew F. Davis <hidden>
Date: 2016-06-14 16:13:56

If the HSI core is built as a module hsi_boardinfo may still
be built-in as its Kconfig type is bool, which can cause build
issues. Fix this by building this code into the HSI core when
enabled.

Reported-by: kbuild test robot <redacted>
Signed-off-by: Andrew F. Davis <redacted>
---
This build error seems to be due to Kconfig symbol CONFIG_HSI_BOARDINFO
being a bool but depending on a tristate (CONFIG_HSI). This is normally
okay when it is just a flag to enable a feature in source, but the
helper code file hsi_boardinfo.c is built as a separate entity when
enabled. This patch is probably how it was intended, and is more like
how others do this kind of thing.

This patch should be applied before the parent patch:

 drivers/hsi/Makefile              | 3 ++-
 drivers/hsi/{hsi.c => hsi_core.c} | 0
 2 files changed, 2 insertions(+), 1 deletion(-)
 rename drivers/hsi/{hsi.c => hsi_core.c} (100%)
diff --git a/drivers/hsi/Makefile b/drivers/hsi/Makefile
index 360371e..9694478 100644
--- a/drivers/hsi/Makefile
+++ b/drivers/hsi/Makefile
@@ -1,7 +1,8 @@
 #
 # Makefile for HSI
 #
-obj-$(CONFIG_HSI_BOARDINFO)    += hsi_boardinfo.o
 obj-$(CONFIG_HSI)              += hsi.o
+hsi-objs                       := hsi_core.o
+hsi-$(CONFIG_HSI_BOARDINFO)    += hsi_boardinfo.o
 obj-y                          += controllers/
 obj-y                          += clients/
diff --git a/drivers/hsi/hsi.c b/drivers/hsi/hsi_core.c
similarity index 100%
rename from drivers/hsi/hsi.c
rename to drivers/hsi/hsi_core.c
-- 
2.8.3

Re: [PATCH 12/12] leds: Only descend into leds directory when CONFIG_NEW_LEDS is set

From: Jacek Anaszewski <hidden>
Date: 2016-06-15 06:49:00

Hi Andrew,

Thanks for the patch.

Please address the issue [1] raised by test bot and resubmit.

Thanks,
Jacek Anaszewski

[1] https://lkml.org/lkml/2016/6/13/1091

On 06/13/2016 10:02 PM, Andrew F. Davis wrote:
quoted hunk
When CONFIG_NEW_LEDS is not set make will still descend into the leds
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
  drivers/Makefile | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 567e32c..fa514d5 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -127,7 +127,7 @@ obj-$(CONFIG_CPU_FREQ)		+= cpufreq/
  obj-$(CONFIG_CPU_IDLE)		+= cpuidle/
  obj-$(CONFIG_MMC)		+= mmc/
  obj-$(CONFIG_MEMSTICK)		+= memstick/
-obj-y				+= leds/
+obj-$(CONFIG_NEW_LEDS)		+= leds/
  obj-$(CONFIG_INFINIBAND)	+= infiniband/
  obj-$(CONFIG_SGI_SN)		+= sn/
  obj-y				+= firmware/

-- 
Best regards,
Jacek Anaszewski

Re: [PATCH] hsi: Build hsi_boardinfo.c into hsi core if enabled

From: Sebastian Reichel <sre@kernel.org>
Date: 2016-06-15 12:48:51

Hi Andrew,

On Tue, Jun 14, 2016 at 11:13:04AM -0500, Andrew F. Davis wrote:
If the HSI core is built as a module hsi_boardinfo may still
be built-in as its Kconfig type is bool, which can cause build
issues. Fix this by building this code into the HSI core when
enabled.

Reported-by: kbuild test robot <redacted>
Signed-off-by: Andrew F. Davis <redacted>
---
This build error seems to be due to Kconfig symbol CONFIG_HSI_BOARDINFO
being a bool but depending on a tristate (CONFIG_HSI). This is normally
okay when it is just a flag to enable a feature in source, but the
helper code file hsi_boardinfo.c is built as a separate entity when
enabled. This patch is probably how it was intended, and is more like
how others do this kind of thing.

This patch should be applied before the parent patch:
Thanks, I applied both patches.

-- Sebastian

Re: [PATCH 12/12] leds: Only descend into leds directory when CONFIG_NEW_LEDS is set

From: Andrew F. Davis <hidden>
Date: 2016-06-17 22:47:06

On 06/15/2016 01:48 AM, Jacek Anaszewski wrote:
Hi Andrew,

Thanks for the patch.

Please address the issue [1] raised by test bot and resubmit.

Thanks,
Jacek Anaszewski

[1] https://lkml.org/lkml/2016/6/13/1091
It looks like some systems use 'gpio_led_register_device' to make an
in-memory copy of their LED device table so the original can be removed
as .init.rodata. This doesn't necessarily depend on the LED subsystem
but it kind of seems useless when the rest of the subsystem is disabled.

One solution could be to use a dummy 'gpio_led_register_device' when the
subsystem is not enabled. Another is just to remove the five or so uses
of 'gpio_led_register_device' and have those systems register LED device
tables like other systems do.

If nether of these are acceptable then this patch can be dropped from
this series for now.

Thanks,
Andrew
On 06/13/2016 10:02 PM, Andrew F. Davis wrote:
quoted
When CONFIG_NEW_LEDS is not set make will still descend into the leds
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
  drivers/Makefile | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 567e32c..fa514d5 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -127,7 +127,7 @@ obj-$(CONFIG_CPU_FREQ)        += cpufreq/
  obj-$(CONFIG_CPU_IDLE)        += cpuidle/
  obj-$(CONFIG_MMC)        += mmc/
  obj-$(CONFIG_MEMSTICK)        += memstick/
-obj-y                += leds/
+obj-$(CONFIG_NEW_LEDS)        += leds/
  obj-$(CONFIG_INFINIBAND)    += infiniband/
  obj-$(CONFIG_SGI_SN)        += sn/
  obj-y                += firmware/

Re: [PATCH 12/12] leds: Only descend into leds directory when CONFIG_NEW_LEDS is set

From: Jacek Anaszewski <hidden>
Date: 2016-06-20 07:55:30

On 06/18/2016 12:46 AM, Andrew F. Davis wrote:
On 06/15/2016 01:48 AM, Jacek Anaszewski wrote:
quoted
Hi Andrew,

Thanks for the patch.

Please address the issue [1] raised by test bot and resubmit.

Thanks,
Jacek Anaszewski

[1] https://lkml.org/lkml/2016/6/13/1091
It looks like some systems use 'gpio_led_register_device' to make an
in-memory copy of their LED device table so the original can be removed
as .init.rodata. This doesn't necessarily depend on the LED subsystem
but it kind of seems useless when the rest of the subsystem is disabled.

One solution could be to use a dummy 'gpio_led_register_device' when the
subsystem is not enabled.
It sounds good. Please add a no-op version of gpio_led_register_device()
to include/leds.h, in a separate patch.

Thanks,
Jacek Anaszewski
Another is just to remove the five or so uses
of 'gpio_led_register_device' and have those systems register LED device
tables like other systems do.

If nether of these are acceptable then this patch can be dropped from
this series for now.

Thanks,
Andrew
quoted
On 06/13/2016 10:02 PM, Andrew F. Davis wrote:
quoted
When CONFIG_NEW_LEDS is not set make will still descend into the leds
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
   drivers/Makefile | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/Makefile b/drivers/Makefile
index 567e32c..fa514d5 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -127,7 +127,7 @@ obj-$(CONFIG_CPU_FREQ)        += cpufreq/
   obj-$(CONFIG_CPU_IDLE)        += cpuidle/
   obj-$(CONFIG_MMC)        += mmc/
   obj-$(CONFIG_MEMSTICK)        += memstick/
-obj-y                += leds/
+obj-$(CONFIG_NEW_LEDS)        += leds/
   obj-$(CONFIG_INFINIBAND)    += infiniband/
   obj-$(CONFIG_SGI_SN)        += sn/
   obj-y                += firmware/

[PATCH] leds: Add no-op gpio_led_register_device when LED subsystem is disabled

From: Andrew F. Davis <hidden>
Date: 2016-06-20 22:22:11

Some systems use 'gpio_led_register_device' to make an in-memory copy of
their LED device table so the original can be removed as .init.rodata.
When the LED subsystem is not enabled source in the led directory is not
built and so this function may be undefined. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 include/linux/leds.h | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/include/linux/leds.h b/include/linux/leds.h
index d2b1306..a4a3da6 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -386,8 +386,16 @@ struct gpio_led_platform_data {
                                        unsigned long *delay_off);
 };

+#ifdef CONFIG_NEW_LEDS
 struct platform_device *gpio_led_register_device(
                int id, const struct gpio_led_platform_data *pdata);
+#else
+static inline struct platform_device *gpio_led_register_device(
+               int id, const struct gpio_led_platform_data *pdata)
+{
+       return 0;
+}
+#endif

 enum cpu_led_event {
        CPU_LED_IDLE_START,     /* CPU enters idle */
-- 
2.9.0

Re: [PATCH 10/12] lguest: Only descend into lguest directory when CONFIG_LGUEST is set

From: Rusty Russell <hidden>
Date: 2016-06-21 03:19:42

"Andrew F. Davis" [off-list ref] writes:
When CONFIG_LGUEST is not set make will still descend into the lguest
directory but nothing will be built. This produces unneeded build
artifacts and messages in addition to slowing the build. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
 drivers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Applied,

Thanks!
Rusty.
quoted hunk
diff --git a/drivers/Makefile b/drivers/Makefile
index 19305e0..b178e2f 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -122,7 +122,7 @@ obj-$(CONFIG_ACCESSIBILITY)	+= accessibility/
 obj-$(CONFIG_ISDN)		+= isdn/
 obj-$(CONFIG_EDAC)		+= edac/
 obj-$(CONFIG_EISA)		+= eisa/
-obj-y				+= lguest/
+obj-$(CONFIG_LGUEST)		+= lguest/
 obj-$(CONFIG_CPU_FREQ)		+= cpufreq/
 obj-$(CONFIG_CPU_IDLE)		+= cpuidle/
 obj-y				+= mmc/
-- 
2.8.3

Re: [PATCH] leds: Add no-op gpio_led_register_device when LED subsystem is disabled

From: Jacek Anaszewski <hidden>
Date: 2016-06-21 07:12:08

Hi Andrew,

This patch doesn't apply, please rebase onto recent LED tree.

On 06/21/2016 12:13 AM, Andrew F. Davis wrote:
quoted hunk
Some systems use 'gpio_led_register_device' to make an in-memory copy of
their LED device table so the original can be removed as .init.rodata.
When the LED subsystem is not enabled source in the led directory is not
built and so this function may be undefined. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
  include/linux/leds.h | 8 ++++++++
  1 file changed, 8 insertions(+)
diff --git a/include/linux/leds.h b/include/linux/leds.h
index d2b1306..a4a3da6 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -386,8 +386,16 @@ struct gpio_led_platform_data {
                                         unsigned long *delay_off);
Currently there is some stuff here, and in fact it has been for
a long time.

Patch "[PATCH 12/12] leds: Only descend into leds directory when
CONFIG_NEW_LEDS is set" also doesn't apply.
What repository are you using?
  };

+#ifdef CONFIG_NEW_LEDS
  struct platform_device *gpio_led_register_device(
                 int id, const struct gpio_led_platform_data *pdata);
+#else
+static inline struct platform_device *gpio_led_register_device(
+               int id, const struct gpio_led_platform_data *pdata)
+{
+       return 0;
+}
+#endif

  enum cpu_led_event {
         CPU_LED_IDLE_START,     /* CPU enters idle */

-- 
Best regards,
Jacek Anaszewski

Re: [PATCH] leds: Add no-op gpio_led_register_device when LED subsystem is disabled

From: Andrew F. Davis <hidden>
Date: 2016-06-21 12:01:35

On 06/21/2016 02:09 AM, Jacek Anaszewski wrote:
Hi Andrew,

This patch doesn't apply, please rebase onto recent LED tree.

On 06/21/2016 12:13 AM, Andrew F. Davis wrote:
quoted
Some systems use 'gpio_led_register_device' to make an in-memory copy of
their LED device table so the original can be removed as .init.rodata.
When the LED subsystem is not enabled source in the led directory is not
built and so this function may be undefined. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
  include/linux/leds.h | 8 ++++++++
  1 file changed, 8 insertions(+)
diff --git a/include/linux/leds.h b/include/linux/leds.h
index d2b1306..a4a3da6 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -386,8 +386,16 @@ struct gpio_led_platform_data {
                                         unsigned long *delay_off);
Currently there is some stuff here, and in fact it has been for
a long time.

Patch "[PATCH 12/12] leds: Only descend into leds directory when
CONFIG_NEW_LEDS is set" also doesn't apply.
What repository are you using?
v4.7-rc4, it may not apply due to the surrounding lines being changed in
the other patches which may not be applied to your tree. It is a single
line change per patch so hopefully the merge conflict resolutions will
be trivial.

A better solution could have been getting an ack from each maintainer
and having someone pull the whole series into one tree, but parts have
already been picked so it may be a little late for that.
quoted
  };

+#ifdef CONFIG_NEW_LEDS
  struct platform_device *gpio_led_register_device(
                 int id, const struct gpio_led_platform_data *pdata);
+#else
+static inline struct platform_device *gpio_led_register_device(
+               int id, const struct gpio_led_platform_data *pdata)
+{
+       return 0;
+}
+#endif

  enum cpu_led_event {
         CPU_LED_IDLE_START,     /* CPU enters idle */

Re: [PATCH] leds: Add no-op gpio_led_register_device when LED subsystem is disabled

From: Jacek Anaszewski <hidden>
Date: 2016-06-21 13:11:11

On 06/21/2016 01:48 PM, Andrew F. Davis wrote:
On 06/21/2016 02:09 AM, Jacek Anaszewski wrote:
quoted
Hi Andrew,

This patch doesn't apply, please rebase onto recent LED tree.

On 06/21/2016 12:13 AM, Andrew F. Davis wrote:
quoted
Some systems use 'gpio_led_register_device' to make an in-memory copy of
their LED device table so the original can be removed as .init.rodata.
When the LED subsystem is not enabled source in the led directory is not
built and so this function may be undefined. Fix this here.

Signed-off-by: Andrew F. Davis <redacted>
---
   include/linux/leds.h | 8 ++++++++
   1 file changed, 8 insertions(+)
diff --git a/include/linux/leds.h b/include/linux/leds.h
index d2b1306..a4a3da6 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -386,8 +386,16 @@ struct gpio_led_platform_data {
                                          unsigned long *delay_off);
Currently there is some stuff here, and in fact it has been for
a long time.

Patch "[PATCH 12/12] leds: Only descend into leds directory when
CONFIG_NEW_LEDS is set" also doesn't apply.
What repository are you using?
v4.7-rc4, it may not apply due to the surrounding lines being changed in
the other patches which may not be applied to your tree. It is a single
line change per patch so hopefully the merge conflict resolutions will
be trivial.

A better solution could have been getting an ack from each maintainer
and having someone pull the whole series into one tree, but parts have
already been picked so it may be a little late for that.
OK, I resolved the issues and applied, thanks.
quoted
quoted
   };

+#ifdef CONFIG_NEW_LEDS
   struct platform_device *gpio_led_register_device(
                  int id, const struct gpio_led_platform_data *pdata);
+#else
+static inline struct platform_device *gpio_led_register_device(
+               int id, const struct gpio_led_platform_data *pdata)
+{
+       return 0;
+}
+#endif

   enum cpu_led_event {
          CPU_LED_IDLE_START,     /* CPU enters idle */

-- 
Best regards,
Jacek Anaszewski
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help