]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/mk/Kconfig
Update
[l4.git] / l4 / mk / Kconfig
index 7da565d9e25a3e241298e39cec4b7adc4ed6dbc4..040bf322462222e8d02f4dee67257797b2af7aed 100644 (file)
@@ -4,32 +4,22 @@ config KERNELVERSION
         string
        option env="KERNELVERSION"
 
         string
        option env="KERNELVERSION"
 
+config ARCH_ENABLE_STACK_PROTECTOR
+       bool
+
 choice
        prompt "Target Architecture"
        default BUILD_ARCH_x86
        help
          Specify for which processor architecture you want to build.
 
 choice
        prompt "Target Architecture"
        default BUILD_ARCH_x86
        help
          Specify for which processor architecture you want to build.
 
-config BUILD_ARCH_x86
-       bool "X86-32 architecture"
-
-config BUILD_ARCH_amd64
-       bool "AMD64 architecture"
-
-config BUILD_ARCH_arm
-       bool "ARM architecture"
-
-config BUILD_ARCH_ppc32
-       bool "PowerPC 32 architecture (EXPERIMENTAL!)"
+#  ARCH_CHOICE
 
 endchoice
 
 config BUILD_ARCH
        string
 
 endchoice
 
 config BUILD_ARCH
        string
-       default "x86"   if BUILD_ARCH_x86
-       default "arm"   if BUILD_ARCH_arm
-       default "amd64" if BUILD_ARCH_amd64
-       default "ppc32" if BUILD_ARCH_ppc32
+# ARCH_NAME
 
 # currently we have nothing for abi linux, so just do not offer this option
 #choice
 
 # currently we have nothing for abi linux, so just do not offer this option
 #choice
@@ -52,373 +42,50 @@ config BUILD_ABI
        default "l4f"   if BUILD_ABI_l4f
        default "linux" if BUILD_ABI_linux
 
        default "l4f"   if BUILD_ABI_l4f
        default "linux" if BUILD_ABI_linux
 
