# Makefile for OpenWrt # # Copyright (C) 2007 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # TOPDIR:=${CURDIR} LC_ALL:=C LANG:=C TZ:=UTC export TOPDIR LC_ALL LANG TZ empty:= space:= $(empty) $(empty) $(if $(findstring $(space),$(TOPDIR)),$(error ERROR: The path to the OpenWrt directory must not include any spaces)) world: DISTRO_PKG_CONFIG:=$(shell which -a pkg-config | grep -E '\/usr' | head -n 1) export PATH:=$(TOPDIR)/staging_dir/host/bin:$(PATH) ifneq ($(OPENWRT_BUILD),1) _SINGLE=export MAKEFLAGS=$(space); override OPENWRT_BUILD=1 export OPENWRT_BUILD GREP_OPTIONS= export GREP_OPTIONS CDPATH= export CDPATH include $(TOPDIR)/include/debug.mk include $(TOPDIR)/include/depends.mk include $(TOPDIR)/include/toplevel.mk else include rules.mk include $(INCLUDE_DIR)/depends.mk include $(INCLUDE_DIR)/subdir.mk include target/Makefile include package/Makefile include tools/Makefile include toolchain/Makefile $(toolchain/stamp-compile): $(tools/stamp-compile) $(target/stamp-compile): $(toolchain/stamp-compile) $(tools/stamp-compile) $(BUILD_DIR)/.prepared $(package/stamp-compile): $(target/stamp-compile) $(package/stamp-cleanup) $(package/stamp-install): $(package/stamp-compile) $(target/stamp-install): $(package/stamp-compile) $(package/stamp-install) check: $(tools/stamp-check) $(toolchain/stamp-check) $(package/stamp-check) printdb: @true prepare: $(target/stamp-compile) clean: FORCE rm -rf $(BUILD_DIR) $(STAGING_DIR) $(BIN_DIR) $(OUTPUT_DIR)/packages/$(ARCH_PACKAGES) $(BUILD_LOG_DIR) $(TOPDIR)/staging_dir/packages dirclean: clean rm -rf $(STAGING_DIR_HOST) $(STAGING_DIR_HOSTPKG) $(TOOLCHAIN_DIR) $(BUILD_DIR_BASE)/host $(BUILD_DIR_BASE)/hostpkg $(BUILD_DIR_TOOLCHAIN) rm -rf $(TMP_DIR) $(MAKE) -C $(TOPDIR)/scripts/config clean cacheclean: ifneq ($(CONFIG_CCACHE),) rm -rf $(if $(call qstrip,$(CONFIG_CCACHE_DIR)),$(call qstrip,$(CONFIG_CCACHE_DIR)),$(TOPDIR)/.ccache) endif ifndef DUMP_TARGET_DB $(BUILD_DIR)/.prepared: Makefile @mkdir -p $$(dirname $@) @touch $@ tmp/.prereq_packages: .config unset ERROR; \ for package in $(sort $(prereq-y) $(prereq-m)); do \ $(_SINGLE)$(NO_TRACE_MAKE) -s -r -C package/$$package prereq || ERROR=1; \ done; \ if [ -n "$$ERROR" ]; then \ echo "Package prerequisite check failed."; \ false; \ fi touch $@ endif # check prerequisites before starting to build prereq: $(target/stamp-prereq) tmp/.prereq_packages @if [ ! -f "$(INCLUDE_DIR)/site/$(ARCH)" ]; then \ echo 'ERROR: Missing site config for architecture "$(ARCH)" !'; \ echo ' The missing file will cause configure scripts to fail during compilation.'; \ echo ' Please provide a "$(INCLUDE_DIR)/site/$(ARCH)" file and restart the build.'; \ exit 1; \ fi $(BIN_DIR)/profiles.json: FORCE $(if $(CONFIG_JSON_OVERVIEW_IMAGE_INFO), \ WORK_DIR=$(BUILD_DIR)/json_info_files \ $(SCRIPT_DIR)/json_overview_image_info.py $@ \ ) json_overview_image_info: $(BIN_DIR)/profiles.json checksum: FORCE $(call sha256sums,$(BIN_DIR),$(CONFIG_BUILDBOT)) buildversion: FORCE $(SCRIPT_DIR)/getver.sh > $(BIN_DIR)/version.buildinfo feedsversion: FORCE $(SCRIPT_DIR)/feeds list -fs > $(BIN_DIR)/feeds.buildinfo diffconfig: FORCE mkdir -p $(BIN_DIR) $(SCRIPT_DIR)/diffconfig.sh > $(BIN_DIR)/config.buildinfo buildinfo: FORCE $(_SINGLE)$(SUBMAKE) -r diffconfig buildversion feedsversion prepare: .config $(tools/stamp-compile) $(toolchain/stamp-compile) $(_SINGLE)$(SUBMAKE) -r buildinfo world: prepare $(target/stamp-compile) $(package/stamp-compile) $(package/stamp-install) $(target/stamp-install) FORCE $(_SINGLE)$(SUBMAKE) -r package/index $(_SINGLE)$(SUBMAKE) -r json_overview_image_info $(_SINGLE)$(SUBMAKE) -r checksum ifneq ($(CONFIG_CCACHE),) $(STAGING_DIR_HOST)/bin/ccache -s endif .PHONY: clean dirclean prereq prepare world package/symlinks package/symlinks-install package/symlinks-clean endif /pending-4.4/331-arc-remove-dependency-on-DEVTMPFS.patch
blob: 48b3f9b428d93ac88a2c4f22c19c56f95fbb4f28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
From adfbf9e6cad93281cffceab078e7f6f2a8e094f9 Mon Sep 17 00:00:00 2001
From: Alexey Brodkin <abrodkin@synopsys.com>
Date: Thu, 13 Aug 2015 01:56:02 +0300
Subject: [PATCH 1/2] openwrt: arc - remove dependency on DEVTMPFS

OpenWRT builds initramfs so that it doesn't require DEVTMPFS so dropping
this dependency. That helps to escape 2 separate kernel rebuilds with
and without initramfs.

2 builds happen because OpenWRT first builds kernel and later modules.
When building entire kernel with simple "make" INITRAMFS sets to a real
value and so was triggering DEVTMPFS selection. Then when building only
modules with "make modules" command INITRAMFS is zeroed and so kernel
config was changing that lead to full kernel rebuild.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
---
 arch/arc/Kconfig | 2 --
 1 file changed, 2 deletions(-)

--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -12,8 +12,6 @@ config ARC
 	select BUILDTIME_EXTABLE_SORT
 	select COMMON_CLK
 	select CLONE_BACKWARDS
-	# ARC Busybox based initramfs absolutely relies on DEVTMPFS for /dev
-	select DEVTMPFS if !INITRAMFS_SOURCE=""
 	select GENERIC_ATOMIC64
 	select GENERIC_CLOCKEVENTS
 	select GENERIC_FIND_FIRST_BIT