#!/usr/bin/env bash # # Script for various external toolchain tasks, refer to # the --help output for more information. # # Copyright (C) 2012 Jo-Philipp Wich # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA CC="" CXX="" CPP="" CFLAGS="" TOOLCHAIN="." LIBC_TYPE="" # Library specs LIB_SPECS=" c: ld-* lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util} rt: librt-* librt pthread: libpthread-* libpthread stdcpp: libstdc++ gcc: libgcc_s ssp: libssp gfortran: libgfortran " # Binary specs BIN_SPECS=" ldd: ldd ldconfig: ldconfig gdb: gdb gdbserver: gdbserver " test_c() { cat <<-EOT | "${CC:-false}" $CFLAGS -o /dev/null -x c - 2>/dev/null #include int main(int argc, char **argv) { printf("Hello, world!\n"); return 0; } EOT } test_cxx() { cat <<-EOT | "${CXX:-false}" $CFLAGS -o /dev/null -x c++ - 2>/dev/null #include using namespace std; int main() { cout << "Hello, world!" << endl; return 0; } EOT } test_softfloat() { cat <<-EOT | "$CC" $CFLAGS -msoft-float -o /dev/null -x c - 2>/dev/null int main(int argc, char **argv) { double a = 0.1; double b = 0.2; double c = (a + b) / (a * b); return 1; } EOT } test_uclibc() { local sysroot="$("$CC" $CFLAGS -print-sysroot 2>/dev/null)" if [ -d "${sysroot:-$TOOLCHAIN}" ]; then local lib for lib in "${sysroot:-$TOOLCHAIN}"/{lib,usr/lib,usr/local/lib}/ld*-uClibc*.so*; do if [ -f "$lib" ] && [ ! -h "$lib" ]; then return 0 fi done fi return 1 } test_feature() { local feature="$1"; shift # find compilers, libc type probe_cc probe_cxx probe_libc # common toolchain feature tests case "$feature" in c) test_c; return $? ;; c++) test_cxx; return $? ;; soft*) test_softfloat; return $? ;; esac # assume eglibc/glibc supports all libc features if [ "$LIBC_TYPE" != "uclibc" ]; then return 0 fi # uclibc feature tests local inc local sysroot="$("$CC" "$@" -muclibc -print-sysroot 2>/dev/null)" for inc in "include" "usr/include" "usr/local/include"; do local conf="${sysroot:-$TOOLCHAIN}/$inc/bits/uClibc_config.h" if [ -f "$conf" ]; then case "$feature" in lfs) grep -q '__UCLIBC_HAS_LFS__ 1' "$conf"; return $?;; ipv6) grep -q '__UCLIBC_HAS_IPV6__ 1' "$conf"; return $?;; rpc) grep -q '__UCLIBC_HAS_RPC__ 1' "$conf"; return $?;; locale) grep -q '__UCLIBC_HAS_LOCALE__ 1' "$conf"; return $?;; wchar) grep -q '__UCLIBC_HAS_WCHAR__ 1' "$conf"; return $?;; threads) grep -q '__UCLIBC_HAS_THREADS__ 1' "$conf"; return $?;; esac fi done return 1 } find_libs() { local spec="$(echo "$LIB_SPECS" | sed -ne "s#^[[:space:]]*$1:##ip")" if [ -n "$spec" ] && probe_cpp; then local libdir libdirs for libdir in $( "$CPP" $CFLAGS -v -x c /dev/null 2>&1 | \ sed -ne 's#:# #g; s#^LIBRARY_PATH=##p' ); do if [ -d "$libdir" ]; then libdirs="$libdirs $(cd "$libdir"; pwd)/" fi done local pattern for pattern in $(eval echo $spec); do find $libdirs -name "$pattern.so*" | sort -u done return 0 fi return 1 } find_bins() { local spec="$(echo "$BIN_SPECS" | sed -ne "s#^[[:space:]]*$1:##ip")" if [ -n "$spec" ] && probe_cpp; then local sysroot="$("$CPP" -print-sysroot)" local bindir bindirs for bindir in $( echo "${sysroot:-$TOOLCHAIN}/bin"; echo "${sysroot:-$TOOLCHAIN}/usr/bin"; echo "${sysroot:-$TOOLCHAIN}/usr/local/bin"; "$CPP" $CFLAGS -v -x c /dev/null 2>&1 | \ sed -ne 's#:# #g; s#^COMPILER_PATH=##p' ); do if [ -d "$bindir" ]; then bindirs="$bindirs $(cd "$bindir"; pwd)/" fi done local pattern for pattern in $(eval echo $spec); do find $bindirs -name "$pattern" | sort -u done return 0 fi return 1 } wrap_bin_cc() { local out="$1" local bin="$2" echo '#!/bin/sh' > "$out" echo 'for arg in "$@"; do' >> "$out" echo ' case "$arg" in -l*|-L*|-shared|-static)' >> "$out" echo -n ' exec "'"$bin"'" '"$CFLAGS"' ${STAGING_DIR:+' >> "$out" echo -n '-idirafter "$STAGING_DIR/usr/include" ' >> "$out" echo -n '-L "$STAGING_DIR/usr/lib" ' >> "$out" echo '-Wl,-rpath-link,"$STAGING_DIR/usr/lib"} "$@" ;;' >> "$out" echo ' esac' >> "$out" echo 'done' >> "$out" echo -n 'exec "'"$bin"'" '"$CFLAGS"' ${STAGING_DIR:+' >> "$out" echo '-idirafter "$STAGING_DIR/usr/include"} "$@"' >> "$out" chmod +x "$out" } wrap_bin_ld() { local out="$1" local bin="$2" echo '#!/bin/sh' > "$out" echo -n 'exec "'"$bin"'" ${STAGING_DIR:+' >> "$out" echo -n '-L "$STAGING_DIR/usr/lib" ' >> "$out" echo '-rpath-link "$STAGING_DIR/usr/lib"} "$@"' >> "$out" chmod +x "$out" } wrap_bin_other() { local out="$1" local bin="$2" echo '#!/bin/sh' > "$out" echo 'exec "'"$bin"'" "$@"' >> "$out" chmod +x "$out" } wrap_bins() { if probe_cc; then mkdir -p "$1" || return 1 local cmd for cmd in "${CC%-*}-"*; do if [ -x "$cmd" ]; then local out="$1/${cmd##*/}" local bin="$cmd" if [ -x "$out" ] && ! grep -q STAGING_DIR "$out"; then mv "$out" "$out.bin" bin='$(dirname "$0")/'"${out##*/}"'.bin' fi case "${cmd##*/}" in *-*cc|*-*cc-*|*-*++|*-*++-*|*-cpp) wrap_bin_cc "$out" "$bin" ;; *-ld) wrap_bin_ld "$out" "$bin" ;; *) wrap_bin_other "$out" "$bin" ;; esac fi done return 0 fi return 1 } print_config() { local mktarget="$1" local mksubtarget local target="$("$CC" $CFLAGS -dumpmachine)" local cpuarch="${target%%-*}" local prefix="${CC##*/}"; prefix="${prefix%-*}-" local config="${0%/scripts/*}/.config" # if no target specified, print choice list and exit if [ -z "$mktarget" ]; then # prepare metadata if [ ! -f "${0%/scripts/*}/tmp/.targetinfo" ]; then "${0%/*}/scripts/config/mconf" prepare-tmpinfo fi local mktargets=$( sed -ne " /^Target: / { h }; /^Target-Arch: $cpuarch\$/ { x; s#^Target: ##p } " "${0%/scripts/*}/tmp/.targetinfo" | sort -u ) for mktarget in $mktargets; do case "$mktarget" in */*) mktargets=$(echo "$mktargets" | sed -e "/^${mktarget%/*}\$/d") esac done if [ -n "$mktargets" ]; then echo "Available targets:" >&2 echo $mktargets >&2 else echo -e "Could not find a suitable OpenWrt target for " >&2 echo -e "CPU architecture '$cpuarch' - you need to " >&2 echo -e "define one first!" >&2 fi return 1 fi # bail out if there is a .config already if [ -f "${0%/scripts/*}/.config" ]; then echo "There already is a .config file, refusing to overwrite!" >&2 return 1 fi case "$mktarget" in */*) mksubtarget="${mktarget#*/}" mktarget="${mktarget%/*}" ;; esac echo "CONFIG_TARGET_${mktarget}=y" > "$config" if [ -n "$mksubtarget" ]; then echo "CONFIG_TARGET_${mktarget}_${mksubtarget}=y" >> "$config" fi if test_feature "softfloat"; then echo "CONFIG_SOFT_FLOAT=y" >> "$config" else echo "# CONFIG_SOFT_FLOAT is not set" >> "$config" fi if test_feature "ipv6"; then echo "CONFIG_IPV6=y" >> "$config" else echo "# CONFIG_IPV6 is not set" >> "$config" fi if test_feature "locale"; then echo "CONFIG_BUILD_NLS=y" >> "$config" else echo "# CONFIG_BUILD_NLS is not set" >> "$config" fi echo "CONFIG_DEVEL=y" >> "$config" echo "CONFIG_EXTERNAL_TOOLCHAIN=y" >> "$config" echo "CONFIG_TOOLCHAIN_ROOT=\"$TOOLCHAIN\"" >> "$config" echo "CONFIG_TOOLCHAIN_PREFIX=\"$prefix\"" >> "$config" echo "CONFIG_TARGET_NAME=\"$target\"" >> "$config" if [ "$LIBC_TYPE" != glibc ]; then echo "CONFIG_TOOLCHAIN_LIBC=\"$LIBC_TYPE\"" >> "$config" fi local lib for lib in C RT PTHREAD GCC STDCPP SSP GFORTRAN; do local file local spec="" local llib="$(echo "$lib" | sed -e 's#.*#\L&#')" for file in $(find_libs "$lib"); do spec="${spec:+$spec }$(echo "$file" | sed -e "s#^$TOOLCHAIN#.#")" done if [ -n "$spec" ]; then echo "CONFIG_PACKAGE_lib${llib}=y" >> "$config" echo "CONFIG_LIB${lib}_FILE_SPEC=\"$spec\"" >> "$config" else echo "# CONFIG_PACKAGE_lib${llib} is not set" >> "$config" fi done local bin for bin in LDD LDCONFIG; do local file local spec="" local lbin="$(echo "$bin" | sed -e 's#.*#\L&#')" for file in $(find_bins "$bin"); do spec="${spec:+$spec }$(echo "$file" | sed -e "s#^$TOOLCHAIN#.#")" done if [ -n "$spec" ]; then echo "CONFIG_PACKAGE_${lbin}=y" >> "$config" echo "CONFIG_${bin}_FILE_SPEC=\"$spec\"" >> "$config" else echo "# CONFIG_PACKAGE_${lbin} is not set" >> "$config" fi done # inflate make -C "${0%/scripts/*}" defconfig return 0 } probe_cc() { if [ -z "$CC" ]; then local bin for bin in "bin" "usr/bin" "usr/local/bin"; do local cmd for cmd in "$TOOLCHAIN/$bin/"*-*cc*; do if [ -x "$cmd" ] && [ ! -h "$cmd" ]; then CC="$(cd "${cmd%/*}"; pwd)/${cmd##*/}" return 0 fi done done return 1 fi return 0 } probe_cxx() { if [ -z "$CXX" ]; then local bin for bin in "bin" "usr/bin" "usr/local/bin"; do local cmd for cmd in "$TOOLCHAIN/$bin/"*-*++*; do if [ -x "$cmd" ] && [ ! -h "$cmd" ]; then CXX="$(cd "${cmd%/*}"; pwd)/${cmd##*/}" return 0 fi done done return 1 fi return 0 } probe_cpp() { if [ -z "$CPP" ]; then local bin for bin in "bin" "usr/bin" "usr/local/bin"; do local cmd for cmd in "$TOOLCHAIN/$bin/"*-cpp*; do if [ -x "$cmd" ] && [ ! -h "$cmd" ]; then CPP="$(cd "${cmd%/*}"; pwd)/${cmd##*/}" return 0 fi done done return 1 fi return 0 } probe_libc() { if [ -z "$LIBC_TYPE" ]; then if test_uclibc; then LIBC_TYPE="uclibc" else LIBC_TYPE="glibc" fi fi return 0 } while [ -n "$1" ]; do arg="$1"; shift case "$arg" in --toolchain) [ -d "$1" ] || { echo "Toolchain directory '$1' does not exist." >&2 exit 1 } TOOLCHAIN="$(cd "$1"; pwd)"; shift ;; --cflags) CFLAGS="${CFLAGS:+$CFLAGS }$1"; shift ;; --print-libc) if probe_cc; then probe_libc echo "$LIBC_TYPE" exit 0 fi echo "No C compiler found in '$TOOLCHAIN'." >&2 exit 1 ;; --print-target) if probe_cc; then exec "$CC" $CFLAGS -dumpmachine fi echo "No C compiler found in '$TOOLCHAIN'." >&2 exit 1 ;; --print-bin) if [ -z "$1" ]; then echo "Available programs:" >&2 echo $(echo "$BIN_SPECS" | sed -ne 's#:.*$##p') >&2 exit 1 fi find_bins "$1" || exec "$0" --toolchain "$TOOLCHAIN" --print-bin exit 0 ;; --print-libs) if [ -z "$1" ]; then echo "Available libraries:" >&2 echo $(echo "$LIB_SPECS" | sed -ne 's#:.*$##p') >&2 exit 1 fi find_libs "$1" || exec "$0" --toolchain "$TOOLCHAIN" --print-libs exit 0 ;; --test) test_feature "$1" exit $? ;; --wrap) [ -n "$1" ] || exec "$0" --help wrap_bins "$1" exit $? ;; --config) if probe_cc; then print_config "$1" exit $? fi echo "No C compiler found in '$TOOLCHAIN'." >&2 exit 1 ;; -h|--help) me="$(basename "$0")" echo -e "\nUsage:\n" >&2 echo -e " $me --toolchain {directory} --print-libc" >&2 echo -e " Print the libc implementation and exit.\n" >&2 echo -e " $me --toolchain {directory} --print-target" >&2 echo -e " Print the GNU target name and exit.\n" >&2 echo -e " $me --toolchain {directory} --print-bin {program}" >&2 echo -e " Print executables belonging to given program," >&2 echo -e " omit program argument to get a list of names.\n" >&2 echo -e " $me --toolchain {directory} --print-libs {library}" >&2 echo -e " Print shared objects belonging to given library," >&2 echo -e " omit library argument to get a list of names.\n" >&2 echo -e " $me --toolchain {directory} --test {feature}" >&2 echo -e " Test given feature, exit code indicates success." >&2 echo -e " Possible features are 'c', 'c++', 'softfloat'," >&2 echo -e " 'lfs', 'rpc', 'ipv6', 'wchar', 'locale' and " >&2 echo -e " 'threads'.\n" >&2 echo -e " $me --toolchain {directory} --wrap {directory}" >&2 echo -e " Create wrapper scripts for C and C++ compiler, " >&2 echo -e " linker, assembler and other key executables in " >&2 echo -e " the directory given with --wrap.\n" >&2 echo -e " $me --toolchain {directory} --config {target}" >&2 echo -e " Analyze the given toolchain and print a suitable" >&2 echo -e " .config for the given target. Omit target " >&2 echo -e " argument to get a list of names.\n" >&2 echo -e " $me --help" >&2 echo -e " Display this help text and exit.\n\n" >&2 echo -e " Most commands also take a --cflags parameter which " >&2 echo -e " is used to specify C flags to be passed to the " >&2 echo -e " cross compiler when performing tests." >&2 echo -e " This paremter may be repeated multiple times." >&2 exit 1 ;; *) echo "Unknown argument '$arg'" >&2 exec $0 --help ;; esac done exec $0 --help f='#n323'>323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377
# CONFIG_60XX_WDT is not set
# CONFIG_64BIT is not set
# CONFIG_ACPI is not set
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
# CONFIG_ALIM1535_WDT is not set
# CONFIG_ALIX is not set
CONFIG_AMD_NB=y
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
# CONFIG_ARCH_RANDOM is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_ATA=y
CONFIG_ATA_GENERIC=y
CONFIG_ATA_PIIX=y
# CONFIG_AUDIT_ARCH is not set
CONFIG_BCMA_POSSIBLE=y
CONFIG_BINFMT_MISC=y
CONFIG_BLK_DEV_SD=y
CONFIG_BOUNCE=y
CONFIG_CLKBLD_I8253=y
CONFIG_CLKEVT_I8253=y
CONFIG_CLKSRC_I8253=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_CMPXCHG_DOUBLE=y
CONFIG_CMPXCHG_LOCAL=y
CONFIG_COMPAT_VDSO=y
# CONFIG_CPU5_WDT is not set
CONFIG_CPU_FREQ=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_CPU_SUP_CYRIX_32=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_TRANSMETA_32=y
CONFIG_CPU_SUP_UMC_32=y
CONFIG_CRC16=y
# CONFIG_DCDBAS is not set
# CONFIG_DEBUG_BOOT_PARAMS is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_VIRTUAL is not set
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_DELL_RBU is not set
# CONFIG_DMI is not set
CONFIG_DNOTIFY=y
CONFIG_DOUBLEFAULT=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
# CONFIG_EDD is not set
CONFIG_ELF_CORE=y
# CONFIG_EUROTECH_WDT is not set
CONFIG_EXT4_FS=y
# CONFIG_F71808E_WDT is not set
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_FIRMWARE_MEMMAP=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_FS_MBCACHE=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_ISA_DMA=y
# CONFIG_GENERIC_TIME_VSYSCALL is not set
# CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_HANGCHECK_TIMER is not set
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAVE_AOUT=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_HAVE_ARCH_KMEMCHECK=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_ATOMIC_IOMAP=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_HAVE_GENERIC_HARDIRQS=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_IDE=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_IRQ_WORK=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KVM=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_HAVE_OPROFILE=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_TEXT_POKE_SMP=y
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_HPET_EMULATE_RTC=y
CONFIG_HPET_TIMER=y
# CONFIG_HP_WATCHDOG is not set
CONFIG_HT_IRQ=y
# CONFIG_HUGETLBFS is not set
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_GEODE=y
CONFIG_HW_RANDOM_VIA=y
# CONFIG_I6300ESB_WDT is not set
CONFIG_I8253_LOCK=y
# CONFIG_I8K is not set
# CONFIG_IB700_WDT is not set
# CONFIG_IBMASR is not set
# CONFIG_IBM_RTL is not set
CONFIG_ILLEGAL_POINTER_VALUE=0
CONFIG_INITRAMFS_SOURCE=""
CONFIG_INSTRUCTION_DECODER=y
# CONFIG_IOMMU_HELPER is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_TYPE_UDELAY=2
# CONFIG_IO_DELAY_UDELAY is not set
CONFIG_IRQ_FORCED_THREADING=y
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_IRQ_WORK=y
# CONFIG_ISA is not set
CONFIG_ISA_DMA_API=y
# CONFIG_ISCSI_IBFT_FIND is not set
# CONFIG_IT8712F_WDT is not set
# CONFIG_IT87_WDT is not set
# CONFIG_ITCO_WDT is not set
CONFIG_JBD2=y
CONFIG_KALLSYMS=y
CONFIG_KEXEC=y
CONFIG_KTIME_SCALAR=y
# CONFIG_M386 is not set
CONFIG_M486=y
# CONFIG_M586 is not set
# CONFIG_M586MMX is not set
# CONFIG_M586TSC is not set
# CONFIG_M686 is not set
# CONFIG_MACHZ_WDT is not set
CONFIG_MATH_EMULATION=y
# CONFIG_MATOM is not set
# CONFIG_MCA is not set
# CONFIG_MCORE2 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MELAN is not set
# CONFIG_MEMTEST is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MICROCODE is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
CONFIG_MTD_BLOCK2MTD=y
# CONFIG_MTD_CFI is not set
# CONFIG_MTD_COMPLEX_MAPPINGS is not set
# CONFIG_MTD_TS5500 is not set
CONFIG_MTRR=y
# CONFIG_MTRR_SANITIZER is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MWINCHIPC6 is not set
CONFIG_NAMESPACES=y
# CONFIG_NEED_DMA_MAP_STATE is not set
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_KM=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_NEED_SG_DMA_LENGTH=y
# CONFIG_NET5501 is not set
# CONFIG_NET_NS is not set
CONFIG_NOHIGHMEM=y
CONFIG_NO_BOOTMEM=y
CONFIG_NR_CPUS=1
# CONFIG_NSC_GPIO is not set
CONFIG_NVRAM=y
# CONFIG_OLPC is not set
# CONFIG_OPTIMIZE_INLINING is not set
CONFIG_OUTPUT_FORMAT="elf32-i386"
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_PAGE_OFFSET=0xC0000000
# CONFIG_PARAVIRT_GUEST is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_PC87413_WDT is not set
CONFIG_PCI=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_GOANY=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GODIRECT is not set
# CONFIG_PCI_GOMMCONFIG is not set
CONFIG_PCI_MSI=y
CONFIG_PCSPKR_PLATFORM=y
# CONFIG_PDA_POWER is not set
CONFIG_PERF_EVENTS=y
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_PHYSICAL_START=0x1000000
CONFIG_POWER_SUPPLY=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_PROCESSOR_SELECT is not set
CONFIG_PROC_PAGE_MONITOR=y
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
CONFIG_RD_BZIP2=y
CONFIG_RD_GZIP=y
# CONFIG_RELOCATABLE is not set
CONFIG_RTC_CLASS=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_SAMSUNG_Q10 is not set
# CONFIG_SBC7240_WDT is not set
# CONFIG_SBC8360_WDT is not set
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
# CONFIG_SC1200_WDT is not set
# CONFIG_SC520_WDT is not set
# CONFIG_SCHED_HRTICK is not set
CONFIG_SCSI=y
# CONFIG_SCSI_ISCI is not set
CONFIG_SCx200=y
CONFIG_SCx200HR_TIMER=y
# CONFIG_SCx200_GPIO is not set
# CONFIG_SCx200_WDT is not set
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIO=y
# CONFIG_SERIO_CT82C710 is not set
CONFIG_SERIO_I8042=y
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_SERPORT=y
# CONFIG_SLAB is not set
CONFIG_SLUB=y
CONFIG_SLUB_DEBUG=y
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SMSC37B787_WDT is not set
# CONFIG_SMSC_SCH311X_WDT is not set
CONFIG_SPARSEMEM_STATIC=y
CONFIG_SPARSE_IRQ=y
CONFIG_STRICT_DEVMEM=y
# CONFIG_TELCLOCK is not set
CONFIG_THERMAL=y
# CONFIG_TOSHIBA is not set
# CONFIG_TRANSPARENT_HUGEPAGE is not set
CONFIG_UID16=y
CONFIG_USB_ARCH_HAS_XHCI=y
CONFIG_USB_SUPPORT=y
# CONFIG_USER_NS is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_VM86=y
# CONFIG_VMWARE_BALLOON is not set
# CONFIG_VMWARE_PVSCSI is not set
CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_W83697UG_WDT is not set
# CONFIG_WAFER_WDT is not set
CONFIG_X86=y
CONFIG_X86_32=y
# CONFIG_X86_32_IRIS is not set
CONFIG_X86_32_LAZY_GS=y
# CONFIG_X86_64 is not set
CONFIG_X86_ALIGNMENT_16=y
# CONFIG_X86_ANCIENT_MCE is not set
CONFIG_X86_BSWAP=y
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
CONFIG_X86_CMPXCHG=y
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
# CONFIG_X86_CPUID is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
# CONFIG_X86_E_POWERSAVER is not set
CONFIG_X86_F00F_BUG=y
CONFIG_X86_GENERIC=y
# CONFIG_X86_GX_SUSPMOD is not set
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_INVD_BUG=y
CONFIG_X86_INVLPG=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_LOCAL_APIC=y
# CONFIG_X86_LONGRUN is not set
CONFIG_X86_MCE=y
CONFIG_X86_MCE_AMD=y
# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_THRESHOLD=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_X86_MPPARSE=y
# CONFIG_X86_MSR is not set
# CONFIG_X86_P4_CLOCKMOD is not set
# CONFIG_X86_PAE is not set
CONFIG_X86_PAT=y
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_X86_POPAD_OK=y
# CONFIG_X86_POWERNOW_K6 is not set
# CONFIG_X86_POWERNOW_K7 is not set
CONFIG_X86_PPRO_FENCE=y
# CONFIG_X86_PTDUMP is not set
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
CONFIG_X86_RESERVE_LOW=64
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
# CONFIG_X86_SPEEDSTEP_ICH is not set
# CONFIG_X86_SPEEDSTEP_LIB is not set
# CONFIG_X86_SPEEDSTEP_SMI is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_X86_THERMAL_VECTOR=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_XADD=y
CONFIG_XZ_DEC=y
# CONFIG_ZONE_DMA32 is not set