-if BUILD_ARCH_x86 || BUILD_ARCH_amd64
-
-choice
-       prompt "CPU variant"
-       
-config CPU_X86_586
-       bool "586 type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_PENTIUM
-       bool "Pentium type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_PENTIUMMMX
-       bool "Pentium with MMX type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_PENTIUMPRO
-       bool "Pentium Pro type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_686
-       bool "686 type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_PENTIUM2
-       bool "Pentium2 type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_PENTIUM3
-       bool "Pentium3 type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_PENTIUMM
-       bool "Pentium-M type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_PENTIUM4
-       bool "Pentium4 type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_PRESCOTT
-       bool "Pentium4 Prescott type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_NOCONA
-       bool "Pentium Nocona type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_CORE2
-       bool "Core2 type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_K6
-       bool "K6 type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_K7
-       bool "K7 type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_ATHLON4
-       bool "Athlon type CPU"
-       depends on BUILD_ARCH_x86
-
-config CPU_X86_K8
-       bool "K8 type CPU"
-       depends on BUILD_ARCH_x86 || BUILD_ARCH_amd64
-
-config CPU_X86_K10
-       bool "K10/Barcelona type CPU"
-       depends on BUILD_ARCH_x86 || BUILD_ARCH_amd64
-
-config CPU_X86_OPTERON
-       bool "Opteron type CPU"
-       depends on BUILD_ARCH_x86 || BUILD_ARCH_amd64
-
-
-
-endchoice
-
-
-config CPU
-       string
-       default "586"        if CPU_X86_586
-       default "pentium"    if CPU_X86_PENTIUM
-       default "pentiummmx" if CPU_X86_PENTIUMMMX
-       default "pentiumpro" if CPU_X86_PENTIUMPRO
-       default "686"        if CPU_X86_686
-       default "pentium2"   if CPU_X86_PENTIUM2
-       default "pentium3"   if CPU_X86_PENTIUM3
-       default "pentiumm"   if CPU_X86_PENTIUMM
-       default "pentium4"   if CPU_X86_PENTIUM4
-       default "prescott"   if CPU_X86_PRESCOTT
-       default "core2"      if CPU_X86_CORE2
-       default "nocona"     if CPU_X86_NOCONA
-       default "K6"         if CPU_X86_K6
-       default "K7"         if CPU_X86_K7
-       default "athlon4"    if CPU_X86_ATHLON4
-       default "K8"         if CPU_X86_K8
-       default "amdfam10"   if CPU_X86_K10
-       default "opteron"    if CPU_X86_OPTERON
-endif
-
-
-if BUILD_ARCH_arm
-
-choice
-       prompt "CPU variant"
-       
-config CPU_ARM_ARMV4
-       bool "ARMv4 type CPU"
-       depends on BUILD_ARCH_arm
-
-config CPU_ARM_ARMV4T
-       bool "ARMv4T type CPU"
-       depends on BUILD_ARCH_arm
-
-config CPU_ARM_ARMV5
-       bool "ARMv5 type CPU"
-       depends on BUILD_ARCH_arm
-
-config CPU_ARM_ARMV5T
-       bool "ARMv5T type CPU"
-       depends on BUILD_ARCH_arm
-
-config CPU_ARM_ARMV5TE
-       bool "ARMv5TE type CPU"
-       depends on BUILD_ARCH_arm
-
-config CPU_ARM_ARMV6
-       bool "ARMv6 type CPU"
-       depends on BUILD_ARCH_arm
-
-config CPU_ARM_ARMV6T2
-       bool "ARMv6t2 type CPU"
-       depends on BUILD_ARCH_arm
-
-config CPU_ARM_ARMV6ZK
-       bool "ARMv6zk type CPU"
-       depends on BUILD_ARCH_arm
-
-config CPU_ARM_ARMV7A
-       bool "ARMv7A type CPU"
-       depends on BUILD_ARCH_arm
-
-config CPU_ARM_ARMV7R
-       bool "ARMv7R type CPU"
-       depends on BUILD_ARCH_arm
-
-endchoice
-
-config CPU
-       string
-       default "armv4"    if CPU_ARM_ARMV4
-       default "armv4t"   if CPU_ARM_ARMV4T
-       default "armv5"    if CPU_ARM_ARMV5
-       default "armv5t"   if CPU_ARM_ARMV5T
-       default "armv5te"  if CPU_ARM_ARMV5TE
-       default "armv6"    if CPU_ARM_ARMV6
-       default "armv6t2"  if CPU_ARM_ARMV6T2
-       default "armv6zk"  if CPU_ARM_ARMV6ZK
-       default "armv7a"   if CPU_ARM_ARMV7A
-       default "armv7r"   if CPU_ARM_ARMV7R
-
-config CPU_ARMV6KPLUS
-       bool
-       default y if CPU_ARM_ARMV6ZK || CPU_ARM_ARMV7A || CPU_ARM_ARMV7R
-
-config CPU_ARMV6PLUS
-       bool
-       default y if CPU_ARM_ARMV6 || CPU_ARM_ARMV6T2 || CPU_ARMV6KPLUS
-
-menu "Platform"
+# PF_INCLUDE
 
 choice
 
 choice
-       prompt "ARM Platform"
+       prompt "Platform Selection"
 
 
-config PLATFORM_ARM_integrator
-       bool "ARM Integrator"
-       
-config PLATFORM_ARM_rv
-       bool "ARM Realview"
+INSERT_PLATFORMS
 
 
-config PLATFORM_ARM_imx21
-       bool "Freescale i.MX21"
-
-config PLATFORM_ARM_imx51
-       bool "Freescale i.MX51"
-
-config PLATFORM_ARM_omap3evm
-       bool "TI OMAP3EVM"
-
-config PLATFORM_ARM_beagleboard
-       bool "Beagleboard"
-
-config PLATFORM_ARM_tegra2
-       bool "NVIDIA Tegra 2"
-
-config PLATFORM_ARM_custom
+config PLATFORM_TYPE_custom
        bool "Custom platform"
        bool "Custom platform"
