All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [Bug 14996] New: Too many directories in BR2_EXTERNAL causes hang during make
@ 2022-09-16 13:58 bugzilla
  2022-09-16 16:16 ` [Buildroot] [Bug 14996] " bugzilla
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: bugzilla @ 2022-09-16 13:58 UTC (permalink / raw)
  To: buildroot

https://bugs.busybox.net/show_bug.cgi?id=14996

            Bug ID: 14996
           Summary: Too many directories in BR2_EXTERNAL causes hang
                    during make
           Product: buildroot
           Version: unspecified
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P5
         Component: Other
          Assignee: unassigned@buildroot.uclibc.org
          Reporter: david.lawson1@tx.rr.com
                CC: buildroot@uclibc.org
  Target Milestone: ---

The top level Makefile in buildroot has a recursive rule which causes the
appearance of a hang as the number of directories in BR2_EXTERNAL increases.
When the number of directories in BR2_EXTERNAL is small, the recursion occurs,
but make detects the recursion and determines the target does not have to be
remade. This allows make to progress.

This is the failing rule:

define percent_defconfig
# Override the BR2_DEFCONFIG from COMMON_CONFIG_ENV with the new defconfig
%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig
outputmakefile
        @$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \
                $$< --defconfig=$(1)/configs/$$@ $$(CONFIG_CONFIG_IN)
endef
$(eval $(foreach d,$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)),$(call
percent_defconfig,$(d))$(sep)))

The rule for %defconfig is created for each directory in BR2_EXTERNAL. When the
rule is matched, the stem is 'defconfig_name'. The second prerequisite is
expanded to $(1)/configs/defconfig_name_defconfig. The rule, and all of the
other rules defined by this macro, are invoked again, but the stem is now
$(1)/configs/defconfig_name_defconfig. The second prerequisite is now expanded
to $(1)/configs/($1)/configs/defconfig_name_defconfig. This expansion continues
until make detects the infinite recursion.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2023-01-07 20:11 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-16 13:58 [Buildroot] [Bug 14996] New: Too many directories in BR2_EXTERNAL causes hang during make bugzilla
2022-09-16 16:16 ` [Buildroot] [Bug 14996] " bugzilla
2022-09-16 16:53 ` bugzilla
2022-09-16 17:39 ` bugzilla
2022-09-16 17:56 ` bugzilla
2022-09-16 18:40 ` bugzilla
2022-09-16 18:45 ` bugzilla
2022-09-16 19:19 ` bugzilla
2022-09-17  6:54 ` bugzilla
2022-09-17  7:36 ` bugzilla
2022-09-19 17:27 ` bugzilla
2022-09-19 21:06 ` bugzilla
2022-09-20 19:58 ` bugzilla
2022-09-20 20:00 ` bugzilla
2023-01-07 20:11 ` bugzilla

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.