summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
Diffstat (limited to 'target')
-rw-r--r--target/linux26.mk27
1 files changed, 21 insertions, 6 deletions
diff --git a/target/linux26.mk b/target/linux26.mk
index 0db0d1eac..9c91ac84c 100644
--- a/target/linux26.mk
+++ b/target/linux26.mk
@@ -24,6 +24,25 @@ LINUX26_SITE=http://ftp.kernel.org/pub/linux/kernel/v2.6
#LINUX26_FORMAT=vmlinux
#LINUX26_BINLOC=$(LINUX26_FORMAT)
+# Linux kernel configuration file
+# Has to be set by the target/device
+# If it is not set by the target/device, then pick the one from .config
+# LINUX26_KCONFIG=$(BR2_BOARD_PATH)/linux26.config
+ifndef LINUX26_KCONFIG
+ifneq ($(strip $(subst ",,$(BR2_PACKAGE_LINUX_KCONFIG))),)
+LINUX26_KCONFIG=$(strip $(subst ",,$(BR2_PACKAGE_LINUX_KCONFIG)))
+#"))
+#"))
+endif
+endif
+ifndef LINUX26_FORMAT
+ifneq ($(strip $(subst ",,$(BR2_PACKAGE_LINUX_FORMAT))),)
+LINUX26_FORMAT=$(strip $(subst ",,$(BR2_PACKAGE_LINUX_FORMAT)))
+#"))
+#"))
+endif
+endif
+
# Has to be set by the target/device
# LINUX26_FORMAT=bzImage
ifndef LINUX26_FORMAT
@@ -35,10 +54,6 @@ ifndef LINUX26_BINLOC
LINUX26_BINLOC=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT)
endif
-# Linux kernel configuration file
-# Has to be set by the target/device
-# LINUX26_KCONFIG=$(BR2_BOARD_PATH)/linux26.config
-
# File name for the Linux kernel binary
LINUX26_KERNEL=linux-kernel-$(LINUX26_VERSION)-$(KERNEL_ARCH)
@@ -52,10 +67,10 @@ LINUX_KERNEL=$(LINUX26_KERNEL)
# kernel patches
LINUX26_PATCH_DIR=$(BR2_BOARD_PATH)/kernel-patches/
-
+__LINUX26_NO_PIC=-fPIC -fpic -DPIC
LINUX26_MAKE_FLAGS = HOSTCC="$(HOSTCC)" HOSTCFLAGS=$(HOSTCFLAGS) \
ARCH=$(KERNEL_ARCH) \
- CFLAGS_KERNEL="$(TARGET_CFLAGS)" \
+ CFLAGS_KERNEL="$(filter-out $(__LINUX26_NO_PIC),$(TARGET_CFLAGS))" \
INSTALL_MOD_PATH=$(TARGET_DIR) \
CROSS_COMPILE=$(KERNEL_CROSS)