+       help
+         Define your own platform, alternatively define the following
+         in conf/platforms/yourname.conf:
+           PLATFORM_RAM_BASE    = 0
+           PLATFORM_RAM_SIZE_MB = 64
 
 
-endchoice
-
-if PLATFORM_ARM_integrator
-
-config ARM_PLATFORM_TYPE
-       string
-       default "integrator"
-
-config RAM_BASE
-       hex
-       default 0x0
-
-config RAM_SIZE_MB
-       int
-       default 256
-
-endif
-
-if PLATFORM_ARM_rv
-
-config ARM_PLATFORM_TYPE
-       string
-       default "rv"
-
-config RAM_BASE
-       hex
-       default 0x0
-
-config RAM_SIZE_MB
-       int
-       default 256
-
-endif
-
-if PLATFORM_ARM_imx21
-
-config ARM_PLATFORM_TYPE
-       string
-       default "imx21"
-
-config RAM_BASE
-       hex
-       default 0xc0000000
-
-config RAM_SIZE_MB
-       int
-       default 64
-endif
-
-if PLATFORM_ARM_imx51
-
-config ARM_PLATFORM_TYPE
-       string
-       default "imx51"
-
-config RAM_BASE
-       hex
-       default 0x90000000
-
-config RAM_SIZE_MB
-       int
-       default 512
-endif
-
-if PLATFORM_ARM_omap3evm
-
-config ARM_PLATFORM_TYPE
-       string
-       default "omap3evm"
-
-config RAM_BASE
-       hex
-       default 0x80000000
-
-config RAM_SIZE_MB
-       int
-       default 128
-endif
-
-if PLATFORM_ARM_beagleboard
-
-config ARM_PLATFORM_TYPE
-       string
-       default "beagleboard"
-
-config RAM_BASE
-       hex
-       default 0x80000000
-
-config RAM_SIZE_MB
-       int
-       default 128
-endif
-
-if PLATFORM_ARM_tegra2
-
-config ARM_PLATFORM_TYPE
-       string
-       default "tegra2"
-
-config RAM_BASE
-       hex
-       default 0x0
 
 
-config RAM_SIZE_MB
-       int
-       default 64
-endif
+endchoice
 
 
-if PLATFORM_ARM_custom
+if PLATFORM_TYPE_custom
 
 
+menu "Custom Platform Definition"
 
 
-config ARM_PLATFORM_TYPE
+config PLATFORM_TYPE
        string "Name of your platform"
        string "Name of your platform"
-       depends on BUILD_ARCH_arm
 
 
-config RAM_BASE
+config PLATFORM_RAM_BASE
        hex "Start of RAM"
        hex "Start of RAM"
-       depends on BUILD_ARCH_arm
        default 0x0
        help
          Hexadecimal physical address where RAM memory starts on the
          platform.
 
        default 0x0
        help
          Hexadecimal physical address where RAM memory starts on the
          platform.
 
-config RAM_SIZE_MB
+config PLATFORM_RAM_SIZE_MB
        int "RAM-Memory available on the platform in MB"
        int "RAM-Memory available on the platform in MB"
-       depends on BUILD_ARCH_arm
        default 128
 
        default 128
 
-endif
-
-endmenu
+config PLATFORM_UART_NR
+       int "Select UART to use"
+       default 0
 
 
+endmenu # Custom platform
 endif
 
 endif
 
-
-
-if BUILD_ARCH_ppc32
-
-config CPU
-       string "CPU variant"
-       default "603e"
-
-menu "Platform"
-
-choice
-       prompt "Platform"
-
-config PLATFORM_PPC_mpc5200
-       bool "MPC52xx"
-
-endchoice
-
-if PLATFORM_PPC_mpc5200
-
-config PPC_PLATFORM_TYPE
-       string
-       default "mpc5200"
-endif
-
-endmenu
-
-endif
-
-
+INSERT_PLATFORM_TYPES
 
 config USE_DROPS_STDDIR
        def_bool n
 
 config USE_DROPS_STDDIR
        def_bool n
@@ -440,13 +107,6 @@ config BID_COLORED_PHASES
 
 menu "Building"
 
 
 menu "Building"
 
-#menu "Compilers and Tools"
-#config BIDc_USE_SPECIAL_CC
-#      bool "Use special C-Compilers"
-#if BIDc_USE_SPECIAL_CC
-#endif
-#endmenu
-
 config YACC
        string
        default "yacc"
 config YACC
        string
        default "yacc"
@@ -488,7 +148,6 @@ config INT_LD_NAME
 
 config BID_STRIP_PROGS
        bool "Strip binaries on install"
 
 config BID_STRIP_PROGS
        bool "Strip binaries on install"
-       default n
        help
          If enabled, binaries will be stripped on installation into
          $(L4DIR)/bin or $(DROPS_STDDIR)/bin. If you want to load them with
        help
          If enabled, binaries will be stripped on installation into
          $(L4DIR)/bin or $(DROPS_STDDIR)/bin. If you want to load them with
@@ -499,19 +158,51 @@ config BID_STRIP_PROGS
 
 config BID_GCC_OMIT_FP
        bool "GCC: Omit Frame-pointers"
 
 config BID_GCC_OMIT_FP
        bool "GCC: Omit Frame-pointers"
-       default n
+       default y
        help
          If enabled, gcc will be passed the '-fomit-frame-pointer' cmdline
          option, adding an additional register to the register set for the
          generated code. Programs will be faster, but backtraces cannot be
          done, seriously hindering debugging.
 
        help
          If enabled, gcc will be passed the '-fomit-frame-pointer' cmdline
          option, adding an additional register to the register set for the
          generated code. Programs will be faster, but backtraces cannot be
          done, seriously hindering debugging.
 
-         If unsure, say 'N'.
+         If unsure, say 'Y'.
+
+config BID_GCC_ENABLE_STACK_PROTECTOR
+    bool "GCC: enable stack protector"
+    default y if ARCH_ENABLE_STACK_PROTECTOR
+    help
+      If enabled, support for the gcc stack protector will be enabled.
+      The stack protector uses stack canaries to detect stack smashing
+      attacks (see "man gcc" for details). In L4Re the stack protector is
+      enabled only for packages that are linked against the full uclibc.
+      Enabling this feature will add some overhead, but increase security.
+
+      If unsure, say 'Y'.
 
 
+choice
+    prompt "GCC: Enable stack protector"
+    depends on BID_GCC_ENABLE_STACK_PROTECTOR
+    default BID_GCC_STACK_PROTECTOR
+
+config BID_GCC_STACK_PROTECTOR_ALL
+    bool "on all functions"
+    help
+        If enabled, '-fstack-protector-all' flag is used for gcc. This
+        option adds significant overhead, as the stack canary is checked on
+        every function return. See "man gcc" for details.
+
+config BID_GCC_STACK_PROTECTOR
+    bool "exclusively for functions with vulnerable objects"
+    help
+        If enabled, '-fstack-protector' flag is passed to gcc. If this
+        flag is set, gcc will add stack canaries to vulnerable functions, such as
+        functions that call "alloca", and functions with buffers larger than 8
+        bytes.
+
+endchoice
 
 config BID_GENERATE_MAPFILE
        bool #"Generate Map-files for binaries"
 
 config BID_GENERATE_MAPFILE
        bool #"Generate Map-files for binaries"
-       default n
        help
          Enabling this option will generate map-files together with the
          binaries. This might be handy for debugging purposes. See ld(1)
        help
          Enabling this option will generate map-files together with the
          binaries. This might be handy for debugging purposes. See ld(1)
@@ -521,7 +212,6 @@ config BID_GENERATE_MAPFILE
 
 config BID_BUILD_DOC
        bool "Build doc directories"
 
 config BID_BUILD_DOC
        bool "Build doc directories"
-       default n
        help
          Say Y if you also want to build the doc directories.
 
        help
          Say Y if you also want to build the doc directories.
 
@@ -532,12 +222,11 @@ config RELEASE_MODE
 
          Say N.
 
 
          Say N.
 
-
-config LABEL
-       string "Configuration label"
+config MAKECONFS_ADD
+       string "Additional Makeconf files"
        help
        help
-         Name for the configuration. The build system will also try to
-         include a file Makeconf.<label> from the build directory root and
-         the l4 directory root.
+         List of white space separated suffixes of Makeconf files
+         which will be included in every source directory as
+         Makeconf.<suffix>.
 
 endmenu
 
 endmenu