From ed9fc7f8b250eddeee38f99e27b464b262a93c45 Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Fri, 26 May 2017 22:26:25 +0200 Subject: [PATCH] Put postmarketOS aports inside pmbootstrap repo Later, the aports folder will probably get split up in its own repository. But right now this is simply convenient. --- aports/binutils-armhf/APKBUILD | 67 + aports/binutils-armhf/CVE-2017-7614.patch | 84 + .../binutils-ld-fix-static-linking.patch | 46 + aports/binutils-armhf/hash-style-gnu.patch | 31 + .../0001-ash-exec-busybox.static.patch | 25 + .../0002-app-location-for-vi-and-lspci.patch | 39 + ...pc-set-default-discover-retries-to-5.patch | 35 + ...ke-ping-work-without-root-privileges.patch | 197 + ...5-fbsplash-support-console-switching.patch | 187 + ...-image-and-bar-alignment-and-positio.patch | 185 + ...t-generating-kmod-binary-index-files.patch | 511 +++ ...-login-move-check_securetty-to-libbb.patch | 103 + ...k-argument-for-ask_and_check_passwor.patch | 70 + .../0010-su-FEATURE_SU_NULLOK_SECURE.patch | 71 + ...stname-resolution-if-fails-on-startu.patch | 205 + ...-diff-add-support-for-no-dereference.patch | 63 + ...ec-capable-of-using-separate-argv-0-.patch | 91 + ...ash-implement-exec-a-ARGV0-CMD-ARGV1.patch | 69 + aports/busybox/APKBUILD | 199 + aports/busybox/README.md | 5 + aports/busybox/acpid.logrotate | 8 + aports/busybox/bbsuid.c | 106 + aports/busybox/busybox-extras.post-install | 10 + aports/busybox/busybox-extras.trigger | 1 + aports/busybox/busybox.post-install | 20 + aports/busybox/busybox.post-upgrade | 31 + aports/busybox/busybox.trigger | 19 + aports/busybox/busyboxconfig | 1096 ++++++ aports/busybox/busyboxconfig-extras | 1100 ++++++ aports/busybox/dad.if-up | 8 + aports/busybox/location-for-cpio.patch | 13 + aports/busybox/nologin.c | 38 + aports/ccache-cross-symlinks/APKBUILD | 27 + .../device-lg-mako/90-android-touch-dev.rules | 5 + aports/device-lg-mako/APKBUILD | 33 + aports/device-lg-mako/deviceinfo | 26 + aports/device-lg-mako/initfs-hook.sh | 4 + aports/device-lg-mako/profile.sh | 30 + aports/device-samsung-i9100/90-android.rules | 8 + .../ACTIVATE_DOWNLOAD_MODE.txt | 3 + .../ACTIVATE_RECOVERY.txt | 3 + aports/device-samsung-i9100/APKBUILD | 27 + aports/device-samsung-i9100/deviceinfo | 26 + aports/device-samsung-i9100/initfs-hook.sh | 4 + .../001_all_default-ssp-strong.patch | 215 ++ aports/gcc-armhf/002_all_default-relro.patch | 33 + .../003_all_default-fortify-source.patch | 40 + .../gcc-armhf/005_all_default-as-needed.patch | 241 ++ ...011_all_default-warn-format-security.patch | 43 + .../012_all_default-warn-trampolines.patch | 25 + .../020_all_msgfmt-libstdc++-link.patch | 39 + .../050_all_libiberty-asprintf.patch | 18 + aports/gcc-armhf/051_all_libiberty-pic.patch | 10 + .../053_all_libitm-no-fortify-source.patch | 27 + ...67_all_gcc-poison-system-directories.patch | 194 + .../090_all_pr55930-dependency-tracking.patch | 18 + aports/gcc-armhf/201-cilkrts.patch | 59 + aports/gcc-armhf/202-posix_memalign.patch | 42 + aports/gcc-armhf/203-libgcc_s.patch | 56 + .../204-linux_libc_has_function.patch | 25 + aports/gcc-armhf/205-nopie.patch | 75 + aports/gcc-armhf/207-static-pie.patch | 40 + ...in-gcc-add-musl-s390x-dynamic-linker.patch | 32 + aports/gcc-armhf/310-build-gcj-s390x.patch | 28 + aports/gcc-armhf/320-libffi-gnulinux.patch | 13 + aports/gcc-armhf/APKBUILD | 649 ++++ aports/gcc-armhf/ada-fixes.patch | 35 + aports/gcc-armhf/ada-musl.patch | 137 + aports/gcc-armhf/ada-shared.patch | 30 + aports/gcc-armhf/boehm-gc-musl.patch | 62 + aports/gcc-armhf/fix-cxxflags-passing.patch | 10 + aports/gcc-armhf/fix-gcj-iconv-musl.patch | 120 + aports/gcc-armhf/fix-gcj-musl.patch | 49 + aports/gcc-armhf/fix-gcj-stdgnu14-link.patch | 35 + aports/gcc-armhf/fix-rs6000-pie.patch | 59 + aports/gcc-armhf/gcc-4.8-build-args.patch | 41 + aports/gcc-armhf/gcc-4.9-musl-fortify.patch | 11 + aports/gcc-armhf/gcc-6.1-musl-libssp.patch | 20 + aports/gcc-armhf/gcc-pure64.patch | 89 + aports/gcc-armhf/libada-cross-shared.patch | 22 + .../libgcc-always-build-gcceh.a.patch | 39 + aports/gcc-cross-wrappers/APKBUILD | 28 + aports/heimdall/APKBUILD | 37 + aports/heimdall/heimdall_flash_kernel.sh | 33 + aports/heimdall/heimdall_wait_for_device.sh | 7 + aports/hello-world/APKBUILD | 31 + aports/hello-world/Makefile | 5 + aports/hello-world/main.c | 7 + aports/linux-lg-mako/APKBUILD | 107 + aports/linux-lg-mako/compiler-gcc6.h | 69 + aports/linux-lg-mako/config-lg-mako.armhf | 3439 +++++++++++++++++ .../gpu-msm-fix-gcc5-compile.patch | 33 + aports/linux-samsung-i9100/APKBUILD | 131 + aports/linux-samsung-i9100/compiler-gcc6.h | 69 + .../config-samsung-i9100.armhf | 3243 ++++++++++++++++ aports/linux-samsung-i9100/init | 29 + aports/mkbootimg/APKBUILD | 22 + aports/musl-armhf/APKBUILD | 50 + aports/postmarketos-base/APKBUILD | 26 + .../postmarketos-base.post-install | 27 + aports/postmarketos-base/profile.sh | 24 + aports/postmarketos-base/sudoers | 2 + aports/postmarketos-base/weston.ini | 2 + aports/postmarketos-demos/APKBUILD | 24 + aports/postmarketos-demos/Makefile | 3 + aports/postmarketos-demos/main.c | 59 + .../20-usb-shell.sh | 12 + .../APKBUILD | 21 + aports/postmarketos-mkinitfs/10-usb-unlock.sh | 51 + aports/postmarketos-mkinitfs/APKBUILD | 35 + aports/postmarketos-mkinitfs/TODO | 8 + aports/postmarketos-mkinitfs/init.sh.in | 37 + .../postmarketos-mkinitfs/init_functions.sh | 49 + aports/postmarketos-mkinitfs/mkinitfs.sh | 163 + .../postmarketos-mkinitfs.trigger | 27 + aports/postmarketos-mkinitfs/splash1.ppm.gz | Bin 0 -> 58937 bytes aports/postmarketos-mkinitfs/splash2.ppm.gz | Bin 0 -> 31586 bytes aports/qemu-user-static-repack/APKBUILD | 53 + aports/weston/APKBUILD | 130 + aports/weston/no_0hz_refresh_rate.patch | 14 + pmb/config/__init__.py | 2 +- 121 files changed, 15718 insertions(+), 1 deletion(-) create mode 100644 aports/binutils-armhf/APKBUILD create mode 100644 aports/binutils-armhf/CVE-2017-7614.patch create mode 100644 aports/binutils-armhf/binutils-ld-fix-static-linking.patch create mode 100644 aports/binutils-armhf/hash-style-gnu.patch create mode 100644 aports/busybox/0001-ash-exec-busybox.static.patch create mode 100644 aports/busybox/0002-app-location-for-vi-and-lspci.patch create mode 100644 aports/busybox/0003-udhcpc-set-default-discover-retries-to-5.patch create mode 100644 aports/busybox/0004-ping-make-ping-work-without-root-privileges.patch create mode 100644 aports/busybox/0005-fbsplash-support-console-switching.patch create mode 100644 aports/busybox/0006-fbsplash-support-image-and-bar-alignment-and-positio.patch create mode 100644 aports/busybox/0007-depmod-support-generating-kmod-binary-index-files.patch create mode 100644 aports/busybox/0008-login-move-check_securetty-to-libbb.patch create mode 100644 aports/busybox/0009-libbb-allow_blank-argument-for-ask_and_check_passwor.patch create mode 100644 aports/busybox/0010-su-FEATURE_SU_NULLOK_SECURE.patch create mode 100644 aports/busybox/0011-ntpd-postpone-hostname-resolution-if-fails-on-startu.patch create mode 100644 aports/busybox/0012-diff-add-support-for-no-dereference.patch create mode 100644 aports/busybox/0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch create mode 100644 aports/busybox/0014-ash-implement-exec-a-ARGV0-CMD-ARGV1.patch create mode 100644 aports/busybox/APKBUILD create mode 100644 aports/busybox/README.md create mode 100644 aports/busybox/acpid.logrotate create mode 100644 aports/busybox/bbsuid.c create mode 100644 aports/busybox/busybox-extras.post-install create mode 120000 aports/busybox/busybox-extras.trigger create mode 100644 aports/busybox/busybox.post-install create mode 100644 aports/busybox/busybox.post-upgrade create mode 100644 aports/busybox/busybox.trigger create mode 100644 aports/busybox/busyboxconfig create mode 100644 aports/busybox/busyboxconfig-extras create mode 100644 aports/busybox/dad.if-up create mode 100644 aports/busybox/location-for-cpio.patch create mode 100644 aports/busybox/nologin.c create mode 100644 aports/ccache-cross-symlinks/APKBUILD create mode 100644 aports/device-lg-mako/90-android-touch-dev.rules create mode 100644 aports/device-lg-mako/APKBUILD create mode 100644 aports/device-lg-mako/deviceinfo create mode 100644 aports/device-lg-mako/initfs-hook.sh create mode 100644 aports/device-lg-mako/profile.sh create mode 100644 aports/device-samsung-i9100/90-android.rules create mode 100644 aports/device-samsung-i9100/ACTIVATE_DOWNLOAD_MODE.txt create mode 100644 aports/device-samsung-i9100/ACTIVATE_RECOVERY.txt create mode 100644 aports/device-samsung-i9100/APKBUILD create mode 100644 aports/device-samsung-i9100/deviceinfo create mode 100644 aports/device-samsung-i9100/initfs-hook.sh create mode 100644 aports/gcc-armhf/001_all_default-ssp-strong.patch create mode 100644 aports/gcc-armhf/002_all_default-relro.patch create mode 100644 aports/gcc-armhf/003_all_default-fortify-source.patch create mode 100644 aports/gcc-armhf/005_all_default-as-needed.patch create mode 100644 aports/gcc-armhf/011_all_default-warn-format-security.patch create mode 100644 aports/gcc-armhf/012_all_default-warn-trampolines.patch create mode 100644 aports/gcc-armhf/020_all_msgfmt-libstdc++-link.patch create mode 100644 aports/gcc-armhf/050_all_libiberty-asprintf.patch create mode 100644 aports/gcc-armhf/051_all_libiberty-pic.patch create mode 100644 aports/gcc-armhf/053_all_libitm-no-fortify-source.patch create mode 100644 aports/gcc-armhf/067_all_gcc-poison-system-directories.patch create mode 100644 aports/gcc-armhf/090_all_pr55930-dependency-tracking.patch create mode 100644 aports/gcc-armhf/201-cilkrts.patch create mode 100644 aports/gcc-armhf/202-posix_memalign.patch create mode 100644 aports/gcc-armhf/203-libgcc_s.patch create mode 100644 aports/gcc-armhf/204-linux_libc_has_function.patch create mode 100644 aports/gcc-armhf/205-nopie.patch create mode 100644 aports/gcc-armhf/207-static-pie.patch create mode 100644 aports/gcc-armhf/300-main-gcc-add-musl-s390x-dynamic-linker.patch create mode 100644 aports/gcc-armhf/310-build-gcj-s390x.patch create mode 100644 aports/gcc-armhf/320-libffi-gnulinux.patch create mode 100644 aports/gcc-armhf/APKBUILD create mode 100644 aports/gcc-armhf/ada-fixes.patch create mode 100644 aports/gcc-armhf/ada-musl.patch create mode 100644 aports/gcc-armhf/ada-shared.patch create mode 100644 aports/gcc-armhf/boehm-gc-musl.patch create mode 100644 aports/gcc-armhf/fix-cxxflags-passing.patch create mode 100644 aports/gcc-armhf/fix-gcj-iconv-musl.patch create mode 100644 aports/gcc-armhf/fix-gcj-musl.patch create mode 100644 aports/gcc-armhf/fix-gcj-stdgnu14-link.patch create mode 100644 aports/gcc-armhf/fix-rs6000-pie.patch create mode 100644 aports/gcc-armhf/gcc-4.8-build-args.patch create mode 100644 aports/gcc-armhf/gcc-4.9-musl-fortify.patch create mode 100644 aports/gcc-armhf/gcc-6.1-musl-libssp.patch create mode 100644 aports/gcc-armhf/gcc-pure64.patch create mode 100644 aports/gcc-armhf/libada-cross-shared.patch create mode 100644 aports/gcc-armhf/libgcc-always-build-gcceh.a.patch create mode 100644 aports/gcc-cross-wrappers/APKBUILD create mode 100644 aports/heimdall/APKBUILD create mode 100644 aports/heimdall/heimdall_flash_kernel.sh create mode 100644 aports/heimdall/heimdall_wait_for_device.sh create mode 100644 aports/hello-world/APKBUILD create mode 100755 aports/hello-world/Makefile create mode 100644 aports/hello-world/main.c create mode 100644 aports/linux-lg-mako/APKBUILD create mode 100644 aports/linux-lg-mako/compiler-gcc6.h create mode 100644 aports/linux-lg-mako/config-lg-mako.armhf create mode 100644 aports/linux-lg-mako/gpu-msm-fix-gcc5-compile.patch create mode 100644 aports/linux-samsung-i9100/APKBUILD create mode 100644 aports/linux-samsung-i9100/compiler-gcc6.h create mode 100644 aports/linux-samsung-i9100/config-samsung-i9100.armhf create mode 100644 aports/linux-samsung-i9100/init create mode 100644 aports/mkbootimg/APKBUILD create mode 100644 aports/musl-armhf/APKBUILD create mode 100644 aports/postmarketos-base/APKBUILD create mode 100644 aports/postmarketos-base/postmarketos-base.post-install create mode 100644 aports/postmarketos-base/profile.sh create mode 100644 aports/postmarketos-base/sudoers create mode 100644 aports/postmarketos-base/weston.ini create mode 100644 aports/postmarketos-demos/APKBUILD create mode 100755 aports/postmarketos-demos/Makefile create mode 100644 aports/postmarketos-demos/main.c create mode 100644 aports/postmarketos-mkinitfs-hook-usb-shell/20-usb-shell.sh create mode 100644 aports/postmarketos-mkinitfs-hook-usb-shell/APKBUILD create mode 100644 aports/postmarketos-mkinitfs/10-usb-unlock.sh create mode 100644 aports/postmarketos-mkinitfs/APKBUILD create mode 100644 aports/postmarketos-mkinitfs/TODO create mode 100644 aports/postmarketos-mkinitfs/init.sh.in create mode 100644 aports/postmarketos-mkinitfs/init_functions.sh create mode 100644 aports/postmarketos-mkinitfs/mkinitfs.sh create mode 100644 aports/postmarketos-mkinitfs/postmarketos-mkinitfs.trigger create mode 100644 aports/postmarketos-mkinitfs/splash1.ppm.gz create mode 100644 aports/postmarketos-mkinitfs/splash2.ppm.gz create mode 100644 aports/qemu-user-static-repack/APKBUILD create mode 100644 aports/weston/APKBUILD create mode 100644 aports/weston/no_0hz_refresh_rate.patch diff --git a/aports/binutils-armhf/APKBUILD b/aports/binutils-armhf/APKBUILD new file mode 100644 index 00000000..0b445795 --- /dev/null +++ b/aports/binutils-armhf/APKBUILD @@ -0,0 +1,67 @@ +# Automatically generated aport, do not edit! +# Generator: pmbootstrap aportgen binutils-armhf +# Based on: main/binutils + + +pkgname="binutils-armhf" +pkgver=2.28 +pkgrel=2 +pkgdesc="Tools necessary to build programs for armhf targets" +url="http://www.gnu.org/software/binutils/" +depends="" +makedepends_build="" +makedepends_host="" +makedepends="gettext libtool autoconf automake bison" +arch="all" +license="GPL2 GPL3+ LGPL2 BSD" +subpackages="" +source="http://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.bz2 + binutils-ld-fix-static-linking.patch + hash-style-gnu.patch + CVE-2017-7614.patch + " +builddir="$srcdir/binutils-$pkgver" + +if [ "$CHOST" != "$CTARGET" ]; then + pkgname="binutils-$CTARGET_ARCH" + subpackages="" + sonameprefix="binutils:" +fi + +# secfixes: +# 2.28-r1: +# - CVE-2017-7614 + +build() { + _target="$(arch_to_hostspec armhf)" + cd "$builddir" + "$builddir"/configure \ + --build="$CBUILD" \ + --target=$_target \ + --with-lib-path=/usr/lib \ + --prefix=/usr \ + --with-sysroot=/usr/$_target \ + --enable-ld=default \ + --enable-gold=yes \ + --enable-plugins \ + --disable-multilib \ + --disable-werror \ + --disable-nls \ + || return 1 + make +} + +package() { + cd "$builddir" + make install DESTDIR="$pkgdir" || return 1 + + # remove man, info folders + rm -rf "$pkgdir"/usr/share +} + + + +sha512sums="ede2e4e59a800260eea8c14eafbaee94e30abadafd5c419a3370f9f62213cf027d6400a1d4970b6958bd4d220e675dcd483a708107016e7abd5c99d7392ba8fd binutils-2.28.tar.bz2 +ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch +24e853bf4b58621a77921087e599da2ace47ba3079e2d50fb5d08ae399be5f060c5fdd7f65257bcc0526aebc66e68b98aafd45d714c035da8ea2bdc3d8d4e375 hash-style-gnu.patch +03e2329a216eaaaebc00a2b487a8ffa57657845ea3428f24a1029eabaca2103cb00f39cb4824fe6b70ce9c124e0f850c893746fcf203a6a69288d19df624c60a CVE-2017-7614.patch" diff --git a/aports/binutils-armhf/CVE-2017-7614.patch b/aports/binutils-armhf/CVE-2017-7614.patch new file mode 100644 index 00000000..5f3b550f --- /dev/null +++ b/aports/binutils-armhf/CVE-2017-7614.patch @@ -0,0 +1,84 @@ +From ad32986fdf9da1c8748e47b8b45100398223dba8 Mon Sep 17 00:00:00 2001 +From: Nick Clifton +Date: Tue, 4 Apr 2017 11:23:36 +0100 +Subject: [PATCH] Fix null pointer dereferences when using a link built with + clang. + + PR binutils/21342 + * elflink.c (_bfd_elf_define_linkage_sym): Prevent null pointer + dereference. + (bfd_elf_final_link): Only initialize the extended symbol index + section if there are extended symbol tables to list. +--- + bfd/elflink.c | 35 +++++++++++++++++++++-------------- + 2 files changed, 29 insertions(+), 14 deletions(-) + +diff --git a/bfd/elflink.c b/bfd/elflink.c +index 776357f..9bf75c8 100644 +--- a/bfd/elflink.c ++++ b/bfd/elflink.c +@@ -119,15 +119,18 @@ _bfd_elf_define_linkage_sym (bfd *abfd, + defined in shared libraries can't be overridden, because we + lose the link to the bfd which is via the symbol section. */ + h->root.type = bfd_link_hash_new; ++ bh = &h->root; + } ++ else ++ bh = NULL; + +- bh = &h->root; + bed = get_elf_backend_data (abfd); + if (!_bfd_generic_link_add_one_symbol (info, abfd, name, BSF_GLOBAL, + sec, 0, NULL, FALSE, bed->collect, + &bh)) + return NULL; + h = (struct elf_link_hash_entry *) bh; ++ BFD_ASSERT (h != NULL); + h->def_regular = 1; + h->non_elf = 0; + h->root.linker_def = 1; +@@ -12038,24 +12041,28 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) + { + /* Finish up and write out the symbol string table (.strtab) + section. */ +- Elf_Internal_Shdr *symstrtab_hdr; ++ Elf_Internal_Shdr *symstrtab_hdr = NULL; + file_ptr off = symtab_hdr->sh_offset + symtab_hdr->sh_size; + +- symtab_shndx_hdr = & elf_symtab_shndx_list (abfd)->hdr; +- if (symtab_shndx_hdr != NULL && symtab_shndx_hdr->sh_name != 0) ++ if (elf_symtab_shndx_list (abfd)) + { +- symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX; +- symtab_shndx_hdr->sh_entsize = sizeof (Elf_External_Sym_Shndx); +- symtab_shndx_hdr->sh_addralign = sizeof (Elf_External_Sym_Shndx); +- amt = bfd_get_symcount (abfd) * sizeof (Elf_External_Sym_Shndx); +- symtab_shndx_hdr->sh_size = amt; ++ symtab_shndx_hdr = & elf_symtab_shndx_list (abfd)->hdr; + +- off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr, +- off, TRUE); ++ if (symtab_shndx_hdr != NULL && symtab_shndx_hdr->sh_name != 0) ++ { ++ symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX; ++ symtab_shndx_hdr->sh_entsize = sizeof (Elf_External_Sym_Shndx); ++ symtab_shndx_hdr->sh_addralign = sizeof (Elf_External_Sym_Shndx); ++ amt = bfd_get_symcount (abfd) * sizeof (Elf_External_Sym_Shndx); ++ symtab_shndx_hdr->sh_size = amt; + +- if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0 +- || (bfd_bwrite (flinfo.symshndxbuf, amt, abfd) != amt)) +- return FALSE; ++ off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr, ++ off, TRUE); ++ ++ if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0 ++ || (bfd_bwrite (flinfo.symshndxbuf, amt, abfd) != amt)) ++ return FALSE; ++ } + } + + symstrtab_hdr = &elf_tdata (abfd)->strtab_hdr; +-- +2.9.3 + diff --git a/aports/binutils-armhf/binutils-ld-fix-static-linking.patch b/aports/binutils-armhf/binutils-ld-fix-static-linking.patch new file mode 100644 index 00000000..bc5d7626 --- /dev/null +++ b/aports/binutils-armhf/binutils-ld-fix-static-linking.patch @@ -0,0 +1,46 @@ +This fixes static linking for our hardened toolchain +diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc +index e8126cb..9532bfb 100644 +--- a/ld/scripttempl/elf.sc ++++ b/ld/scripttempl/elf.sc +@@ -235,8 +235,8 @@ test "${LARGE_SECTIONS}" = "yes" && LARGE_SECTIONS=" + if test "${ENABLE_INITFINI_ARRAY}" = "yes"; then + SORT_INIT_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))" + SORT_FINI_ARRAY="KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))" +- CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors" +- DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors" ++ CTORS_IN_INIT_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .ctors" ++ DTORS_IN_FINI_ARRAY="EXCLUDE_FILE (*crtbegin*.o *crtend*.o $OTHER_EXCLUDE_FILES) .dtors" + else + SORT_INIT_ARRAY="KEEP (*(SORT(.init_array.*)))" + SORT_FINI_ARRAY="KEEP (*(SORT(.fini_array.*)))" +@@ -270,15 +270,14 @@ CTOR=".ctors ${CONSTRUCTING-0} : + doesn't matter which directory crtbegin.o + is in. */ + +- KEEP (*crtbegin.o(.ctors)) +- KEEP (*crtbegin?.o(.ctors)) ++ KEEP (*crtbegin*.o(.ctors)) + + /* We don't want to include the .ctor section from + the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + +- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .ctors)) ++ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + ${CONSTRUCTING+${CTOR_END}} +@@ -286,9 +285,8 @@ CTOR=".ctors ${CONSTRUCTING-0} : + DTOR=".dtors ${CONSTRUCTING-0} : + { + ${CONSTRUCTING+${DTOR_START}} +- KEEP (*crtbegin.o(.dtors)) +- KEEP (*crtbegin?.o(.dtors)) +- KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o $OTHER_EXCLUDE_FILES) .dtors)) ++ KEEP (*crtbegin*.o(.dtors)) ++ KEEP (*(EXCLUDE_FILE (*crtend*.o $OTHER_EXCLUDE_FILES) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + ${CONSTRUCTING+${DTOR_END}} diff --git a/aports/binutils-armhf/hash-style-gnu.patch b/aports/binutils-armhf/hash-style-gnu.patch new file mode 100644 index 00000000..2e6c0197 --- /dev/null +++ b/aports/binutils-armhf/hash-style-gnu.patch @@ -0,0 +1,31 @@ +# DP: Default to --hash-style=gnu in ld.bfd and ld.gold. + +--- a/ld/ldmain.c ++++ b/ld/ldmain.c +@@ -287,6 +288,15 @@ + emulation = get_emulation (argc, argv); + ldemul_choose_mode (emulation); + default_target = ldemul_choose_target (argc, argv); ++ ++ /* Default to --hash-style=gnu */ ++ if (strcmp (default_target, "elf32-tradbigmips") != 0 ++ && strcmp (default_target, "elf32-tradlittlemips") != 0) ++ { ++ link_info.emit_gnu_hash = TRUE; ++ link_info.emit_hash = FALSE; ++ } ++ + config.maxpagesize = bfd_emul_get_maxpagesize (default_target); + config.commonpagesize = bfd_emul_get_commonpagesize (default_target); + lang_init (); +--- a/gold/options.h ++++ b/gold/options.h +@@ -794,7 +794,7 @@ + N_("Min fraction of empty buckets in dynamic hash"), + N_("FRACTION")); + +- DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "sysv", ++ DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "gnu", + N_("Dynamic hash style"), N_("[sysv,gnu,both]"), + {"sysv", "gnu", "both"}); + diff --git a/aports/busybox/0001-ash-exec-busybox.static.patch b/aports/busybox/0001-ash-exec-busybox.static.patch new file mode 100644 index 00000000..7bdf8742 --- /dev/null +++ b/aports/busybox/0001-ash-exec-busybox.static.patch @@ -0,0 +1,25 @@ +From 6ad2305eb299c864dbe04b368a9921e91fd41bcb Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Thu, 4 Aug 2016 11:03:07 +0200 +Subject: [PATCH 01/12] ash: exec busybox.static + +--- + shell/ash.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/shell/ash.c b/shell/ash.c +index 8d8cc466b..1b1012e76 100644 +--- a/shell/ash.c ++++ b/shell/ash.c +@@ -7552,6 +7552,8 @@ tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) char *cmd, char **argv, char ** + } + /* re-exec ourselves with the new arguments */ + execve(bb_busybox_exec_path, argv, envp); ++ execve("/bin/busybox.static",argv,envp); ++ execve("/bin/busybox",argv,envp); + /* If they called chroot or otherwise made the binary no longer + * executable, fall through */ + } +-- +2.11.0 + diff --git a/aports/busybox/0002-app-location-for-vi-and-lspci.patch b/aports/busybox/0002-app-location-for-vi-and-lspci.patch new file mode 100644 index 00000000..eb2e069e --- /dev/null +++ b/aports/busybox/0002-app-location-for-vi-and-lspci.patch @@ -0,0 +1,39 @@ +From a3016293eb42eb3679400148ed4520005ff6b8a7 Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Tue, 27 Dec 2016 20:46:59 +0100 +Subject: [PATCH 02/12] app location for vi and lspci + +--- + editors/vi.c | 2 +- + util-linux/lspci.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/editors/vi.c b/editors/vi.c +index 38a4692fd..dd3efda75 100644 +--- a/editors/vi.c ++++ b/editors/vi.c +@@ -166,7 +166,7 @@ + //config: Unless you want more (or less) frequent "undo points" while typing, + //config: you should probably leave this unchanged. + +-//applet:IF_VI(APPLET(vi, BB_DIR_BIN, BB_SUID_DROP)) ++//applet:IF_VI(APPLET(vi, BB_DIR_USR_BIN, BB_SUID_DROP)) + + //kbuild:lib-$(CONFIG_VI) += vi.o + +diff --git a/util-linux/lspci.c b/util-linux/lspci.c +index 8b38a2366..f918f0972 100644 +--- a/util-linux/lspci.c ++++ b/util-linux/lspci.c +@@ -16,7 +16,7 @@ + //config: + //config: This version uses sysfs (/sys/bus/pci/devices) only. + +-//applet:IF_LSPCI(APPLET(lspci, BB_DIR_USR_BIN, BB_SUID_DROP)) ++//applet:IF_LSPCI(APPLET(lspci, BB_DIR_USR_SBIN, BB_SUID_DROP)) + + //kbuild:lib-$(CONFIG_LSPCI) += lspci.o + +-- +2.11.0 + diff --git a/aports/busybox/0003-udhcpc-set-default-discover-retries-to-5.patch b/aports/busybox/0003-udhcpc-set-default-discover-retries-to-5.patch new file mode 100644 index 00000000..89cf6cd1 --- /dev/null +++ b/aports/busybox/0003-udhcpc-set-default-discover-retries-to-5.patch @@ -0,0 +1,35 @@ +From 5b9fc802f7f3bb7e1b0c539a3d6101dcca5399e9 Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Thu, 4 Aug 2016 11:08:35 +0200 +Subject: [PATCH 03/12] udhcpc: set default discover retries to 5 + +Some slower nics needs more attempts to get a lease +--- + networking/udhcp/dhcpc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c +index 0e236261b..3c36bc39b 100644 +--- a/networking/udhcp/dhcpc.c ++++ b/networking/udhcp/dhcpc.c +@@ -1189,7 +1189,7 @@ static void client_background(void) + //usage: "\n -s,--script PROG Run PROG at DHCP events (default "CONFIG_UDHCPC_DEFAULT_SCRIPT")" + //usage: "\n -p,--pidfile FILE Create pidfile" + //usage: "\n -B,--broadcast Request broadcast replies" +-//usage: "\n -t,--retries N Send up to N discover packets (default 3)" ++//usage: "\n -t,--retries N Send up to N discover packets (default 5)" + //usage: "\n -T,--timeout SEC Pause between packets (default 3)" + //usage: "\n -A,--tryagain SEC Wait if lease is not obtained (default 20)" + //usage: "\n -n,--now Exit if lease is not obtained" +@@ -1272,7 +1272,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv) + llist_t *list_x = NULL; + int tryagain_timeout = 20; + int discover_timeout = 3; +- int discover_retries = 3; ++ int discover_retries = 5; + uint32_t server_addr = server_addr; /* for compiler */ + uint32_t requested_ip = 0; + uint32_t xid = xid; /* for compiler */ +-- +2.11.0 + diff --git a/aports/busybox/0004-ping-make-ping-work-without-root-privileges.patch b/aports/busybox/0004-ping-make-ping-work-without-root-privileges.patch new file mode 100644 index 00000000..91befa65 --- /dev/null +++ b/aports/busybox/0004-ping-make-ping-work-without-root-privileges.patch @@ -0,0 +1,197 @@ +From 9432235d7dc8d4a2bc9b546e63e52e84b7cad5ce Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Tue, 29 Mar 2016 18:59:22 +0200 +Subject: [PATCH 04/12] ping: make ping work without root privileges + +--- + networking/ping.c | 103 +++++++++++++++++++++++++++++++++++++++++++++--------- + 1 file changed, 87 insertions(+), 16 deletions(-) + +diff --git a/networking/ping.c b/networking/ping.c +index d0ef7ba62..73e903927 100644 +--- a/networking/ping.c ++++ b/networking/ping.c +@@ -155,6 +155,7 @@ enum { + pingsock = 0, + }; + ++static int using_dgram; + static void + #if ENABLE_PING6 + create_icmp_socket(len_and_sockaddr *lsa) +@@ -171,9 +172,23 @@ create_icmp_socket(void) + #endif + sock = socket(AF_INET, SOCK_RAW, 1); /* 1 == ICMP */ + if (sock < 0) { +- if (errno == EPERM) +- bb_error_msg_and_die(bb_msg_perm_denied_are_you_root); +- bb_perror_msg_and_die(bb_msg_can_not_create_raw_socket); ++ if (errno != EPERM) ++ bb_perror_msg_and_die(bb_msg_can_not_create_raw_socket); ++#if defined(__linux__) || defined(__APPLE__) ++ /* We don't have root privileges. Try SOCK_DGRAM instead. ++ * Linux needs net.ipv4.ping_group_range for this to work. ++ * MacOSX allows ICMP_ECHO, ICMP_TSTAMP or ICMP_MASKREQ ++ */ ++#if ENABLE_PING6 ++ if (lsa->u.sa.sa_family == AF_INET6) ++ sock = socket(AF_INET6, SOCK_DGRAM, IPPROTO_ICMPV6); ++ else ++#endif ++ sock = socket(AF_INET, SOCK_DGRAM, 1); /* 1 == ICMP */ ++ if (sock < 0) ++#endif ++ bb_error_msg_and_die(bb_msg_perm_denied_are_you_root); ++ using_dgram = 1; + } + + xmove_fd(sock, pingsock); +@@ -226,10 +241,12 @@ static void ping4(len_and_sockaddr *lsa) + bb_perror_msg("recvfrom"); + continue; + } +- if (c >= 76) { /* ip + icmp */ +- struct iphdr *iphdr = (struct iphdr *) G.packet; ++ if (c >= 76 || using_dgram && (c == 64)) { /* ip + icmp */ ++ if(!using_dgram) { ++ struct iphdr *iphdr = (struct iphdr *) G.packet; + +- pkt = (struct icmp *) (G.packet + (iphdr->ihl << 2)); /* skip ip hdr */ ++ pkt = (struct icmp *) (G.packet + (iphdr->ihl << 2)); /* skip ip hdr */ ++ } else pkt = (struct icmp *) G.packet; + if (pkt->icmp_id != G.myid) + continue; /* not our ping */ + if (pkt->icmp_type == ICMP_ECHOREPLY) +@@ -627,19 +644,21 @@ static void unpack_tail(int sz, uint32_t *tp, + } + static void unpack4(char *buf, int sz, struct sockaddr_in *from) + { +- struct icmp *icmppkt; + struct iphdr *iphdr; ++ struct icmp *icmppkt; + int hlen; + + /* discard if too short */ + if (sz < (datalen + ICMP_MINLEN)) + return; ++ if(!using_dgram) { ++ /* check IP header */ ++ iphdr = (struct iphdr *) buf; ++ hlen = iphdr->ihl << 2; ++ sz -= hlen; ++ icmppkt = (struct icmp *) (buf + hlen); ++ } else icmppkt = (struct icmp *) buf; + +- /* check IP header */ +- iphdr = (struct iphdr *) buf; +- hlen = iphdr->ihl << 2; +- sz -= hlen; +- icmppkt = (struct icmp *) (buf + hlen); + if (icmppkt->icmp_id != myid) + return; /* not our ping */ + +@@ -651,7 +670,7 @@ static void unpack4(char *buf, int sz, struct sockaddr_in *from) + tp = (uint32_t *) icmppkt->icmp_data; + unpack_tail(sz, tp, + inet_ntoa(*(struct in_addr *) &from->sin_addr.s_addr), +- recv_seq, iphdr->ttl); ++ recv_seq, using_dgram ? 42 : iphdr->ttl); + } else if (icmppkt->icmp_type != ICMP_ECHO) { + bb_error_msg("warning: got ICMP %d (%s)", + icmppkt->icmp_type, +@@ -695,11 +714,31 @@ static void ping4(len_and_sockaddr *lsa) + int sockopt; + + pingaddr.sin = lsa->u.sin; +- if (source_lsa) { ++ if (source_lsa && !using_dgram) { + if (setsockopt(pingsock, IPPROTO_IP, IP_MULTICAST_IF, + &source_lsa->u.sa, source_lsa->len)) + bb_error_msg_and_die("can't set multicast source interface"); + xbind(pingsock, &source_lsa->u.sa, source_lsa->len); ++ } else if(using_dgram) { ++ struct sockaddr_in sa; ++ socklen_t sl; ++ ++ sa.sin_family = AF_INET; ++ sa.sin_port = 0; ++ sa.sin_addr.s_addr = source_lsa ? ++ source_lsa->u.sin.sin_addr.s_addr : 0; ++ sl = sizeof(sa); ++ ++ if (bind(pingsock, (struct sockaddr *) &sa, sl) == -1) { ++ perror("bind"); ++ exit(2); ++ } ++ ++ if (getsockname(pingsock, (struct sockaddr *) &sa, &sl) == -1) { ++ perror("getsockname"); ++ exit(2); ++ } ++ myid = sa.sin_port; + } + + /* enable broadcast pings */ +@@ -716,6 +755,15 @@ static void ping4(len_and_sockaddr *lsa) + setsockopt_int(pingsock, IPPROTO_IP, IP_MULTICAST_TTL, opt_ttl); + } + ++ if(using_dgram) { ++ int hold = 65536; ++ if (setsockopt(pingsock, SOL_IP, IP_RECVTTL, (char *)&hold, sizeof(hold))) ++ perror("WARNING: setsockopt(IP_RECVTTL)"); ++ if (setsockopt(pingsock, SOL_IP, IP_RETOPTS, (char *)&hold, sizeof(hold))) ++ perror("WARNING: setsockopt(IP_RETOPTS)"); ++ ++ } ++ + signal(SIGINT, print_stats_and_exit); + + /* start the ping's going ... */ +@@ -749,10 +797,33 @@ static void ping6(len_and_sockaddr *lsa) + char control_buf[CMSG_SPACE(36)]; + + pingaddr.sin6 = lsa->u.sin6; +- if (source_lsa) ++ if (source_lsa && !using_dgram) + xbind(pingsock, &source_lsa->u.sa, source_lsa->len); ++ else if(using_dgram) { ++ struct sockaddr_in6 sa = {0}; ++ socklen_t sl; ++ ++ sa.sin6_family = AF_INET6; ++ sa.sin6_port = 0; ++ if(source_lsa) { ++ memcpy(&sa.sin6_addr, &source_lsa->u.sin6.sin6_addr, sizeof(struct in6_addr)); ++ } ++ sl = sizeof(sa); ++ ++ if (bind(pingsock, (struct sockaddr *) &sa, sl) == -1) { ++ perror("bind"); ++ exit(2); ++ } ++ ++ if (getsockname(pingsock, (struct sockaddr *) &sa, &sl) == -1) { ++ perror("getsockname"); ++ exit(2); ++ } ++ myid = sa.sin6_port; ++ } + + #ifdef ICMP6_FILTER ++ if(!using_dgram) + { + struct icmp6_filter filt; + if (!(option_mask32 & OPT_VERBOSE)) { +@@ -880,7 +951,7 @@ static int common_ping_main(int opt, char **argv) + if (opt & OPT_p) + G.pattern = xstrtou_range(str_p, 16, 0, 255); + +- myid = (uint16_t) getpid(); ++ if (!using_dgram) myid = (uint16_t) getpid(); + hostname = argv[optind]; + #if ENABLE_PING6 + { +-- +2.11.0 + diff --git a/aports/busybox/0005-fbsplash-support-console-switching.patch b/aports/busybox/0005-fbsplash-support-console-switching.patch new file mode 100644 index 00000000..0d9b8786 --- /dev/null +++ b/aports/busybox/0005-fbsplash-support-console-switching.patch @@ -0,0 +1,187 @@ +From f5660f60455d2a86fd78d5a8949a31864233faf8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Mon, 24 Sep 2012 07:58:29 +0300 +Subject: [PATCH 05/12] fbsplash: support console switching +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Timo Teräs +--- + miscutils/fbsplash.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++----- + 1 file changed, 76 insertions(+), 7 deletions(-) + +diff --git a/miscutils/fbsplash.c b/miscutils/fbsplash.c +index fc6c9b953..ec5947314 100644 +--- a/miscutils/fbsplash.c ++++ b/miscutils/fbsplash.c +@@ -47,7 +47,7 @@ + //kbuild:lib-$(CONFIG_FBSPLASH) += fbsplash.o + + //usage:#define fbsplash_trivial_usage +-//usage: "-s IMGFILE [-c] [-d DEV] [-i INIFILE] [-f CMD]" ++//usage: "-s IMGFILE [-c] [-d DEV] [-i INIFILE] [-f CMD] [-T tty]" + //usage:#define fbsplash_full_usage "\n\n" + //usage: " -s Image" + //usage: "\n -c Hide cursor" +@@ -57,11 +57,17 @@ + //usage: "\n BAR_R,BAR_G,BAR_B" + //usage: "\n -f Control pipe (else exit after drawing image)" + //usage: "\n commands: 'NN' (% for progress bar) or 'exit'" ++//usage: "\n -T Switch to TTY to hide all console messages" + + #include "libbb.h" + #include "common_bufsiz.h" + #include + ++#include ++#include ++#include ++#include ++ + /* If you want logging messages on /tmp/fbsplash.log... */ + #define DEBUG 0 + +@@ -73,6 +79,8 @@ struct globals { + unsigned char *addr; // pointer to framebuffer memory + unsigned ns[7]; // n-parameters + const char *image_filename; ++ int silent_tty, fd_tty_s; ++ bool do_not_draw; + struct fb_var_screeninfo scr_var; + struct fb_fix_screeninfo scr_fix; + unsigned bytes_per_pixel; +@@ -483,6 +491,11 @@ static void init(const char *cfg_filename) + config_close(parser); + } + ++static void sighandler(int sig) ++{ ++ ioctl(G.fd_tty_s, VT_RELDISP, sig == SIGUSR1 ? 1 : 2); ++ G.do_not_draw = (sig != SIGUSR2); ++} + + int fbsplash_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; + int fbsplash_main(int argc UNUSED_PARAM, char **argv) +@@ -492,6 +505,9 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv) + char *num_buf; + unsigned num; + bool bCursorOff; ++ int fd_tty0, active_vt; ++ struct vt_stat vtstat; ++ struct vt_mode vt; + + INIT_G(); + +@@ -499,8 +515,10 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv) + fb_device = "/dev/fb0"; + cfg_filename = NULL; + fifo_filename = NULL; +- bCursorOff = 1 & getopt32(argv, "cs:d:i:f:", +- &G.image_filename, &fb_device, &cfg_filename, &fifo_filename); ++ opt_complementary = "T+"; // numeric params ++ bCursorOff = 1 & getopt32(argv, "cs:d:i:f:T:", ++ &G.image_filename, &fb_device, &cfg_filename, &fifo_filename, ++ &G.silent_tty); + + // parse configuration file + if (cfg_filename) +@@ -510,11 +528,43 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv) + if (!G.image_filename) + bb_show_usage(); + ++ fd_tty0 = get_console_fd_or_die(); ++ if (G.silent_tty) { ++ char buf[16]; ++ ++ /* Initialize TTY */ ++ bb_signals((1LL << SIGUSR1) | (1LL << SIGUSR2), sighandler); ++ snprintf(buf, sizeof(buf), "/dev/tty%d", G.silent_tty); ++ G.fd_tty_s = xopen(buf, O_RDWR | O_NOCTTY); ++ ++ /* Activate TTY */ ++ xioctl(fd_tty0, VT_GETSTATE, &vtstat); ++ active_vt = vtstat.v_active; ++ console_make_active(fd_tty0, G.silent_tty); ++ ++ /* Get notifications on console changes */ ++ vt.mode = VT_PROCESS; ++ vt.waitv = 0; ++ vt.relsig = SIGUSR1; ++ vt.acqsig = SIGUSR2; ++ ioctl(G.fd_tty_s, VT_SETMODE, &vt); ++ ++ /* Redirect all kernel messages to tty1 so that they don't get ++ * printed over our silent splash image. And clear it. */ ++ buf[0] = TIOCL_SETKMSGREDIRECT; ++ buf[1] = 1; ++ ioctl(G.fd_tty_s, TIOCLINUX, buf); ++ full_write(G.fd_tty_s, "\e[H\e[2J" "\e[?17;0c", 7+8); ++ ioctl(G.fd_tty_s, KDSETMODE, KD_GRAPHICS); ++ } else { ++ G.fd_tty_s = STDOUT_FILENO; ++ } ++ + fb_open(fb_device); + + if (fifo_filename && bCursorOff) { + // hide cursor (BEFORE any fb ops) +- full_write(STDOUT_FILENO, "\033[?25l", 6); ++ full_write(G.fd_tty_s, "\033[?25l", 6); + } + + fb_drawimage(); +@@ -522,6 +572,7 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv) + if (!fifo_filename) + return EXIT_SUCCESS; + ++ sig_block(SIGUSR1); + fp = xfopen_stdin(fifo_filename); + if (fp != stdin) { + // For named pipes, we want to support this: +@@ -537,8 +588,9 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv) + // and become an additional writer :) + open(fifo_filename, O_WRONLY); // errors are ignored + } +- + fb_drawprogressbar(0); ++ sig_unblock(SIGUSR1); ++ + // Block on read, waiting for some input. + // Use of style I/O allows to correctly + // handle a case when we have many buffered lines +@@ -553,12 +605,29 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv) + #if DEBUG + DEBUG_MESSAGE(itoa(num)); + #endif +- fb_drawprogressbar(num); ++ sig_block(SIGUSR1); ++ if (!G.do_not_draw) ++ fb_drawprogressbar(num); ++ sig_unblock(SIGUSR1); + } + free(num_buf); + } + +- if (bCursorOff) // restore cursor ++ if (G.silent_tty) { ++ usleep(100*1000); ++ ++ ioctl(G.fd_tty_s, VT_RELDISP, 1); ++ ioctl(G.fd_tty_s, KDSETMODE, KD_TEXT); ++ vt.mode = VT_AUTO; ++ vt.waitv = 0; ++ ioctl(G.fd_tty_s, VT_SETMODE, &vt); ++ close(G.fd_tty_s); ++ ++ xioctl(fd_tty0, VT_GETSTATE, &vtstat); ++ if (vtstat.v_active == G.silent_tty) ++ console_make_active(fd_tty0, active_vt); ++ ioctl(fd_tty0, VT_DISALLOCATE, (void *)(ptrdiff_t)G.silent_tty); ++ } else if (bCursorOff) // restore cursor + full_write(STDOUT_FILENO, "\033[?25h", 6); + + return EXIT_SUCCESS; +-- +2.11.0 + diff --git a/aports/busybox/0006-fbsplash-support-image-and-bar-alignment-and-positio.patch b/aports/busybox/0006-fbsplash-support-image-and-bar-alignment-and-positio.patch new file mode 100644 index 00000000..b930cb11 --- /dev/null +++ b/aports/busybox/0006-fbsplash-support-image-and-bar-alignment-and-positio.patch @@ -0,0 +1,185 @@ +From 1dab8b58ff051d529fd3fd74caf6016e51b10ae3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Fri, 21 Nov 2014 16:06:34 +0200 +Subject: [PATCH 06/12] fbsplash: support image and bar alignment and + positioning +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Timo Teräs +--- + miscutils/fbsplash.c | 91 +++++++++++++++++++++++++++++++++++++++++++--------- + 1 file changed, 76 insertions(+), 15 deletions(-) + +diff --git a/miscutils/fbsplash.c b/miscutils/fbsplash.c +index ec5947314..34bbf81f5 100644 +--- a/miscutils/fbsplash.c ++++ b/miscutils/fbsplash.c +@@ -53,6 +53,7 @@ + //usage: "\n -c Hide cursor" + //usage: "\n -d Framebuffer device (default /dev/fb0)" + //usage: "\n -i Config file (var=value):" ++//usage: "\n IMAGE_ALIGN" + //usage: "\n BAR_LEFT,BAR_TOP,BAR_WIDTH,BAR_HEIGHT" + //usage: "\n BAR_R,BAR_G,BAR_B" + //usage: "\n -f Control pipe (else exit after drawing image)" +@@ -71,13 +72,38 @@ + /* If you want logging messages on /tmp/fbsplash.log... */ + #define DEBUG 0 + ++enum { ++ image_align, ++ ++ image_posx, ++ image_posy, ++ bar_width, ++ bar_height, ++ bar_posx, ++ bar_posy, ++ bar_colr, ++ bar_colg, ++ bar_colb, ++ ++ debug ++}; ++ ++#define nimage_align ns[image_align] ++#define nbar_width ns[bar_width] ++#define nbar_height ns[bar_height] ++#define nbar_posx ns[bar_posx] ++#define nbar_posy ns[bar_posy] ++#define nbar_colr ns[bar_colr] ++#define nbar_colg ns[bar_colg] ++#define nbar_colb ns[bar_colb] ++ + struct globals { + #if DEBUG + bool bdebug_messages; // enable/disable logging + FILE *logfile_fd; // log file + #endif + unsigned char *addr; // pointer to framebuffer memory +- unsigned ns[7]; // n-parameters ++ unsigned ns[debug+1]; // n-parameters + const char *image_filename; + int silent_tty, fd_tty_s; + bool do_not_draw; +@@ -94,14 +120,6 @@ struct globals { + SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \ + } while (0) + +-#define nbar_width ns[0] // progress bar width +-#define nbar_height ns[1] // progress bar height +-#define nbar_posx ns[2] // progress bar horizontal position +-#define nbar_posy ns[3] // progress bar vertical position +-#define nbar_colr ns[4] // progress bar color red component +-#define nbar_colg ns[5] // progress bar color green component +-#define nbar_colb ns[6] // progress bar color blue component +- + #if DEBUG + #define DEBUG_MESSAGE(strMessage, args...) \ + if (G.bdebug_messages) { \ +@@ -382,7 +400,7 @@ static void fb_drawimage(void) + FILE *theme_file; + char *read_ptr; + unsigned char *pixline; +- unsigned i, j, width, height, line_size; ++ int i, j, width, height, line_size, xoffs, yoffs, xstart; + + if (LONE_DASH(G.image_filename)) { + theme_file = stdin; +@@ -432,18 +450,46 @@ static void fb_drawimage(void) + line_size = width*3; + pixline = xmalloc(line_size); + ++#if 0 + if (width > G.scr_var.xres) + width = G.scr_var.xres; + if (height > G.scr_var.yres) + height = G.scr_var.yres; +- for (j = 0; j < height; j++) { ++#endif ++ ++ xoffs = yoffs = 0; ++ switch (G.nimage_align % 3) { ++ case 1: xoffs = (G.scr_var.xres - width) / 2; break; ++ case 2: xoffs = G.scr_var.xres - width; break; ++ } ++ xstart = 0; ++ if (xoffs < 0) { ++ xstart = -xoffs; ++ width -= xstart; ++ xoffs = 0; ++ } ++ xoffs *= G.bytes_per_pixel; ++ if (width > G.scr_var.xres) ++ width = G.scr_var.xres; ++ ++ switch (G.nimage_align / 3) { ++ case 1: yoffs = (G.scr_var.yres - height) / 2; break; ++ case 2: yoffs = G.scr_var.yres - height; break; ++ } ++ ++ for (j = 0; j < height && yoffs < G.scr_var.yres; j++, yoffs++) { + unsigned char *pixel; + unsigned char *src; + + if (fread(pixline, 1, line_size, theme_file) != line_size) + bb_error_msg_and_die("bad PPM file '%s'", G.image_filename); ++ ++ if (yoffs < 0) ++ continue; ++ + pixel = pixline; +- src = G.addr + j * G.scr_fix.line_length; ++ src = G.addr + yoffs * G.scr_fix.line_length + xoffs; ++ + for (i = 0; i < width; i++) { + unsigned thispix = fb_pixel_value(pixel[0], pixel[1], pixel[2]); + fb_write_pixel(src, thispix); +@@ -462,9 +508,17 @@ static void fb_drawimage(void) + */ + static void init(const char *cfg_filename) + { ++ static const char align_names[] ALIGN1 = ++ "LT\0" "CT\0" "RT\0" ++ "LM\0" "CM\0" "RM\0" ++ "LB\0" "CB\0" "RB\0"; + static const char param_names[] ALIGN1 = ++ "IMAGE_ALIGN\0" ++ ++ "IMAGE_X\0" "IMAGE_Y\0" + "BAR_WIDTH\0" "BAR_HEIGHT\0" + "BAR_LEFT\0" "BAR_TOP\0" ++ + "BAR_R\0" "BAR_G\0" "BAR_B\0" + #if DEBUG + "DEBUG\0" +@@ -474,14 +528,21 @@ static void init(const char *cfg_filename) + parser_t *parser = config_open2(cfg_filename, xfopen_stdin); + while (config_read(parser, token, 2, 2, "#=", + (PARSE_NORMAL | PARSE_MIN_DIE) & ~(PARSE_TRIM | PARSE_COLLAPSE))) { +- unsigned val = xatoi_positive(token[1]); ++ unsigned val; + int i = index_in_strings(param_names, token[0]); ++ + if (i < 0) + bb_error_msg_and_die("syntax error: %s", token[0]); +- if (i >= 0 && i < 7) ++ ++ if (i <= image_align) ++ val = index_in_strings(align_names, token[1]); ++ else ++ val = xatoi_positive(token[1]); ++ ++ if (i < debug) + G.ns[i] = val; + #if DEBUG +- if (i == 7) { ++ if (i == debug) { + G.bdebug_messages = val; + if (G.bdebug_messages) + G.logfile_fd = xfopen_for_write("/tmp/fbsplash.log"); +-- +2.11.0 + diff --git a/aports/busybox/0007-depmod-support-generating-kmod-binary-index-files.patch b/aports/busybox/0007-depmod-support-generating-kmod-binary-index-files.patch new file mode 100644 index 00000000..ccd4f25f --- /dev/null +++ b/aports/busybox/0007-depmod-support-generating-kmod-binary-index-files.patch @@ -0,0 +1,511 @@ +From 0445b9734e02856a66cc7925a6816f26fedc822d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Timo=20Ter=C3=A4s?= +Date: Sun, 25 Oct 2015 22:21:41 +0200 +Subject: [PATCH 07/12] depmod: support generating kmod binary index files +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This allows to use busybox depmod, and run daemons +using libkmod (or even kmod modprobe if needed). + +About +1500 bytes when enabled. This patch merges some +depmod code paths, so when this is disabled it shrinks +the code size a little bit. + +Signed-off-by: Timo Teräs +--- + modutils/Config.src | 10 ++ + modutils/depmod.c | 281 ++++++++++++++++++++++++++++++++++++++++++---------- + modutils/modprobe.c | 15 --- + modutils/modutils.c | 27 ++++- + modutils/modutils.h | 15 +++ + 5 files changed, 281 insertions(+), 67 deletions(-) + +diff --git a/modutils/Config.src b/modutils/Config.src +index 4227f356a..6680044fc 100644 +--- a/modutils/Config.src ++++ b/modutils/Config.src +@@ -118,6 +118,16 @@ config FEATURE_MODUTILS_ALIAS + + Say Y if unsure. + ++config FEATURE_MODUTILS_BIN ++ bool "Support for the kmod .bin file format" ++ default n ++ depends on DEPMOD && !MODPROBE_SMALL ++ select PLATFORM_LINUX ++ help ++ Generate kmod compatible binary index files for .dep, .alias, ++ .symbols and .builtin files. Allows mixing use of busybox ++ modutils and kmod (binaries and library). ++ + config FEATURE_MODUTILS_SYMBOLS + bool "Support for module.symbols file" + default y +diff --git a/modutils/depmod.c b/modutils/depmod.c +index b9347027e..e3cea18c1 100644 +--- a/modutils/depmod.c ++++ b/modutils/depmod.c +@@ -2,7 +2,7 @@ + /* + * depmod - generate modules.dep + * Copyright (c) 2008 Bernhard Reutner-Fischer +- * Copyrihgt (c) 2008 Timo Teras ++ * Copyrihgt (c) 2008-2015 Timo Teras + * Copyright (c) 2008 Vladimir Dronnikov + * + * Licensed under GPLv2 or later, see file LICENSE in this source tree. +@@ -25,6 +25,24 @@ + #include "modutils.h" + #include /* uname() */ + ++#define INDEX_MINCHAR 32 ++#define INDEX_MAXCHAR 128 ++ ++typedef struct index_node { ++ char *prefix; ++ llist_t *values; ++ struct index_node *children[INDEX_MAXCHAR-INDEX_MINCHAR]; ++} index_node; ++ ++struct globals { ++ module_db db; ++ index_node *root_node; ++} FIX_ALIASING; ++#define G (*ptr_to_globals) ++#define INIT_G() do { \ ++ SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \ ++} while (0) ++ + /* + * Theory of operation: + * - iterate over all modules and record their full path +@@ -52,18 +70,12 @@ static int FAST_FUNC parse_module(const char *fname, struct stat *sb UNUSED_PARA + + for (ptr = image; ptr < image + len - 10; ptr++) { + if (is_prefixed_with(ptr, "depends=")) { +- char *u; +- + ptr += 8; +- for (u = ptr; *u; u++) +- if (*u == '-') +- *u = '_'; +- ptr += string_to_llist(ptr, &e->deps, ","); ++ string_to_llist(replace_underscores(ptr), &e->deps, ","); + } else if (ENABLE_FEATURE_MODUTILS_ALIAS + && is_prefixed_with(ptr, "alias=") + ) { +- llist_add_to(&e->aliases, xstrdup(ptr + 6)); +- ptr += strlen(ptr); ++ llist_add_to(&e->aliases, replace_underscores(xstrdup(ptr + 6))); + } else if (ENABLE_FEATURE_MODUTILS_SYMBOLS + && is_prefixed_with(ptr, "__ksymtab_") + ) { +@@ -73,9 +85,10 @@ static int FAST_FUNC parse_module(const char *fname, struct stat *sb UNUSED_PARA + ) { + continue; + } +- llist_add_to(&e->symbols, xstrdup(ptr)); +- ptr += strlen(ptr); +- } ++ llist_add_to(&e->symbols, xasprintf("symbol:%s", ptr)); ++ } else ++ continue; ++ ptr += strlen(ptr); + } + free(image); + +@@ -107,12 +120,6 @@ static void order_dep_list(module_db *modules, module_entry *start, llist_t *add + } + } + +-static void xfreopen_write(const char *file, FILE *f) +-{ +- if (freopen(file, "w", f) == NULL) +- bb_perror_msg_and_die("can't open '%s'", file); +-} +- + //usage:#if !ENABLE_MODPROBE_SMALL + //usage:#define depmod_trivial_usage "[-n] [-b BASE] [VERSION] [MODFILES]..." + //usage:#define depmod_full_usage "\n\n" +@@ -166,6 +173,169 @@ enum { + OPT_C = (1 << 9), /* -C,--config etc_modules_conf: ignored */ + }; + ++/* Support for the mod binary index generation */ ++ ++static void index_init(const char *filename) ++{ ++ if (ENABLE_FEATURE_MODUTILS_BIN) { ++ index_node *n; ++ ++ n = xzalloc(sizeof(index_node)); ++ n->prefix = xstrdup(""); ++ G.root_node = n; ++ } ++ ++ if (filename && !(option_mask32 & OPT_n)) { ++ if (freopen(filename, "w", stdout) == NULL) ++ bb_perror_msg_and_die("can't open '%s'", filename); ++ } ++} ++ ++static void index_add(const char *key, char *value, const char *prefix) ++{ ++ if (prefix && *prefix) ++ printf("%s%s %s\n", prefix, key, value); ++ else if (prefix) ++ printf("%s\n", value); ++ ++ if (ENABLE_FEATURE_MODUTILS_BIN) { ++ index_node *cur = G.root_node, *n; ++ unsigned i = 0, j, ch; ++ ++ while (1) { ++ /* Ensure node->prefix is a prefix of &str[i]. ++ * If it is not already, then we must split node. */ ++ for (j = 0; cur->prefix[j]; j++) { ++ ch = cur->prefix[j]; ++ if (ch != key[i+j]) { ++ /* New child is copy of node with prefix[j+1..N] */ ++ n = xzalloc(sizeof(index_node)); ++ n->prefix = xstrdup(&cur->prefix[j+1]); ++ n->values = cur->values; ++ memcpy(n->children, cur->children, sizeof(n->children)); ++ ++ /* Parent has prefix[0..j], child at prefix[j] */ ++ cur->prefix[j] = '\0'; ++ cur->values = NULL; ++ memset(cur->children, 0, sizeof(cur->children)); ++ cur->children[ch-INDEX_MINCHAR] = n; ++ break; ++ } ++ } ++ i += j; ++ ++ ch = key[i]; ++ if (ch == 0) ++ break; ++ ++ if (ch < INDEX_MINCHAR || ch >= INDEX_MAXCHAR) ++ bb_error_msg_and_die("bad module name"); ++ ++ ch -= INDEX_MINCHAR; ++ if (!cur->children[ch]) { ++ n = xzalloc(sizeof(index_node)); ++ cur->children[ch] = n; ++ n->prefix = xstrdup(&key[i+1]); ++ cur = n; ++ break; ++ } ++ ++ /* Descend into child node and continue */ ++ cur = cur->children[ch]; ++ i++; ++ } ++ ++ llist_add_to(&cur->values, value); ++ } ++} ++ ++static uint32_t index_write_node(FILE *out, index_node *n, void (*freeit)(void *data)) ++{ ++ uint32_t child_offs[INDEX_MAXCHAR-INDEX_MINCHAR]; ++ uint32_t offset; ++ uint8_t first = 255, last = 0; ++ unsigned i; ++ ++ for (i = 0; i < INDEX_MAXCHAR-INDEX_MINCHAR; i++) { ++ child_offs[i] = 0; ++ if (!n->children[i]) ++ continue; ++ child_offs[i] = index_write_node(out, n->children[i], freeit); ++ if (first > INDEX_MAXCHAR) ++ first = i; ++ last = i; ++ } ++ ++ offset = ftell(out); ++ ++ if (n->prefix[0]) { ++ fputs(n->prefix, out); ++ fputc('\0', out); ++ offset |= INDEX_NODE_PREFIX; ++ } ++ ++ if (first < INDEX_MAXCHAR) { ++ fputc(first + INDEX_MINCHAR, out); ++ fputc(last + INDEX_MINCHAR, out); ++ fwrite(child_offs + first, sizeof(uint32_t), last - first + 1, out); ++ offset |= INDEX_NODE_CHILDS; ++ } ++ ++ if (n->values) { ++ const llist_t *v; ++ unsigned int cnt; ++ uint32_t u; ++ ++ n->values = llist_rev(n->values); ++ for (v = n->values, cnt = 0; v != NULL; v = v->link, cnt++); ++ u = htonl(cnt); ++ fwrite(&u, sizeof(u), 1, out); ++ for (v = n->values, cnt = 0; v != NULL; v = v->link, cnt++) { ++ u = htonl(cnt); ++ fwrite(&u, sizeof(u), 1, out); ++ fputs(v->data, out); ++ fputc('\0', out); ++ } ++ offset |= INDEX_NODE_VALUES; ++ } ++ ++ llist_free(n->values, freeit); ++ free(n->prefix); ++ free(n); ++ ++ return htonl(offset); ++} ++ ++static void index_dump(const char *filename, int deps_file) ++{ ++ if (ENABLE_FEATURE_MODUTILS_BIN) { ++ FILE *out; ++ uint32_t header[3] = { ++ htonl(INDEX_MAGIC), ++ htonl(INDEX_VERSION), ++ }; ++ ++ if (option_mask32 & OPT_n) ++ filename = "/dev/null"; ++ else ++ filename = xasprintf("tmp.%s.bin", filename); ++ ++ out = xfopen_for_write(filename); ++ fwrite(header, sizeof(uint32_t), 3, out); ++ header[2] = index_write_node(out, G.root_node, deps_file ? free : 0); ++ rewind(out); ++ G.root_node = NULL; ++ fwrite(header, sizeof(uint32_t), 3, out); ++ if (fclose(out)) { ++ remove(filename); ++ bb_error_msg_and_die(bb_msg_write_error); ++ } ++ /* .bin files are mmap'ed; not renaming it may crash ++ * long standing daemon using libkmod */ ++ rename_or_warn(filename, filename + 4); ++ } ++} ++ + int depmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; + int depmod_main(int argc UNUSED_PARAM, char **argv) + { +@@ -177,6 +347,8 @@ int depmod_main(int argc UNUSED_PARAM, char **argv) + unsigned i; + int tmp; + ++ INIT_G(); ++ + getopt32(argv, "aAb:eF:nruqC:", &moddir_base, NULL, NULL); + argv += optind; + +@@ -209,53 +381,60 @@ int depmod_main(int argc UNUSED_PARAM, char **argv) + } + + /* Generate dependency and alias files */ +- if (!(option_mask32 & OPT_n)) +- xfreopen_write(CONFIG_DEFAULT_DEPMOD_FILE, stdout); +- ++ index_init(CONFIG_DEFAULT_DEPMOD_FILE); + moddb_foreach_module(&modules, m, i) { +- printf("%s:", m->name); +- ++ char *buf = xasprintf("%s:", m->name); + order_dep_list(&modules, m, m->deps); ++ + while (m->dnext != m) { + dep = m->dnext; +- printf(" %s", dep->name); +- ++ buf = gather_options_str(buf, dep->name); + /* unlink current entry */ + dep->dnext->dprev = dep->dprev; + dep->dprev->dnext = dep->dnext; + dep->dnext = dep->dprev = dep; + } +- bb_putchar('\n'); ++ index_add(m->modname, buf, ""); + } +- +-#if ENABLE_FEATURE_MODUTILS_ALIAS +- if (!(option_mask32 & OPT_n)) +- xfreopen_write("modules.alias", stdout); +- moddb_foreach_module(&modules, m, i) { +- while (m->aliases) { +- /* +- * Last word used to be a basename +- * (filename with path and .ko.* stripped) +- * at the time of module-init-tools 3.4. +- * kmod v.12 uses module name, i.e., s/-/_/g. +- */ +- printf("alias %s %s\n", +- (char*)llist_pop(&m->aliases), +- m->modname); ++ index_dump(CONFIG_DEFAULT_DEPMOD_FILE, 1); ++ ++ if (ENABLE_FEATURE_MODUTILS_ALIAS) { ++ index_init("modules.alias"); ++ moddb_foreach_module(&modules, m, i) { ++ while (m->aliases) { ++ /* ++ * Last word used to be a basename ++ * (filename with path and .ko.* stripped) ++ * at the time of module-init-tools 3.4. ++ * kmod v.12 uses module name, i.e., s/-/_/g. ++ */ ++ index_add((char*)llist_pop(&m->aliases), m->modname, "alias "); ++ } + } ++ index_dump("modules.alias", 0); + } +-#endif +-#if ENABLE_FEATURE_MODUTILS_SYMBOLS +- if (!(option_mask32 & OPT_n)) +- xfreopen_write("modules.symbols", stdout); +- moddb_foreach_module(&modules, m, i) { +- while (m->symbols) { +- printf("alias symbol:%s %s\n", +- (char*)llist_pop(&m->symbols), +- m->modname); ++ if (ENABLE_FEATURE_MODUTILS_SYMBOLS) { ++ index_init("modules.symbols"); ++ moddb_foreach_module(&modules, m, i) { ++ while (m->symbols) { ++ index_add((char*)llist_pop(&m->symbols), m->modname, "alias "); ++ } ++ } ++ index_dump("modules.symbols", 0); ++ } ++ if (ENABLE_FEATURE_MODUTILS_BIN) { ++ char line[PATH_MAX], modname[MODULE_NAME_LEN]; ++ FILE *in; ++ ++ index_init(NULL); ++ in = xfopen_for_read("modules.builtin"); ++ while (fgets(line, sizeof(line), in) != NULL) { ++ filename2modname(line, modname); ++ index_add(modname, (char *) "", 0); + } ++ fclose(in); ++ index_dump("modules.builtin", 0); + } +-#endif + + if (ENABLE_FEATURE_CLEAN_UP) + moddb_free(&modules); +diff --git a/modutils/modprobe.c b/modutils/modprobe.c +index d404ef92f..72f449978 100644 +--- a/modutils/modprobe.c ++++ b/modutils/modprobe.c +@@ -189,21 +189,6 @@ struct globals { + + static int read_config(const char *path); + +-static char *gather_options_str(char *opts, const char *append) +-{ +- /* Speed-optimized. We call gather_options_str many times. */ +- if (append) { +- if (opts == NULL) { +- opts = xstrdup(append); +- } else { +- int optlen = strlen(opts); +- opts = xrealloc(opts, optlen + strlen(append) + 2); +- sprintf(opts + optlen, " %s", append); +- } +- } +- return opts; +-} +- + static struct module_entry *get_or_add_modentry(const char *module) + { + return moddb_get_or_create(&G.db, module); +diff --git a/modutils/modutils.c b/modutils/modutils.c +index d36caaf68..aecfc2acb 100644 +--- a/modutils/modutils.c ++++ b/modutils/modutils.c +@@ -70,6 +70,21 @@ void FAST_FUNC moddb_free(module_db *db) + } + } + ++char * FAST_FUNC gather_options_str(char *opts, const char *append) ++{ ++ /* Speed-optimized. We call gather_options_str many times. */ ++ if (append) { ++ if (opts == NULL) { ++ opts = xstrdup(append); ++ } else { ++ int optlen = strlen(opts); ++ opts = xrealloc(opts, optlen + strlen(append) + 2); ++ sprintf(opts + optlen, " %s", append); ++ } ++ } ++ return opts; ++} ++ + void FAST_FUNC replace(char *s, char what, char with) + { + while (*s) { +@@ -81,7 +96,17 @@ void FAST_FUNC replace(char *s, char what, char with) + + char* FAST_FUNC replace_underscores(char *s) + { +- replace(s, '-', '_'); ++ int i; ++ for (i = 0; s[i]; i++) { ++ switch (s[i]) { ++ case '-': ++ s[i] = '_'; ++ break; ++ case '[': ++ i += strcspn(&s[i], "]"); ++ break; ++ } ++ } + return s; + } + +diff --git a/modutils/modutils.h b/modutils/modutils.h +index 2cbd1448a..dd6f173f3 100644 +--- a/modutils/modutils.h ++++ b/modutils/modutils.h +@@ -18,6 +18,20 @@ PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN + #define MODULE_NAME_LEN 256 + #define MODULE_HASH_SIZE 256 + ++/* .bin index format definitions */ ++#define INDEX_MAGIC 0xB007F457 ++#define INDEX_VERSION_MAJOR 0x0002 ++#define INDEX_VERSION_MINOR 0x0001 ++#define INDEX_VERSION ((INDEX_VERSION_MAJOR<<16)|INDEX_VERSION_MINOR) ++ ++enum node_offset { ++ INDEX_NODE_FLAGS = 0xF0000000, /* Flags in high nibble */ ++ INDEX_NODE_PREFIX = 0x80000000, ++ INDEX_NODE_VALUES = 0x40000000, ++ INDEX_NODE_CHILDS = 0x20000000, ++ INDEX_NODE_MASK = 0x0FFFFFFF, /* Offset value */ ++}; ++ + typedef struct module_entry { + struct module_entry *next; + char *name, *modname; +@@ -47,6 +61,7 @@ module_entry *moddb_get(module_db *db, const char *s) FAST_FUNC; + module_entry *moddb_get_or_create(module_db *db, const char *s) FAST_FUNC; + void moddb_free(module_db *db) FAST_FUNC; + ++char *gather_options_str(char *opts, const char *append) FAST_FUNC; + void replace(char *s, char what, char with) FAST_FUNC; + char *replace_underscores(char *s) FAST_FUNC; + int string_to_llist(char *string, llist_t **llist, const char *delim) FAST_FUNC; +-- +2.11.0 + diff --git a/aports/busybox/0008-login-move-check_securetty-to-libbb.patch b/aports/busybox/0008-login-move-check_securetty-to-libbb.patch new file mode 100644 index 00000000..bc3c3a00 --- /dev/null +++ b/aports/busybox/0008-login-move-check_securetty-to-libbb.patch @@ -0,0 +1,103 @@ +From 49cc996bd0c049c37e98506409c2e3ec30790bf0 Mon Sep 17 00:00:00 2001 +From: Kaarle Ritvanen +Date: Thu, 5 Nov 2015 16:27:34 +0200 +Subject: [PATCH 08/12] login: move check_securetty to libbb + +--- + include/libbb.h | 1 + + libbb/Kbuild.src | 1 + + libbb/securetty.c | 27 +++++++++++++++++++++++++++ + loginutils/login.c | 19 ------------------- + 4 files changed, 29 insertions(+), 19 deletions(-) + create mode 100644 libbb/securetty.c + +diff --git a/include/libbb.h b/include/libbb.h +index abdc8c2b8..38d6d0b1e 100644 +--- a/include/libbb.h ++++ b/include/libbb.h +@@ -1390,6 +1390,7 @@ extern void selinux_or_die(void) FAST_FUNC; + #define SETUP_ENV_NO_CHDIR (1 << 4) + void setup_environment(const char *shell, int flags, const struct passwd *pw) FAST_FUNC; + void nuke_str(char *str) FAST_FUNC; ++int check_securetty(const char *short_tty); + int check_password(const struct passwd *pw, const char *plaintext) FAST_FUNC; + int ask_and_check_password_extended(const struct passwd *pw, int timeout, const char *prompt) FAST_FUNC; + int ask_and_check_password(const struct passwd *pw) FAST_FUNC; +diff --git a/libbb/Kbuild.src b/libbb/Kbuild.src +index e426f3c7e..84f3ff477 100644 +--- a/libbb/Kbuild.src ++++ b/libbb/Kbuild.src +@@ -83,6 +83,7 @@ lib-y += safe_gethostname.o + lib-y += safe_poll.o + lib-y += safe_strncpy.o + lib-y += safe_write.o ++lib-y += securetty.o + lib-y += setup_environment.o + lib-y += signals.o + lib-y += simplify_path.o +diff --git a/libbb/securetty.c b/libbb/securetty.c +new file mode 100644 +index 000000000..95edbc944 +--- /dev/null ++++ b/libbb/securetty.c +@@ -0,0 +1,27 @@ ++/* vi: set sw=4 ts=4: */ ++/* ++ * /etc/securetty checking. ++ * ++ * Licensed under GPLv2, see file LICENSE in this source tree. ++ */ ++ ++#include "libbb.h" ++ ++#if ENABLE_FEATURE_SECURETTY && !ENABLE_PAM ++int check_securetty(const char *short_tty) ++{ ++ char *buf = (char*)"/etc/securetty"; /* any non-NULL is ok */ ++ parser_t *parser = config_open2("/etc/securetty", fopen_for_read); ++ while (config_read(parser, &buf, 1, 1, "# \t", PARSE_NORMAL)) { ++ if (strcmp(buf, short_tty) == 0) ++ break; ++ buf = NULL; ++ } ++ config_close(parser); ++ /* buf != NULL here if config file was not found, empty ++ * or line was found which equals short_tty */ ++ return buf != NULL; ++} ++#else ++ALWAYS_INLINE int check_securetty(const char *short_tty UNUSED_PARAM) { return 1; } ++#endif +diff --git a/loginutils/login.c b/loginutils/login.c +index 52abc1886..30aa63aee 100644 +--- a/loginutils/login.c ++++ b/loginutils/login.c +@@ -173,25 +173,6 @@ static void die_if_nologin(void) + # define die_if_nologin() ((void)0) + #endif + +-#if ENABLE_FEATURE_SECURETTY && !ENABLE_PAM +-static int check_securetty(const char *short_tty) +-{ +- char *buf = (char*)"/etc/securetty"; /* any non-NULL is ok */ +- parser_t *parser = config_open2("/etc/securetty", fopen_for_read); +- while (config_read(parser, &buf, 1, 1, "# \t", PARSE_NORMAL)) { +- if (strcmp(buf, short_tty) == 0) +- break; +- buf = NULL; +- } +- config_close(parser); +- /* buf != NULL here if config file was not found, empty +- * or line was found which equals short_tty */ +- return buf != NULL; +-} +-#else +-static ALWAYS_INLINE int check_securetty(const char *short_tty UNUSED_PARAM) { return 1; } +-#endif +- + #if ENABLE_SELINUX + static void initselinux(char *username, char *full_tty, + security_context_t *user_sid) +-- +2.11.0 + diff --git a/aports/busybox/0009-libbb-allow_blank-argument-for-ask_and_check_passwor.patch b/aports/busybox/0009-libbb-allow_blank-argument-for-ask_and_check_passwor.patch new file mode 100644 index 00000000..72dc0482 --- /dev/null +++ b/aports/busybox/0009-libbb-allow_blank-argument-for-ask_and_check_passwor.patch @@ -0,0 +1,70 @@ +From 7d2e6a0a89ba11a98ce665e307d7acf86b5f00b6 Mon Sep 17 00:00:00 2001 +From: Kaarle Ritvanen +Date: Thu, 5 Nov 2015 16:27:35 +0200 +Subject: [PATCH 09/12] libbb: allow_blank argument for + ask_and_check_password_extended() + +--- + include/libbb.h | 2 +- + libbb/correct_password.c | 6 +++--- + loginutils/sulogin.c | 2 +- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/include/libbb.h b/include/libbb.h +index 38d6d0b1e..f0ddce94f 100644 +--- a/include/libbb.h ++++ b/include/libbb.h +@@ -1392,7 +1392,7 @@ void setup_environment(const char *shell, int flags, const struct passwd *pw) FA + void nuke_str(char *str) FAST_FUNC; + int check_securetty(const char *short_tty); + int check_password(const struct passwd *pw, const char *plaintext) FAST_FUNC; +-int ask_and_check_password_extended(const struct passwd *pw, int timeout, const char *prompt) FAST_FUNC; ++int ask_and_check_password_extended(const struct passwd *pw, int timeout, int allow_blank, const char *prompt) FAST_FUNC; + int ask_and_check_password(const struct passwd *pw) FAST_FUNC; + /* Returns a malloced string */ + #if !ENABLE_USE_BB_CRYPT +diff --git a/libbb/correct_password.c b/libbb/correct_password.c +index 513c93028..57cd2b890 100644 +--- a/libbb/correct_password.c ++++ b/libbb/correct_password.c +@@ -96,7 +96,7 @@ int FAST_FUNC check_password(const struct passwd *pw, const char *plaintext) + * NULL pw means "just fake it for login with bad username" + */ + int FAST_FUNC ask_and_check_password_extended(const struct passwd *pw, +- int timeout, const char *prompt) ++ int timeout, int allow_blank, const char *prompt) + { + IF_FEATURE_SHADOWPASSWDS(char buffer[SHADOW_BUFSIZE];) + char *plaintext; +@@ -105,7 +105,7 @@ int FAST_FUNC ask_and_check_password_extended(const struct passwd *pw, + + pw_pass = get_passwd(pw, buffer); + if (!pw_pass[0]) /* empty password field? */ +- return 1; ++ return allow_blank; + + plaintext = bb_ask(STDIN_FILENO, timeout, prompt); + if (!plaintext) { +@@ -120,5 +120,5 @@ int FAST_FUNC ask_and_check_password_extended(const struct passwd *pw, + + int FAST_FUNC ask_and_check_password(const struct passwd *pw) + { +- return ask_and_check_password_extended(pw, 0, "Password: "); ++ return ask_and_check_password_extended(pw, 0, 1, "Password: "); + } +diff --git a/loginutils/sulogin.c b/loginutils/sulogin.c +index 2e32e2bbd..d2ddc6afa 100644 +--- a/loginutils/sulogin.c ++++ b/loginutils/sulogin.c +@@ -62,7 +62,7 @@ int sulogin_main(int argc UNUSED_PARAM, char **argv) + while (1) { + int r; + +- r = ask_and_check_password_extended(pwd, timeout, ++ r = ask_and_check_password_extended(pwd, timeout, 1, + "Give root password for system maintenance\n" + "(or type Control-D for normal startup):" + ); +-- +2.11.0 + diff --git a/aports/busybox/0010-su-FEATURE_SU_NULLOK_SECURE.patch b/aports/busybox/0010-su-FEATURE_SU_NULLOK_SECURE.patch new file mode 100644 index 00000000..13c464e4 --- /dev/null +++ b/aports/busybox/0010-su-FEATURE_SU_NULLOK_SECURE.patch @@ -0,0 +1,71 @@ +From d9c09138d91566af49ef8179d9995c84294e2486 Mon Sep 17 00:00:00 2001 +From: Kaarle Ritvanen +Date: Thu, 5 Nov 2015 16:27:36 +0200 +Subject: [PATCH 10/12] su: FEATURE_SU_NULLOK_SECURE + +When this feature is enabled, blank passwords are not accepted by su +unless the user is on a secure TTY defined in /etc/securetty. This +resembles the default PAM configuration of some Linux distros which +specify the nullok_secure option for pam_unix.so. +--- + loginutils/su.c | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +diff --git a/loginutils/su.c b/loginutils/su.c +index 24ffbde86..086445243 100644 +--- a/loginutils/su.c ++++ b/loginutils/su.c +@@ -24,6 +24,11 @@ + //config: bool "Enable su to check user's shell to be listed in /etc/shells" + //config: depends on SU + //config: default y ++//config:config FEATURE_SU_NULLOK_SECURE ++//config: bool "Disallow blank passwords from TTYs other than specified in /etc/securetty" ++//config: depends on SU ++//config: default n ++ + + //applet:/* Needs to be run by root or be suid root - needs to change uid and gid: */ + //applet:IF_SU(APPLET(su, BB_DIR_BIN, BB_SUID_REQUIRE)) +@@ -76,6 +81,7 @@ int su_main(int argc UNUSED_PARAM, char **argv) + struct passwd *pw; + uid_t cur_uid = getuid(); + const char *tty; ++ int allow_blank = 1; + #if ENABLE_FEATURE_UTMP + char user_buf[64]; + #endif +@@ -100,6 +106,12 @@ int su_main(int argc UNUSED_PARAM, char **argv) + argv++; + } + ++ tty = xmalloc_ttyname(STDIN_FILENO); ++ if (!tty) tty = "none"; ++ tty = skip_dev_pfx(tty); ++ ++ if (ENABLE_FEATURE_SU_NULLOK_SECURE) allow_blank = check_securetty(tty); ++ + if (ENABLE_FEATURE_SU_SYSLOG) { + /* The utmp entry (via getlogin) is probably the best way to + * identify the user, especially if someone su's from a su-shell. +@@ -113,16 +125,12 @@ int su_main(int argc UNUSED_PARAM, char **argv) + pw = getpwuid(cur_uid); + old_user = pw ? xstrdup(pw->pw_name) : ""; + } +- tty = xmalloc_ttyname(2); +- if (!tty) { +- tty = "none"; +- } + openlog(applet_name, 0, LOG_AUTH); + } + + pw = xgetpwnam(opt_username); + +- if (cur_uid == 0 || ask_and_check_password(pw) > 0) { ++ if (cur_uid == 0 || ask_and_check_password_extended(pw, 0, allow_blank, "Password: ") > 0) { + if (ENABLE_FEATURE_SU_SYSLOG) + syslog(LOG_NOTICE, "%c %s %s:%s", + '+', tty, old_user, opt_username); +-- +2.11.0 + diff --git a/aports/busybox/0011-ntpd-postpone-hostname-resolution-if-fails-on-startu.patch b/aports/busybox/0011-ntpd-postpone-hostname-resolution-if-fails-on-startu.patch new file mode 100644 index 00000000..a7e5d14f --- /dev/null +++ b/aports/busybox/0011-ntpd-postpone-hostname-resolution-if-fails-on-startu.patch @@ -0,0 +1,205 @@ +From 838188511cb2085d8980956b270cc68ed9911102 Mon Sep 17 00:00:00 2001 +From: Kaarle Ritvanen +Date: Thu, 4 Aug 2016 12:26:56 +0200 +Subject: [PATCH 11/12] ntpd: postpone hostname resolution if fails on startup + +Signed-off-by: Kaarle Ritvanen +--- + networking/ntpd.c | 130 +++++++++++++++++++++++++++--------------------------- + 1 file changed, 64 insertions(+), 66 deletions(-) + +diff --git a/networking/ntpd.c b/networking/ntpd.c +index b7fa5dce9..c6d07adac 100644 +--- a/networking/ntpd.c ++++ b/networking/ntpd.c +@@ -155,6 +155,7 @@ + #define RETRY_INTERVAL 32 /* on send/recv error, retry in N secs (need to be power of 2) */ + #define NOREPLY_INTERVAL 512 /* sent, but got no reply: cap next query by this many seconds */ + #define RESPONSE_INTERVAL 16 /* wait for reply up to N secs */ ++#define HOSTNAME_INTERVAL 4 /* hostname lookup failed. Wait N secs for next try */ + + /* Step threshold (sec). std ntpd uses 0.128. + */ +@@ -293,6 +294,7 @@ typedef struct { + + typedef struct { + len_and_sockaddr *p_lsa; ++ char *p_hostname; + char *p_dotted; + int p_fd; + int datapoint_idx; +@@ -318,7 +320,6 @@ typedef struct { + datapoint_t filter_datapoint[NUM_DATAPOINTS]; + /* last sent packet: */ + msg_t p_xmt_msg; +- char p_hostname[1]; + } peer_t; + + +@@ -791,27 +792,17 @@ reset_peer_stats(peer_t *p, double offset) + } + + static void +-resolve_peer_hostname(peer_t *p, int loop_on_fail) +-{ +- len_and_sockaddr *lsa; +- +- again: +- lsa = host2sockaddr(p->p_hostname, 123); +- if (!lsa) { +- /* error message already emitted by host2sockaddr() */ +- if (!loop_on_fail) +- return; +-//FIXME: do this to avoid infinite looping on typo in a hostname? +-//well... in which case, what is a good value for loop_on_fail? +- //if (--loop_on_fail == 0) +- // xfunc_die(); +- sleep(5); +- goto again; ++resolve_peer_hostname(peer_t *p) { ++ len_and_sockaddr *lsa = host2sockaddr(p->p_hostname, 123); ++ if (lsa) { ++ if (p->p_lsa) { ++ free(p->p_lsa); ++ free(p->p_dotted); ++ } ++ p->p_lsa = lsa; ++ p->p_dotted = xmalloc_sockaddr2dotted_noport(&lsa->u.sa); + } +- free(p->p_lsa); +- free(p->p_dotted); +- p->p_lsa = lsa; +- p->p_dotted = xmalloc_sockaddr2dotted_noport(&lsa->u.sa); ++ set_next(p, lsa ? 0 : HOSTNAME_INTERVAL); + } + + static void +@@ -820,28 +811,29 @@ add_peers(const char *s) + llist_t *item; + peer_t *p; + +- p = xzalloc(sizeof(*p) + strlen(s)); +- strcpy(p->p_hostname, s); +- resolve_peer_hostname(p, /*loop_on_fail=*/ 1); ++ p = xzalloc(sizeof(*p)); ++ p->p_hostname = xstrdup(s); ++ resolve_peer_hostname(p); + + /* Names like N..pool.ntp.org are randomly resolved + * to a pool of machines. Sometimes different N's resolve to the same IP. + * It is not useful to have two peers with same IP. We skip duplicates. + */ +- for (item = G.ntp_peers; item != NULL; item = item->link) { +- peer_t *pp = (peer_t *) item->data; +- if (strcmp(p->p_dotted, pp->p_dotted) == 0) { +- bb_error_msg("duplicate peer %s (%s)", s, p->p_dotted); +- free(p->p_lsa); +- free(p->p_dotted); +- free(p); +- return; ++ if (p->p_lsa) ++ for (item = G.ntp_peers; item != NULL; item = item->link) { ++ peer_t *pp = (peer_t *) item->data; ++ if (pp->p_lsa && strcmp(p->p_dotted, pp->p_dotted) == 0) { ++ bb_error_msg("duplicate peer %s (%s)", s, p->p_dotted); ++ free(p->p_hostname); ++ free(p->p_lsa); ++ free(p->p_dotted); ++ free(p); ++ return; ++ } + } +- } + + p->p_fd = -1; + p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3); +- p->next_action_time = G.cur_time; /* = set_next(p, 0); */ + reset_peer_stats(p, STEP_THRESHOLD); + + llist_add_to(&G.ntp_peers, p); +@@ -2378,44 +2370,50 @@ int ntpd_main(int argc UNUSED_PARAM, char **argv) + for (item = G.ntp_peers; item != NULL; item = item->link) { + peer_t *p = (peer_t *) item->data; + +- if (p->next_action_time <= G.cur_time) { +- if (p->p_fd == -1) { +- /* Time to send new req */ +- if (--cnt == 0) { +- VERB4 bb_error_msg("disabling burst mode"); +- G.polladj_count = 0; +- G.poll_exp = MINPOLL; ++ if (p->p_lsa) { ++ ++ if (p->next_action_time <= G.cur_time) { ++ if (p->p_fd == -1) { ++ /* Time to send new req */ ++ if (--cnt == 0) { ++ VERB4 bb_error_msg("disabling burst mode"); ++ G.polladj_count = 0; ++ G.poll_exp = MINPOLL; ++ } ++ send_query_to_peer(p); ++ } else { ++ /* Timed out waiting for reply */ ++ close(p->p_fd); ++ p->p_fd = -1; ++ /* If poll interval is small, increase it */ ++ if (G.poll_exp < BIGPOLL) ++ adjust_poll(MINPOLL); ++ timeout = poll_interval(NOREPLY_INTERVAL); ++ bb_error_msg("timed out waiting for %s, reach 0x%02x, next query in %us", ++ p->p_dotted, p->reachable_bits, timeout); ++ ++ /* What if don't see it because it changed its IP? */ ++ if (p->reachable_bits == 0) ++ resolve_peer_hostname(p); ++ ++ set_next(p, timeout); + } +- send_query_to_peer(p); +- } else { +- /* Timed out waiting for reply */ +- close(p->p_fd); +- p->p_fd = -1; +- /* If poll interval is small, increase it */ +- if (G.poll_exp < BIGPOLL) +- adjust_poll(MINPOLL); +- timeout = poll_interval(NOREPLY_INTERVAL); +- bb_error_msg("timed out waiting for %s, reach 0x%02x, next query in %us", +- p->p_dotted, p->reachable_bits, timeout); +- +- /* What if don't see it because it changed its IP? */ +- if (p->reachable_bits == 0) +- resolve_peer_hostname(p, /*loop_on_fail=*/ 0); +- +- set_next(p, timeout); + } +- } ++ ++ if (p->p_fd >= 0) { ++ /* Wait for reply from this peer */ ++ pfd[i].fd = p->p_fd; ++ pfd[i].events = POLLIN; ++ idx2peer[i] = p; ++ i++; ++ } ++ ++ } else ++ resolve_peer_hostname(p); + + if (p->next_action_time < nextaction) + nextaction = p->next_action_time; + +- if (p->p_fd >= 0) { +- /* Wait for reply from this peer */ +- pfd[i].fd = p->p_fd; +- pfd[i].events = POLLIN; +- idx2peer[i] = p; +- i++; +- } + } + + timeout = nextaction - G.cur_time; +-- +2.11.0 + diff --git a/aports/busybox/0012-diff-add-support-for-no-dereference.patch b/aports/busybox/0012-diff-add-support-for-no-dereference.patch new file mode 100644 index 00000000..8e522937 --- /dev/null +++ b/aports/busybox/0012-diff-add-support-for-no-dereference.patch @@ -0,0 +1,63 @@ +From 56c14ec7f75a68c191f2fc210915108f428e849c Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Fri, 25 Jul 2014 15:28:33 +0200 +Subject: [PATCH 12/12] diff: add support for --no-dereference + +Add flag for not following symlinks when recursing + +function old new delta +.rodata 7934 7967 +33 +diff_longopts 253 270 +17 +packed_usage 1704 1720 +16 +diff_main 1665 1662 -3 +------------------------------------------------------------------------------ +(add/remove: 0/0 grow/shrink: 3/1 up/down: 66/-3) Total: 63 bytes + +Signed-off-by: Natanael Copa +--- + editors/diff.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/editors/diff.c b/editors/diff.c +index 75229ad8c..6266bde0d 100644 +--- a/editors/diff.c ++++ b/editors/diff.c +@@ -117,6 +117,9 @@ + //usage: "\n -N Treat absent files as empty" + //usage: "\n -q Output only whether files differ" + //usage: "\n -r Recurse" ++//usage: IF_LONG_OPTS( ++//usage: "\n --no-dereference Don't follow symlinks" ++//usage: ) + //usage: "\n -S Start with FILE when comparing directories" + //usage: "\n -T Make tabs line up by prefixing a tab when necessary" + //usage: "\n -s Report when two files are the same" +@@ -158,6 +161,7 @@ enum { /* Commandline flags */ + FLAG_p, /* not implemented */ + FLAG_B, + FLAG_E, /* not implemented */ ++ FLAG_no_deref, + }; + #define FLAG(x) (1 << FLAG_##x) + +@@ -872,7 +876,8 @@ static void diffdir(char *p[2], const char *s_start) + * Using list.len to specify its length, + * add_to_dirlist will remove it. */ + list[i].len = strlen(p[i]); +- recursive_action(p[i], ACTION_RECURSE | ACTION_FOLLOWLINKS, ++ recursive_action(p[i], ACTION_RECURSE | ++ ((option_mask32 & FLAG(no_deref)) ? 0 : ACTION_FOLLOWLINKS), + add_to_dirlist, skip_dir, &list[i], 0); + /* Sort dl alphabetically. + * GNU diff does this ignoring any number of trailing dots. +@@ -969,6 +974,7 @@ static const char diff_longopts[] ALIGN1 = + "report-identical-files\0" No_argument "s" + "starting-file\0" Required_argument "S" + "minimal\0" No_argument "d" ++ "no-dereference\0" No_argument "\xff" + ; + #endif + +-- +2.11.0 + diff --git a/aports/busybox/0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch b/aports/busybox/0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch new file mode 100644 index 00000000..70f420a9 --- /dev/null +++ b/aports/busybox/0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch @@ -0,0 +1,91 @@ +From e139ae307e4fd9eb3b86a6fc2e97b4e212925199 Mon Sep 17 00:00:00 2001 +From: Denys Vlasenko +Date: Wed, 12 Apr 2017 21:02:33 +0200 +Subject: [PATCH 13/14] ash: make shellexec capable of using separate argv[0] + and filename to exec + +function old new delta +execcmd 71 78 +7 +shellexec 221 224 +3 +evalcommand 1158 1161 +3 +------------------------------------------------------------------------------ +(add/remove: 0/0 grow/shrink: 3/0 up/down: 13/0) Total: 13 bytes + +Signed-off-by: Denys Vlasenko +--- + shell/ash.c | 21 ++++++++++----------- + 1 file changed, 10 insertions(+), 11 deletions(-) + +diff --git a/shell/ash.c b/shell/ash.c +index 983f7b1..044f166 100644 +--- a/shell/ash.c ++++ b/shell/ash.c +@@ -7744,9 +7744,8 @@ tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) char *cmd, char **argv, char ** + * have to change the find_command routine as well. + * argv[-1] must exist and be writable! See tryexec() for why. + */ +-static void shellexec(char **, const char *, int) NORETURN; +-static void +-shellexec(char **argv, const char *path, int idx) ++static void shellexec(char *prog, char **argv, const char *path, int idx) NORETURN; ++static void shellexec(char *prog, char **argv, const char *path, int idx) + { + char *cmdname; + int e; +@@ -7755,12 +7754,12 @@ shellexec(char **argv, const char *path, int idx) + int applet_no = -1; /* used only by FEATURE_SH_STANDALONE */ + + envp = listvars(VEXPORT, VUNSET, /*end:*/ NULL); +- if (strchr(argv[0], '/') != NULL ++ if (strchr(prog, '/') != NULL + #if ENABLE_FEATURE_SH_STANDALONE +- || (applet_no = find_applet_by_name(argv[0])) >= 0 ++ || (applet_no = find_applet_by_name(prog)) >= 0 + #endif + ) { +- tryexec(IF_FEATURE_SH_STANDALONE(applet_no,) argv[0], argv, envp); ++ tryexec(IF_FEATURE_SH_STANDALONE(applet_no,) prog, argv, envp); + if (applet_no >= 0) { + /* We tried execing ourself, but it didn't work. + * Maybe /proc/self/exe doesn't exist? +@@ -7772,7 +7771,7 @@ shellexec(char **argv, const char *path, int idx) + } else { + try_PATH: + e = ENOENT; +- while ((cmdname = path_advance(&path, argv[0])) != NULL) { ++ while ((cmdname = path_advance(&path, prog)) != NULL) { + if (--idx < 0 && pathopt == NULL) { + tryexec(IF_FEATURE_SH_STANDALONE(-1,) cmdname, argv, envp); + if (errno != ENOENT && errno != ENOTDIR) +@@ -7796,8 +7795,8 @@ shellexec(char **argv, const char *path, int idx) + } + exitstatus = exerrno; + TRACE(("shellexec failed for %s, errno %d, suppress_int %d\n", +- argv[0], e, suppress_int)); +- ash_msg_and_raise(EXEXIT, "%s: %s", argv[0], errmsg(e, "not found")); ++ prog, e, suppress_int)); ++ ash_msg_and_raise(EXEXIT, "%s: %s", prog, errmsg(e, "not found")); + /* NOTREACHED */ + } + +@@ -9371,7 +9370,7 @@ execcmd(int argc UNUSED_PARAM, char **argv) + /*setsignal(SIGTSTP); - unnecessary because of mflag=0 */ + /*setsignal(SIGTTOU); - unnecessary because of mflag=0 */ + +- shellexec(argv + 1, pathval(), 0); ++ shellexec(argv[1], argv + 1, pathval(), 0); + /* NOTREACHED */ + } + return 0; +@@ -9773,7 +9772,7 @@ evalcommand(union node *cmd, int flags) + /* fall through to exec'ing external program */ + } + listsetvar(varlist.list, VEXPORT|VSTACK); +- shellexec(argv, path, cmdentry.u.index); ++ shellexec(argv[0], argv, path, cmdentry.u.index); + /* NOTREACHED */ + } /* default */ + case CMDBUILTIN: +-- +2.9.3 + diff --git a/aports/busybox/0014-ash-implement-exec-a-ARGV0-CMD-ARGV1.patch b/aports/busybox/0014-ash-implement-exec-a-ARGV0-CMD-ARGV1.patch new file mode 100644 index 00000000..028196a4 --- /dev/null +++ b/aports/busybox/0014-ash-implement-exec-a-ARGV0-CMD-ARGV1.patch @@ -0,0 +1,69 @@ +From 6c149f4d9afaed9edb75c88b784ad900c1f40700 Mon Sep 17 00:00:00 2001 +From: Denys Vlasenko +Date: Wed, 12 Apr 2017 21:31:32 +0200 +Subject: [PATCH 14/14] ash: implement "exec -a ARGV0 CMD ARGV1..." + +function old new delta +execcmd 71 112 +41 +shellexec 221 224 +3 +evalcommand 1158 1161 +3 +localcmd 364 366 +2 +unaliascmd 163 154 -9 +------------------------------------------------------------------------------ +(add/remove: 0/0 grow/shrink: 4/1 up/down: 49/-9) Total: 40 bytes + +Signed-off-by: Denys Vlasenko +--- + shell/ash.c | 22 +++++++++++++++------- + 1 file changed, 15 insertions(+), 7 deletions(-) + +diff --git a/shell/ash.c b/shell/ash.c +index 044f166..e170bec 100644 +--- a/shell/ash.c ++++ b/shell/ash.c +@@ -3345,11 +3345,9 @@ unaliascmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) + { + int i; + +- while ((i = nextopt("a")) != '\0') { +- if (i == 'a') { +- rmaliases(); +- return 0; +- } ++ while (nextopt("a") != '\0') { ++ rmaliases(); ++ return 0; + } + for (i = 0; *argptr; argptr++) { + if (unalias(*argptr)) { +@@ -9354,7 +9352,14 @@ truecmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) + static int FAST_FUNC + execcmd(int argc UNUSED_PARAM, char **argv) + { +- if (argv[1]) { ++ optionarg = NULL; ++ while (nextopt("a:") != '\0') ++ /* nextopt() sets optionarg to "-a ARGV0" */; ++ ++ argv = argptr; ++ if (argv[0]) { ++ char *prog; ++ + iflag = 0; /* exit on error */ + mflag = 0; + optschanged(); +@@ -9370,7 +9375,10 @@ execcmd(int argc UNUSED_PARAM, char **argv) + /*setsignal(SIGTSTP); - unnecessary because of mflag=0 */ + /*setsignal(SIGTTOU); - unnecessary because of mflag=0 */ + +- shellexec(argv[1], argv + 1, pathval(), 0); ++ prog = argv[0]; ++ if (optionarg) ++ argv[0] = optionarg; ++ shellexec(prog, argv, pathval(), 0); + /* NOTREACHED */ + } + return 0; +-- +2.9.3 + diff --git a/aports/busybox/APKBUILD b/aports/busybox/APKBUILD new file mode 100644 index 00000000..b2f2298c --- /dev/null +++ b/aports/busybox/APKBUILD @@ -0,0 +1,199 @@ +# Contributor: Łukasz Jendrysik +# Contributor: Oliver Smith +# Maintainer: Natanael Copa +pkgname=busybox +pkgver=1.26.2 +pkgrel=3 +pkgdesc="Size optimized toolbox of many common UNIX utilities" +url=http://busybox.net +arch="all" +license="GPL2" +makedepends_build="" +makedepends_host="linux-headers" +makedepends="$makedepends_build $makedepends_host" +install="$pkgname.post-install $pkgname-extras.post-install $pkgname.post-upgrade" +subpackages="$pkgname-extras $pkgname-static $pkgname-suid" +options="suid" +_triggerpaths="/bin:/usr/bin:/sbin:/usr/sbin:/lib/modules/*" +triggers="busybox.trigger=$_triggerpaths busybox-extras.trigger=$_triggerpaths" +source="http://busybox.net/downloads/$pkgname-$pkgver.tar.bz2 + 0001-ash-exec-busybox.static.patch + 0002-app-location-for-vi-and-lspci.patch + 0003-udhcpc-set-default-discover-retries-to-5.patch + 0004-ping-make-ping-work-without-root-privileges.patch + 0005-fbsplash-support-console-switching.patch + 0006-fbsplash-support-image-and-bar-alignment-and-positio.patch + 0007-depmod-support-generating-kmod-binary-index-files.patch + 0008-login-move-check_securetty-to-libbb.patch + 0009-libbb-allow_blank-argument-for-ask_and_check_passwor.patch + 0010-su-FEATURE_SU_NULLOK_SECURE.patch + 0011-ntpd-postpone-hostname-resolution-if-fails-on-startu.patch + 0012-diff-add-support-for-no-dereference.patch + 0013-ash-make-shellexec-capable-of-using-separate-argv-0-.patch + 0014-ash-implement-exec-a-ARGV0-CMD-ARGV1.patch + + location-for-cpio.patch + + acpid.logrotate + busyboxconfig + busyboxconfig-extras + bbsuid.c + dad.if-up + nologin.c + " + +_sdir="$srcdir"/$pkgname-$pkgver +_staticdir="$srcdir"/build-static +_dyndir="$srcdir"/build-dynamic +_dyndir_extras="$srcdir"/build-dynamic-extras +_config="$srcdir"/busyboxconfig +_config_extras="$srcdir"/busyboxconfig-extras + +prepare() { + mkdir -p "$_staticdir" "$_dyndir" "$_dyndir_extras" + #patches + cd "$_sdir" + for i in $source; do + local p=${i##*/} + case $i in + *.patch) msg $p; patch -p1 -i "$srcdir"/$p || return 1;; + esac + done + + cp "$srcdir"/nologin.c loginutils/ +} + +build() { + # build bbsuid + msg "Building bbsuid" + ${CC:-${CROSS_COMPILE}gcc} ${CPPFLAGS} ${CFLAGS} \ + ${LDFLAGS} "$srcdir"/bbsuid.c -o "$_dyndir"/bbsuid || return 1 + + # build dynamic + cd "$_dyndir" + msg "Building dynamic busybox" + cp "$_config" .config + [ "$CLIBC" = musl ] && sed -i \ + -e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \ + .config + make -C "$_sdir" O="$PWD" silentoldconfig || return 1 + make || return 1 + + # build dynamic (extras) + cd "$_dyndir_extras" + msg "Building dynamic busybox-extras" + cp "$_config_extras" .config + [ "$CLIBC" = musl ] && sed -i \ + -e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \ + .config + make -C "$_sdir" O="$PWD" silentoldconfig || return 1 + make || return 1 + + # build static + cd "$_staticdir" + msg "Building static busybox" + sed -e "s/.*CONFIG_PIE.*/\# CONFIG_PIE is not set/" \ + -e "s/.*CONFIG_STATIC.*/CONFIG_STATIC=y/" \ + "$_config" > .config + # musl does not support GNU regex + [ "$CLIBC" = musl ] && sed -i \ + -e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \ + .config + make -C "$_sdir" O="$PWD" silentoldconfig || return 1 + make || return 1 + mv busybox busybox.static +} + +# $1: $_dyndir or $_dyndir_extras +# $2: $pkgdir or $subpkgdir +_package_dynamic() { + cd "$1" + mkdir -p "$2"/usr/sbin "$2"/usr/bin "$2"/tmp \ + "$2"/var/cache/misc "$2"/bin "$2"/sbin + chmod 1777 "$2"/tmp + install -m755 busybox "$2"/bin/busybox || return 1 + # we need /bin/sh to be able to execute post-install + ln -s /bin/busybox "$2"/bin/sh + + #ifupdown needs those dirs to be present + mkdir -p \ + "$2"/etc/network/if-down.d \ + "$2"/etc/network/if-post-down.d \ + "$2"/etc/network/if-post-up.d \ + "$2"/etc/network/if-pre-down.d \ + "$2"/etc/network/if-pre-up.d \ + "$2"/etc/network/if-up.d \ + || return 1 + install -m775 "$srcdir"/dad.if-up "$2"/etc/network/if-up.d/dad \ + || return 1 + + install -Dm644 "$srcdir"/acpid.logrotate \ + "$2/etc/logrotate.d/acpid" || return 1 + + mkdir -p "$2"/var/lib/udhcpd || return 1 + install -Dm644 "$_sdir"/examples/udhcp/udhcpd.conf \ + "$2"/etc/udhcpd.conf || return 1 + cat >"$2"/etc/securetty < + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. See http://www.gnu.org/ for details. + * + */ + +#include +#include + +#include +#include +#include +#include +#include + +#define BBSUID_PATH "/bin/bbsuid" + +const static char * applets[] = { + "/bin/mount", + "/bin/umount", + "/usr/bin/crontab", + "/usr/bin/passwd", + "/usr/bin/su", + "/usr/bin/traceroute", + "/usr/bin/traceroute6", + "/usr/bin/vlock", + NULL +}; + + +static const char *applet_from_path(const char *str) +{ + const char *p = strrchr(str, '/'); + if (p == NULL) + p = str; + else + p++; + return p; +} + +static int is_valid_applet(const char *str) +{ + int i; + for (i = 0; applets[i] != NULL; i++) { + const char *a = applet_from_path(applets[i]); + if (strcmp(applet_from_path(str), a) == 0) + return 1; + } + return 0; +} + +int exec_busybox(const char *app, int argc, char **argv) +{ + char **newargv = malloc((argc + 2) * sizeof(char *)); + int i; + newargv[0] = "/bin/busybox"; + newargv[1] = (char *)app; + for (i = 1; i < argc; i++) + newargv[i+1] = argv[i]; + newargv[argc+1] = NULL; + execv(newargv[0], newargv); + perror(newargv[0]); + free(newargv); + return 1; +} + +static int install_links(void) +{ + int i, r = 0; + /* we don't want others than root to install the symlinks */ + if (getuid() != 0) + errx(1, "Only root can install symlinks"); + + for (i = 0; applets[i] != NULL; i++) { + const char *a = applets[i]; + struct stat st; + if (lstat(a, &st) == 0 && S_ISLNK(st.st_mode)) + unlink(a); + if (symlink(BBSUID_PATH, a) < 0) + r++; + } + + return r; +} + +int main(int argc, char **argv) +{ + const char *app = applet_from_path(argv[0]); + + if (strcmp(app, "bbsuid") == 0) { + if (argc == 2 && strcmp(argv[1], "--install") == 0) + return install_links(); + errx(1, "Use --install to install symlinks"); + } + + if (is_valid_applet(app)) + return exec_busybox(app, argc, argv); + + errx(1, "%s is not a valid applet", app); + return 1; +} + diff --git a/aports/busybox/busybox-extras.post-install b/aports/busybox/busybox-extras.post-install new file mode 100644 index 00000000..509b8a7a --- /dev/null +++ b/aports/busybox/busybox-extras.post-install @@ -0,0 +1,10 @@ +#!/bin/sh + +# Uninstall note +echo "-> NOTE: To uninstall busybox-extras properly, do this:" +echo " # apk del busybox-extras" +echo " # apk add /var/cache/apk/busybox-1.26.2-r3...apk # pick latest" +echo " # apk add busybox" + +# We need the symlinks early +exec /bin/busybox --install -s diff --git a/aports/busybox/busybox-extras.trigger b/aports/busybox/busybox-extras.trigger new file mode 120000 index 00000000..e1eac36f --- /dev/null +++ b/aports/busybox/busybox-extras.trigger @@ -0,0 +1 @@ +busybox.trigger \ No newline at end of file diff --git a/aports/busybox/busybox.post-install b/aports/busybox/busybox.post-install new file mode 100644 index 00000000..a82398e0 --- /dev/null +++ b/aports/busybox/busybox.post-install @@ -0,0 +1,20 @@ +#!/bin/sh + +# Remove links from busybox-extras (see also: busybox.post-upgrade) +for link in \ + /usr/bin/ftpget \ + /usr/bin/ftpput \ + /usr/bin/telnet \ + /usr/bin/tftp \ + /usr/sbin/ftpd \ + /usr/sbin/httpd \ + /usr/sbin/telnetd \ + /usr/sbin/tftpd \ +; do + if [ -L "$link" ] && [ "$(readlink $link)" = "/bin/busybox" ]; then + rm "$link" + fi +done + +# We need the symlinks early +exec /bin/busybox --install -s diff --git a/aports/busybox/busybox.post-upgrade b/aports/busybox/busybox.post-upgrade new file mode 100644 index 00000000..c59160d6 --- /dev/null +++ b/aports/busybox/busybox.post-upgrade @@ -0,0 +1,31 @@ +#!/bin/sh + +# Remove links, that have been relocated (see also: busybox.post-install) +for link in \ + /usr/bin/ftpget \ + /usr/bin/ftpput \ + /usr/bin/telnet \ + /usr/bin/tftp \ + /usr/sbin/ftpd \ + /usr/sbin/httpd \ + /usr/sbin/telnetd \ + /usr/sbin/tftpd \ +; do + if [ -L "$link" ] && [ "$(readlink $link)" = "/bin/busybox" ]; then + rm "$link" + echo "-> $(basename $link) is now in busybox-extras" + fi +done +for link in /bin/install /bin/ip /bin/vi /usr/bin/lspci; do + if [ -L "$link" ] && [ "$(readlink $link)" = "/bin/busybox" ]; then + rm "$link" + fi +done +for link in /bin/ping /bin/ping6; do + if [ -L "$link" ] && [ "$(readlink $link)" = "/bin/bbsuid" ]; then + rm "$link" + fi +done + +# We need the symlinks early +exec /bin/busybox --install -s diff --git a/aports/busybox/busybox.trigger b/aports/busybox/busybox.trigger new file mode 100644 index 00000000..c9f90591 --- /dev/null +++ b/aports/busybox/busybox.trigger @@ -0,0 +1,19 @@ +#!/bin/sh + +do_bb_install= + +for i in "$@"; do + case "$i" in + /lib/modules/*) + if [ -d "$i" ]; then + /bin/busybox depmod ${i#/lib/modules/} + fi + ;; + *) do_bb_install=yes;; + esac +done + +if [ -n "$do_bb_install" ]; then + [ -e /bin/bbsuid ] && /bin/bbsuid --install + /bin/busybox --install -s +fi diff --git a/aports/busybox/busyboxconfig b/aports/busybox/busyboxconfig new file mode 100644 index 00000000..c3e8ee6e --- /dev/null +++ b/aports/busybox/busyboxconfig @@ -0,0 +1,1096 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.26.2 +# Fri May 5 19:56:04 2017 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_INCLUDE_SUSv2 is not set +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_PLATFORM_LINUX=y +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_BUSYBOX=y +CONFIG_FEATURE_INSTALLER=y +# CONFIG_INSTALL_NO_USR is not set +# CONFIG_PAM is not set +CONFIG_LONG_OPTS=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +# CONFIG_FEATURE_UTMP is not set +# CONFIG_FEATURE_WTMP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_PID_FILE_PATH="/var/run" +CONFIG_FEATURE_SUID=y +# CONFIG_FEATURE_SUID_CONFIG is not set +# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/bin/busybox" +CONFIG_FEATURE_SYSLOG=y +# CONFIG_FEATURE_HAVE_RPC is not set + +# +# Build Options +# +# CONFIG_STATIC is not set +CONFIG_PIE=y +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" +CONFIG_SYSROOT="" +CONFIG_EXTRA_CFLAGS="" +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" + +# +# Installation Options ("make install" behavior) +# +# CONFIG_INSTALL_APPLET_SYMLINKS is not set +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +CONFIG_INSTALL_APPLET_DONT=y +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="/home/ncopa/aports/main/busybox/pkg/busybox" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Busybox Library Tuning +# +# CONFIG_FEATURE_USE_BSS_TAIL is not set +CONFIG_FEATURE_RTMINMAX=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SMALL=0 +CONFIG_SHA3_SMALL=0 +CONFIG_FEATURE_FAST_TOP=y +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=255 +CONFIG_FEATURE_EDITING_SAVEHISTORY=y +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set +CONFIG_FEATURE_REVERSE_SEARCH=y +CONFIG_FEATURE_TAB_COMPLETION=y +CONFIG_FEATURE_USERNAME_COMPLETION=y +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_EDITING_ASK_TERMINAL=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_UNICODE_SUPPORT=y +CONFIG_UNICODE_USING_LOCALE=y +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=63 +CONFIG_LAST_SUPPORTED_WCHAR=1114111 +CONFIG_UNICODE_COMBINING_WCHARS=y +CONFIG_UNICODE_WIDE_WCHARS=y +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +CONFIG_UNICODE_PRESERVE_BROKEN=y +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_FEATURE_COPYBUF_KB=16 +CONFIG_FEATURE_SKIP_ROOTFS=y +CONFIG_MONOTONIC_SYSCALL=y +# CONFIG_IOCTL_HEX2STR_ERROR is not set +CONFIG_FEATURE_HWIB=y + +# +# Applets +# + +# +# Archival Utilities +# +CONFIG_FEATURE_SEAMLESS_XZ=y +CONFIG_FEATURE_SEAMLESS_LZMA=y +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +# CONFIG_AR is not set +# CONFIG_FEATURE_AR_LONG_FILENAMES is not set +# CONFIG_FEATURE_AR_CREATE is not set +# CONFIG_UNCOMPRESS is not set +CONFIG_GUNZIP=y +CONFIG_ZCAT=y +CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y +CONFIG_BUNZIP2=y +CONFIG_BZCAT=y +CONFIG_UNLZMA=y +CONFIG_LZCAT=y +CONFIG_LZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNXZ=y +CONFIG_XZCAT=y +# CONFIG_XZ is not set +CONFIG_BZIP2=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +CONFIG_FEATURE_CPIO_P=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +CONFIG_GZIP=y +# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set +CONFIG_GZIP_FAST=2 +CONFIG_FEATURE_GZIP_LEVELS=y +CONFIG_LZOP=y +CONFIG_UNLZOP=y +CONFIG_LZOPCAT=y +# CONFIG_LZOP_COMPR_HIGH is not set +# CONFIG_RPM is not set +# CONFIG_RPM2CPIO is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +# CONFIG_FEATURE_TAR_TO_COMMAND is not set +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y +# CONFIG_FEATURE_TAR_SELINUX is not set +CONFIG_UNZIP=y + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_FEATURE_CP_LONG_OPTIONS=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +# CONFIG_FEATURE_DATE_NANO is not set +CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_DD_STATUS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_FANCY=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set +CONFIG_EXPAND=y +# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set +CONFIG_UNEXPAND=y +# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_FSYNC=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_GROUPS=y +CONFIG_INSTALL=y +# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set +CONFIG_LN=y +# CONFIG_LOGNAME is not set +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA512SUM=y +CONFIG_SHA3SUM=y + +# +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y +CONFIG_MKDIR=y +# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +# CONFIG_FEATURE_MV_LONG_OPTIONS is not set +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHUF=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_FEATURE_FLOAT_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +# CONFIG_FEATURE_SPLIT_FANCY is not set +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_FEATURE_STAT_FILESYSTEM=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_FEATURE_SYNC_FANCY=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_TEST1=y +CONFIG_TEST2=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_NODEREF=y +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TRUNCATE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNAME_OSNAME="Linux" +CONFIG_UNIQ=y +CONFIG_UNLINK=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_BASE64=y +CONFIG_UUENCODE=y +CONFIG_WC=y +# CONFIG_FEATURE_WC_LARGE is not set +# CONFIG_WHO is not set +# CONFIG_USERS is not set +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options +# +CONFIG_FEATURE_VERBOSE=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +# CONFIG_FGCONSOLE is not set +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_SETFONT=y +CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y +CONFIG_DEFAULT_SETFONT_DIR="/usr/share" + +# +# Common options for loadfont and setfont +# +CONFIG_FEATURE_LOADFONT_PSF2=y +CONFIG_FEATURE_LOADFONT_RAW=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y +CONFIG_SHOWKEY=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +# CONFIG_FEATURE_RUN_PARTS_FANCY is not set +# CONFIG_START_STOP_DAEMON is not set +# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set +# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_LIBM=y +CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_LONG_OPTIONS=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +# CONFIG_FEATURE_VI_REGEX_SEARCH is not set +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_ASK_TERMINAL=y +CONFIG_FEATURE_VI_UNDO=y +CONFIG_FEATURE_VI_UNDO_QUEUE=y +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_EXEC_PLUS=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_DELETE=y +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_FEATURE_FIND_LINKS=y +CONFIG_GREP=y +CONFIG_EGREP=y +CONFIG_FGREP=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y +CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y + +# +# Init Utilities +# +# CONFIG_BOOTCHARTD is not set +# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set +# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set +CONFIG_HALT=y +CONFIG_POWEROFF=y +CONFIG_REBOOT=y +# CONFIG_FEATURE_CALL_TELINIT is not set +CONFIG_TELINIT_PATH="" +CONFIG_INIT=y +# CONFIG_LINUXRC is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=0 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +CONFIG_INIT_TERMINAL_TYPE="linux" +# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set +CONFIG_MESG=y +CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +# CONFIG_USE_BB_CRYPT is not set +# CONFIG_USE_BB_CRYPT_SHA is not set +CONFIG_ADD_SHELL=y +CONFIG_REMOVE_SHELL=y +CONFIG_ADDGROUP=y +# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_LAST_ID=256000 +CONFIG_FIRST_SYSTEM_ID=100 +CONFIG_LAST_SYSTEM_ID=999 +CONFIG_CHPASSWD=y +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="sha512" +CONFIG_CRYPTPW=y +CONFIG_MKPASSWD=y +CONFIG_DELUSER=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_GETTY=y +CONFIG_LOGIN=y +CONFIG_LOGIN_SESSION_AS_CHILD=y +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +CONFIG_FEATURE_SECURETTY=y +CONFIG_NOLOGIN=y +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_FEATURE_SU_NULLOK_SECURE=y +# CONFIG_SULOGIN is not set +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +# CONFIG_CHATTR is not set +CONFIG_FSCK=y +# CONFIG_LSATTR is not set +# CONFIG_TUNE2FS is not set + +# +# Linux Module Utilities +# +# CONFIG_MODPROBE_SMALL is not set +CONFIG_DEPMOD=y +CONFIG_INSMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODINFO=y +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_BLACKLIST=y +CONFIG_RMMOD=y + +# +# Options common to multiple modutils +# +# CONFIG_FEATURE_2_4_MODULES is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_MODUTILS_ALIAS=y +CONFIG_FEATURE_MODUTILS_BIN=y +CONFIG_FEATURE_MODUTILS_SYMBOLS=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" + +# +# Linux System Utilities +# +CONFIG_ACPID=y +CONFIG_FEATURE_ACPID_COMPAT=y +CONFIG_BLKDISCARD=y +CONFIG_BLKID=y +CONFIG_FEATURE_BLKID_TYPE=y +CONFIG_BLOCKDEV=y +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FATATTR=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +CONFIG_FEATURE_FDISK_WRITABLE=y +CONFIG_FEATURE_AIX_LABEL=y +CONFIG_FEATURE_SGI_LABEL=y +CONFIG_FEATURE_SUN_LABEL=y +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_GPT_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +CONFIG_FINDFS=y +CONFIG_FLOCK=y +CONFIG_FDFLUSH=y +# CONFIG_FREERAMDISK is not set +# CONFIG_FSCK_MINIX is not set +CONFIG_FSTRIM=y +CONFIG_GETOPT=y +CONFIG_FEATURE_GETOPT_LONG=y +CONFIG_HEXDUMP=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y +CONFIG_HD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_LSPCI=y +CONFIG_LSUSB=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +# CONFIG_MKE2FS is not set +# CONFIG_MKFS_EXT2 is not set +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_MKFS_REISER is not set +CONFIG_MKDOSFS=y +CONFIG_MKFS_VFAT=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_UUID=y +CONFIG_MORE=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +CONFIG_FEATURE_MOUNT_VERBOSE=y +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +# CONFIG_FEATURE_MOUNT_NFS is not set +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set +CONFIG_NSENTER=y +CONFIG_FEATURE_NSENTER_LONG_OPTS=y +# CONFIG_PIVOT_ROOT is not set +CONFIG_RDATE=y +CONFIG_RDEV=y +CONFIG_READPROFILE=y +CONFIG_REV=y +# CONFIG_RTCWAKE is not set +# CONFIG_SCRIPT is not set +# CONFIG_SCRIPTREPLAY is not set +# CONFIG_SETARCH is not set +CONFIG_LINUX32=y +CONFIG_LINUX64=y +CONFIG_SWAPON=y +CONFIG_FEATURE_SWAPON_DISCARD=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWAPOFF=y +CONFIG_SWITCH_ROOT=y +# CONFIG_UEVENT is not set +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y +CONFIG_UNSHARE=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MOUNT_LOOP_CREATE=y +# CONFIG_FEATURE_MTAB_SUPPORT is not set +CONFIG_VOLUMEID=y + +# +# Filesystem/Volume identification +# +CONFIG_FEATURE_VOLUMEID_BCACHE=y +CONFIG_FEATURE_VOLUMEID_BTRFS=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_EXFAT=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_F2FS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +# CONFIG_FEATURE_VOLUMEID_HFS is not set +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_NILFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_OCFS2=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +# CONFIG_FEATURE_VOLUMEID_ROMFS is not set +CONFIG_FEATURE_VOLUMEID_SQUASHFS=y +# CONFIG_FEATURE_VOLUMEID_SYSV is not set +CONFIG_FEATURE_VOLUMEID_UBIFS=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_XFS=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_FEATURE_COMPRESS_BBCONFIG=y +CONFIG_BEEP=y +CONFIG_FEATURE_BEEP_FREQ=440 +CONFIG_FEATURE_BEEP_LENGTH_MS=30 +# CONFIG_CHAT is not set +# CONFIG_FEATURE_CHAT_NOFAIL is not set +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +# CONFIG_CHRT is not set +CONFIG_CONSPY=y +CONFIG_CROND=y +CONFIG_FEATURE_CROND_D=y +CONFIG_FEATURE_CROND_CALL_SENDMAIL=y +CONFIG_FEATURE_CROND_DIR="/var/spool/cron" +CONFIG_CRONTAB=y +CONFIG_DC=y +CONFIG_FEATURE_DC_LIBM=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +# CONFIG_DEVMEM is not set +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FBSPLASH=y +# CONFIG_FLASH_ERASEALL is not set +# CONFIG_FLASH_LOCK is not set +# CONFIG_FLASH_UNLOCK is not set +# CONFIG_FLASHCP is not set +CONFIG_HDPARM=y +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set +CONFIG_INOTIFYD=y +CONFIG_IONICE=y +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_TRUNCATE=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_FEATURE_LESS_WINCH=y +CONFIG_FEATURE_LESS_ASK_TERMINAL=y +CONFIG_FEATURE_LESS_DASHCMD=y +CONFIG_FEATURE_LESS_LINENUMS=y +# CONFIG_MAKEDEVS is not set +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +# CONFIG_FEATURE_MAKEDEVS_TABLE is not set +# CONFIG_MAN is not set +CONFIG_MICROCOM=y +CONFIG_MOUNTPOINT=y +# CONFIG_MT is not set +CONFIG_NANDWRITE=y +CONFIG_NANDDUMP=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RFKILL=y +# CONFIG_RUNLEVEL is not set +# CONFIG_RX is not set +CONFIG_SETSERIAL=y +CONFIG_SETSID=y +CONFIG_STRINGS=y +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +CONFIG_TIME=y +CONFIG_TIMEOUT=y +CONFIG_TTYSIZE=y +# CONFIG_UBIATTACH is not set +# CONFIG_UBIDETACH is not set +# CONFIG_UBIMKVOL is not set +# CONFIG_UBIRMVOL is not set +# CONFIG_UBIRSVOL is not set +# CONFIG_UBIUPDATEVOL is not set +# CONFIG_UBIRENAME is not set +CONFIG_VOLNAME=y +# CONFIG_WALL is not set +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_UNIX_LOCAL=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +CONFIG_VERBOSE_RESOLUTION_ERRORS=y +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +CONFIG_FEATURE_BRCTL_FANCY=y +CONFIG_FEATURE_BRCTL_SHOW=y +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +# CONFIG_FTPD is not set +# CONFIG_FEATURE_FTPD_WRITE is not set +# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set +# CONFIG_FEATURE_FTPD_AUTHENTICATION is not set +# CONFIG_FTPGET is not set +# CONFIG_FTPPUT is not set +# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set +CONFIG_HOSTNAME=y +CONFIG_DNSDOMAINNAME=y +# CONFIG_HTTPD is not set +# CONFIG_FEATURE_HTTPD_RANGES is not set +# CONFIG_FEATURE_HTTPD_SETUID is not set +# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set +# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set +# CONFIG_FEATURE_HTTPD_CGI is not set +# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set +# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set +# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set +# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set +# CONFIG_FEATURE_HTTPD_PROXY is not set +# CONFIG_FEATURE_HTTPD_GZIP is not set +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +# CONFIG_IFPLUGD is not set +CONFIG_IFUP=y +CONFIG_IFDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +CONFIG_INETD=y +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPNEIGH=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_NEIGH=y +CONFIG_FEATURE_IP_RARE_PROTOCOLS=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set +CONFIG_FAKEIDENTD=y +CONFIG_NAMEIF=y +CONFIG_FEATURE_NAMEIF_EXTENDED=y +CONFIG_NBDCLIENT=y +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NC_110_COMPAT=y +CONFIG_NETSTAT=y +CONFIG_FEATURE_NETSTAT_WIDE=y +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_NTPD=y +CONFIG_FEATURE_NTPD_SERVER=y +CONFIG_FEATURE_NTPD_CONF=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +CONFIG_SLATTACH=y +# CONFIG_TCPSVD is not set +# CONFIG_UDPSVD is not set +# CONFIG_TELNET is not set +# CONFIG_FEATURE_TELNET_TTYPE is not set +# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set +# CONFIG_TELNETD is not set +# CONFIG_FEATURE_TELNETD_STANDALONE is not set +# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set +# CONFIG_TFTP is not set +# CONFIG_TFTPD is not set +# CONFIG_FEATURE_TFTP_GET is not set +# CONFIG_FEATURE_TFTP_PUT is not set +# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set +# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set +# CONFIG_TFTP_DEBUG is not set +CONFIG_TRACEROUTE=y +CONFIG_TRACEROUTE6=y +CONFIG_FEATURE_TRACEROUTE_VERBOSE=y +CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y +CONFIG_TUNCTL=y +CONFIG_FEATURE_TUNCTL_UG=y +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_TIMEOUT=y +CONFIG_FEATURE_WGET_OPENSSL=y +CONFIG_FEATURE_WGET_SSL_HELPER=y +CONFIG_WHOIS=y +# CONFIG_ZCIP is not set +CONFIG_UDHCPC6=y +CONFIG_UDHCPD=y +# CONFIG_DHCPRELAY is not set +CONFIG_DUMPLEASES=y +CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y +CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC=y +CONFIG_DHCPD_LEASES_FILE="/var/lib/udhcpd/udhcpd.leases" +CONFIG_UDHCPC=y +CONFIG_FEATURE_UDHCPC_ARPING=y +CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y +# CONFIG_FEATURE_UDHCP_PORT is not set +CONFIG_UDHCP_DEBUG=0 +CONFIG_FEATURE_UDHCP_RFC3397=y +CONFIG_FEATURE_UDHCP_8021Q=y +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" + +# +# Print Utilities +# +# CONFIG_LPD is not set +# CONFIG_LPR is not set +# CONFIG_LPQ is not set + +# +# Mail Utilities +# +CONFIG_MAKEMIME=y +# CONFIG_POPMAILDIR is not set +# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set +CONFIG_REFORMIME=y +CONFIG_FEATURE_REFORMIME_COMPAT=y +CONFIG_SENDMAIL=y +CONFIG_FEATURE_MIME_CHARSET="us-ascii" + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_IOSTAT=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_LSOF=y +CONFIG_MPSTAT=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PKILL=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PMAP=y +CONFIG_POWERTOP=y +CONFIG_PS=y +# CONFIG_FEATURE_PS_WIDE is not set +# CONFIG_FEATURE_PS_LONG is not set +CONFIG_FEATURE_PS_TIME=y +CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_PSTREE=y +CONFIG_PWDX=y +CONFIG_RENICE=y +CONFIG_SMEMCAP=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_SMP_CPU=y +# CONFIG_FEATURE_TOP_DECIMALS is not set +CONFIG_FEATURE_TOP_SMP_PROCESS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set +CONFIG_WATCH=y +# CONFIG_FEATURE_SHOW_THREADS is not set + +# +# Runit Utilities +# +# CONFIG_CHPST is not set +# CONFIG_SETUIDGID is not set +# CONFIG_ENVUIDGID is not set +# CONFIG_ENVDIR is not set +# CONFIG_SOFTLIMIT is not set +# CONFIG_RUNSV is not set +# CONFIG_RUNSVDIR is not set +# CONFIG_FEATURE_RUNSVDIR_LOG is not set +# CONFIG_SV is not set +CONFIG_SV_DEFAULT_SERVICE_DIR="" +# CONFIG_SVC is not set +# CONFIG_SVLOGD is not set +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SESTATUS is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_RESTORECON is not set +# CONFIG_SETSEBOOL is not set + +# +# Shells +# +CONFIG_SH_IS_ASH=y +# CONFIG_SH_IS_HUSH is not set +# CONFIG_SH_IS_NONE is not set +# CONFIG_BASH_IS_ASH is not set +# CONFIG_BASH_IS_HUSH is not set +CONFIG_BASH_IS_NONE=y +CONFIG_ASH=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_INTERNAL_GLOB=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_IDLE_TIMEOUT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_HELP=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +# CONFIG_CTTYHACK is not set +# CONFIG_HUSH is not set +# CONFIG_HUSH_BASH_COMPAT is not set +# CONFIG_HUSH_BRACE_EXPANSION is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_SAVEHISTORY is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_HUSH_FUNCTIONS is not set +# CONFIG_HUSH_LOCAL is not set +# CONFIG_HUSH_RANDOM_SUPPORT is not set +# CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_MODE_X is not set +# CONFIG_MSH is not set +CONFIG_FEATURE_SH_MATH=y +CONFIG_FEATURE_SH_MATH_64=y +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_FEATURE_SH_HISTFILESIZE=y + +# +# System Logging Utilities +# +CONFIG_KLOGD=y + +# +# klogd should not be used together with syslog to kernel printk buffer +# +CONFIG_FEATURE_KLOGD_KLOGCTL=y +CONFIG_LOGGER=y +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +CONFIG_FEATURE_SYSLOGD_DUP=y +CONFIG_FEATURE_SYSLOGD_CFG=y +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_FEATURE_KMSG_SYSLOG=y diff --git a/aports/busybox/busyboxconfig-extras b/aports/busybox/busyboxconfig-extras new file mode 100644 index 00000000..f911d322 --- /dev/null +++ b/aports/busybox/busyboxconfig-extras @@ -0,0 +1,1100 @@ +# +# Automatically generated make config: don't edit +# Busybox version: 1.26.2 +# Fri May 5 20:23:06 2017 +# +CONFIG_HAVE_DOT_CONFIG=y + +# +# Busybox Settings +# +CONFIG_DESKTOP=y +# CONFIG_EXTRA_COMPAT is not set +# CONFIG_INCLUDE_SUSv2 is not set +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_PLATFORM_LINUX=y +CONFIG_SHOW_USAGE=y +CONFIG_FEATURE_VERBOSE_USAGE=y +CONFIG_FEATURE_COMPRESS_USAGE=y +CONFIG_BUSYBOX=y +CONFIG_FEATURE_INSTALLER=y +# CONFIG_INSTALL_NO_USR is not set +# CONFIG_PAM is not set +CONFIG_LONG_OPTS=y +CONFIG_FEATURE_DEVPTS=y +# CONFIG_FEATURE_CLEAN_UP is not set +# CONFIG_FEATURE_UTMP is not set +# CONFIG_FEATURE_WTMP is not set +CONFIG_FEATURE_PIDFILE=y +CONFIG_PID_FILE_PATH="/var/run" +CONFIG_FEATURE_SUID=y +# CONFIG_FEATURE_SUID_CONFIG is not set +# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_PREFER_APPLETS is not set +CONFIG_BUSYBOX_EXEC_PATH="/bin/busybox" +CONFIG_FEATURE_SYSLOG=y +# CONFIG_FEATURE_HAVE_RPC is not set + +# +# Build Options +# +# CONFIG_STATIC is not set +CONFIG_PIE=y +# CONFIG_NOMMU is not set +# CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_INDIVIDUAL is not set +# CONFIG_FEATURE_SHARED_BUSYBOX is not set +CONFIG_LFS=y +CONFIG_CROSS_COMPILER_PREFIX="" +CONFIG_SYSROOT="" +CONFIG_EXTRA_CFLAGS="" +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" + +# +# Installation Options ("make install" behavior) +# +# CONFIG_INSTALL_APPLET_SYMLINKS is not set +# CONFIG_INSTALL_APPLET_HARDLINKS is not set +# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set +CONFIG_INSTALL_APPLET_DONT=y +# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set +# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set +# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set +CONFIG_PREFIX="/home/ncopa/aports/main/busybox/pkg/busybox" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Busybox Library Tuning +# +# CONFIG_FEATURE_USE_BSS_TAIL is not set +CONFIG_FEATURE_RTMINMAX=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_PASSWORD_MINLEN=6 +CONFIG_MD5_SMALL=0 +CONFIG_SHA3_SMALL=0 +CONFIG_FEATURE_FAST_TOP=y +# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_FEATURE_EDITING=y +CONFIG_FEATURE_EDITING_MAX_LEN=1024 +CONFIG_FEATURE_EDITING_VI=y +CONFIG_FEATURE_EDITING_HISTORY=255 +CONFIG_FEATURE_EDITING_SAVEHISTORY=y +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set +CONFIG_FEATURE_REVERSE_SEARCH=y +CONFIG_FEATURE_TAB_COMPLETION=y +CONFIG_FEATURE_USERNAME_COMPLETION=y +CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_EDITING_ASK_TERMINAL=y +CONFIG_LOCALE_SUPPORT=y +CONFIG_UNICODE_SUPPORT=y +CONFIG_UNICODE_USING_LOCALE=y +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=63 +CONFIG_LAST_SUPPORTED_WCHAR=1114111 +CONFIG_UNICODE_COMBINING_WCHARS=y +CONFIG_UNICODE_WIDE_WCHARS=y +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +CONFIG_UNICODE_PRESERVE_BROKEN=y +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_FEATURE_COPYBUF_KB=16 +CONFIG_FEATURE_SKIP_ROOTFS=y +CONFIG_MONOTONIC_SYSCALL=y +# CONFIG_IOCTL_HEX2STR_ERROR is not set +CONFIG_FEATURE_HWIB=y + +# +# Applets +# + +# +# Archival Utilities +# +CONFIG_FEATURE_SEAMLESS_XZ=y +CONFIG_FEATURE_SEAMLESS_LZMA=y +CONFIG_FEATURE_SEAMLESS_BZ2=y +CONFIG_FEATURE_SEAMLESS_GZ=y +CONFIG_FEATURE_SEAMLESS_Z=y +# CONFIG_AR is not set +# CONFIG_FEATURE_AR_LONG_FILENAMES is not set +# CONFIG_FEATURE_AR_CREATE is not set +# CONFIG_UNCOMPRESS is not set +CONFIG_GUNZIP=y +CONFIG_ZCAT=y +CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y +CONFIG_BUNZIP2=y +CONFIG_BZCAT=y +CONFIG_UNLZMA=y +CONFIG_LZCAT=y +CONFIG_LZMA=y +CONFIG_FEATURE_LZMA_FAST=y +CONFIG_UNXZ=y +CONFIG_XZCAT=y +# CONFIG_XZ is not set +CONFIG_BZIP2=y +CONFIG_CPIO=y +CONFIG_FEATURE_CPIO_O=y +CONFIG_FEATURE_CPIO_P=y +# CONFIG_DPKG is not set +# CONFIG_DPKG_DEB is not set +CONFIG_GZIP=y +# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set +CONFIG_GZIP_FAST=2 +CONFIG_FEATURE_GZIP_LEVELS=y +CONFIG_LZOP=y +CONFIG_UNLZOP=y +CONFIG_LZOPCAT=y +# CONFIG_LZOP_COMPR_HIGH is not set +# CONFIG_RPM is not set +# CONFIG_RPM2CPIO is not set +CONFIG_TAR=y +CONFIG_FEATURE_TAR_CREATE=y +CONFIG_FEATURE_TAR_AUTODETECT=y +CONFIG_FEATURE_TAR_FROM=y +CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y +CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y +CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y +# CONFIG_FEATURE_TAR_TO_COMMAND is not set +CONFIG_FEATURE_TAR_UNAME_GNAME=y +CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y +# CONFIG_FEATURE_TAR_SELINUX is not set +CONFIG_UNZIP=y + +# +# Coreutils +# +CONFIG_BASENAME=y +CONFIG_CAL=y +CONFIG_CAT=y +CONFIG_CATV=y +CONFIG_CHGRP=y +CONFIG_CHMOD=y +CONFIG_CHOWN=y +CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y +CONFIG_CHROOT=y +CONFIG_CKSUM=y +CONFIG_COMM=y +CONFIG_CP=y +CONFIG_FEATURE_CP_LONG_OPTIONS=y +CONFIG_CUT=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +# CONFIG_FEATURE_DATE_NANO is not set +CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set +CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_DD_STATUS=y +CONFIG_DF=y +CONFIG_FEATURE_DF_FANCY=y +CONFIG_DIRNAME=y +CONFIG_DOS2UNIX=y +CONFIG_UNIX2DOS=y +CONFIG_DU=y +CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y +CONFIG_ECHO=y +CONFIG_FEATURE_FANCY_ECHO=y +CONFIG_ENV=y +# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set +CONFIG_EXPAND=y +# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set +CONFIG_UNEXPAND=y +# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set +CONFIG_EXPR=y +CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FALSE=y +CONFIG_FOLD=y +CONFIG_FSYNC=y +CONFIG_HEAD=y +CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_GROUPS=y +CONFIG_INSTALL=y +# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set +CONFIG_LN=y +# CONFIG_LOGNAME is not set +CONFIG_LS=y +CONFIG_FEATURE_LS_FILETYPES=y +CONFIG_FEATURE_LS_FOLLOWLINKS=y +CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_SORTFILES=y +CONFIG_FEATURE_LS_TIMESTAMPS=y +CONFIG_FEATURE_LS_USERNAME=y +CONFIG_FEATURE_LS_COLOR=y +CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y +CONFIG_MD5SUM=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA512SUM=y +CONFIG_SHA3SUM=y + +# +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y +CONFIG_MKDIR=y +# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set +CONFIG_MKFIFO=y +CONFIG_MKNOD=y +CONFIG_MV=y +# CONFIG_FEATURE_MV_LONG_OPTIONS is not set +CONFIG_NICE=y +CONFIG_NOHUP=y +CONFIG_OD=y +CONFIG_PRINTENV=y +CONFIG_PRINTF=y +CONFIG_PWD=y +CONFIG_READLINK=y +CONFIG_FEATURE_READLINK_FOLLOW=y +CONFIG_REALPATH=y +CONFIG_RM=y +CONFIG_RMDIR=y +# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set +CONFIG_SEQ=y +CONFIG_SHUF=y +CONFIG_SLEEP=y +CONFIG_FEATURE_FANCY_SLEEP=y +CONFIG_FEATURE_FLOAT_SLEEP=y +CONFIG_SORT=y +CONFIG_FEATURE_SORT_BIG=y +CONFIG_SPLIT=y +# CONFIG_FEATURE_SPLIT_FANCY is not set +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_FEATURE_STAT_FILESYSTEM=y +CONFIG_STTY=y +CONFIG_SUM=y +CONFIG_SYNC=y +CONFIG_FEATURE_SYNC_FANCY=y +CONFIG_TAC=y +CONFIG_TAIL=y +CONFIG_FEATURE_FANCY_TAIL=y +CONFIG_TEE=y +CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_TEST1=y +CONFIG_TEST2=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_NODEREF=y +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y +CONFIG_TRUE=y +CONFIG_TRUNCATE=y +CONFIG_TTY=y +CONFIG_UNAME=y +CONFIG_UNAME_OSNAME="Linux" +CONFIG_UNIQ=y +CONFIG_UNLINK=y +CONFIG_USLEEP=y +CONFIG_UUDECODE=y +CONFIG_BASE64=y +CONFIG_UUENCODE=y +CONFIG_WC=y +# CONFIG_FEATURE_WC_LARGE is not set +# CONFIG_WHO is not set +# CONFIG_USERS is not set +CONFIG_WHOAMI=y +CONFIG_YES=y + +# +# Common options +# +CONFIG_FEATURE_VERBOSE=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for ls, more and telnet +# +CONFIG_FEATURE_AUTOWIDTH=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y + +# +# Console Utilities +# +CONFIG_CHVT=y +CONFIG_CLEAR=y +CONFIG_DEALLOCVT=y +CONFIG_DUMPKMAP=y +# CONFIG_FGCONSOLE is not set +CONFIG_KBD_MODE=y +CONFIG_LOADFONT=y +CONFIG_SETFONT=y +CONFIG_FEATURE_SETFONT_TEXTUAL_MAP=y +CONFIG_DEFAULT_SETFONT_DIR="/usr/share" + +# +# Common options for loadfont and setfont +# +CONFIG_FEATURE_LOADFONT_PSF2=y +CONFIG_FEATURE_LOADFONT_RAW=y +CONFIG_LOADKMAP=y +CONFIG_OPENVT=y +CONFIG_RESET=y +CONFIG_RESIZE=y +CONFIG_FEATURE_RESIZE_PRINT=y +CONFIG_SETCONSOLE=y +# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set +CONFIG_SETKEYCODES=y +CONFIG_SETLOGCONS=y +CONFIG_SHOWKEY=y + +# +# Debian Utilities +# +CONFIG_MKTEMP=y +CONFIG_PIPE_PROGRESS=y +CONFIG_RUN_PARTS=y +CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y +# CONFIG_FEATURE_RUN_PARTS_FANCY is not set +# CONFIG_START_STOP_DAEMON is not set +# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set +# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set +CONFIG_WHICH=y + +# +# Editors +# +CONFIG_AWK=y +CONFIG_FEATURE_AWK_LIBM=y +CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_LONG_OPTIONS=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_ED=y +CONFIG_PATCH=y +CONFIG_SED=y +CONFIG_VI=y +CONFIG_FEATURE_VI_MAX_LEN=1024 +CONFIG_FEATURE_VI_8BIT=y +CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_YANKMARK=y +CONFIG_FEATURE_VI_SEARCH=y +# CONFIG_FEATURE_VI_REGEX_SEARCH is not set +CONFIG_FEATURE_VI_USE_SIGNALS=y +CONFIG_FEATURE_VI_DOT_CMD=y +CONFIG_FEATURE_VI_READONLY=y +CONFIG_FEATURE_VI_SETOPTS=y +CONFIG_FEATURE_VI_SET=y +CONFIG_FEATURE_VI_WIN_RESIZE=y +CONFIG_FEATURE_VI_ASK_TERMINAL=y +CONFIG_FEATURE_VI_UNDO=y +CONFIG_FEATURE_VI_UNDO_QUEUE=y +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_ALLOW_EXEC=y + +# +# Finding Utilities +# +CONFIG_FIND=y +CONFIG_FEATURE_FIND_PRINT0=y +CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_PERM=y +CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_XDEV=y +CONFIG_FEATURE_FIND_MAXDEPTH=y +CONFIG_FEATURE_FIND_NEWER=y +CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_EXEC_PLUS=y +CONFIG_FEATURE_FIND_USER=y +CONFIG_FEATURE_FIND_GROUP=y +CONFIG_FEATURE_FIND_NOT=y +CONFIG_FEATURE_FIND_DEPTH=y +CONFIG_FEATURE_FIND_PAREN=y +CONFIG_FEATURE_FIND_SIZE=y +CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_DELETE=y +CONFIG_FEATURE_FIND_PATH=y +CONFIG_FEATURE_FIND_REGEX=y +# CONFIG_FEATURE_FIND_CONTEXT is not set +CONFIG_FEATURE_FIND_LINKS=y +CONFIG_GREP=y +CONFIG_EGREP=y +CONFIG_FGREP=y +CONFIG_FEATURE_GREP_CONTEXT=y +CONFIG_XARGS=y +CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y +CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y +CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y +CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y +CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y + +# +# Init Utilities +# +# CONFIG_BOOTCHARTD is not set +# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set +# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set +CONFIG_HALT=y +CONFIG_POWEROFF=y +CONFIG_REBOOT=y +# CONFIG_FEATURE_CALL_TELINIT is not set +CONFIG_TELINIT_PATH="" +CONFIG_INIT=y +# CONFIG_LINUXRC is not set +CONFIG_FEATURE_USE_INITTAB=y +CONFIG_FEATURE_KILL_REMOVED=y +CONFIG_FEATURE_KILL_DELAY=0 +CONFIG_FEATURE_INIT_SCTTY=y +CONFIG_FEATURE_INIT_SYSLOG=y +CONFIG_FEATURE_EXTRA_QUIET=y +# CONFIG_FEATURE_INIT_COREDUMPS is not set +CONFIG_INIT_TERMINAL_TYPE="linux" +# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set +CONFIG_MESG=y +CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y + +# +# Login/Password Management Utilities +# +CONFIG_FEATURE_SHADOWPASSWDS=y +# CONFIG_USE_BB_PWD_GRP is not set +# CONFIG_USE_BB_SHADOW is not set +# CONFIG_USE_BB_CRYPT is not set +# CONFIG_USE_BB_CRYPT_SHA is not set +CONFIG_ADD_SHELL=y +CONFIG_REMOVE_SHELL=y +CONFIG_ADDGROUP=y +# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set +CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_ADDUSER=y +# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set +CONFIG_FEATURE_CHECK_NAMES=y +CONFIG_LAST_ID=256000 +CONFIG_FIRST_SYSTEM_ID=100 +CONFIG_LAST_SYSTEM_ID=999 +CONFIG_CHPASSWD=y +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="sha512" +CONFIG_CRYPTPW=y +CONFIG_MKPASSWD=y +CONFIG_DELUSER=y +CONFIG_DELGROUP=y +CONFIG_FEATURE_DEL_USER_FROM_GROUP=y +CONFIG_GETTY=y +CONFIG_LOGIN=y +CONFIG_LOGIN_SESSION_AS_CHILD=y +CONFIG_LOGIN_SCRIPTS=y +CONFIG_FEATURE_NOLOGIN=y +CONFIG_FEATURE_SECURETTY=y +CONFIG_NOLOGIN=y +CONFIG_PASSWD=y +CONFIG_FEATURE_PASSWD_WEAK_CHECK=y +CONFIG_SU=y +CONFIG_FEATURE_SU_SYSLOG=y +CONFIG_FEATURE_SU_CHECKS_SHELLS=y +CONFIG_FEATURE_SU_NULLOK_SECURE=y +# CONFIG_SULOGIN is not set +CONFIG_VLOCK=y + +# +# Linux Ext2 FS Progs +# +# CONFIG_CHATTR is not set +CONFIG_FSCK=y +# CONFIG_LSATTR is not set +# CONFIG_TUNE2FS is not set + +# +# Linux Module Utilities +# +# CONFIG_MODPROBE_SMALL is not set +CONFIG_DEPMOD=y +CONFIG_INSMOD=y +CONFIG_LSMOD=y +CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y +CONFIG_MODINFO=y +# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +CONFIG_MODPROBE=y +CONFIG_FEATURE_MODPROBE_BLACKLIST=y +CONFIG_RMMOD=y + +# +# Options common to multiple modutils +# +# CONFIG_FEATURE_2_4_MODULES is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set +# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set +# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set +# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set +# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set +CONFIG_FEATURE_CHECK_TAINTED_MODULE=y +CONFIG_FEATURE_MODUTILS_ALIAS=y +CONFIG_FEATURE_MODUTILS_BIN=y +CONFIG_FEATURE_MODUTILS_SYMBOLS=y +CONFIG_DEFAULT_MODULES_DIR="/lib/modules" +CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" + +# +# Linux System Utilities +# +CONFIG_ACPID=y +CONFIG_FEATURE_ACPID_COMPAT=y +CONFIG_BLKDISCARD=y +CONFIG_BLKID=y +CONFIG_FEATURE_BLKID_TYPE=y +CONFIG_BLOCKDEV=y +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +CONFIG_FATATTR=y +CONFIG_FBSET=y +CONFIG_FEATURE_FBSET_FANCY=y +CONFIG_FEATURE_FBSET_READMODE=y +CONFIG_FDFORMAT=y +CONFIG_FDISK=y +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +CONFIG_FEATURE_FDISK_WRITABLE=y +CONFIG_FEATURE_AIX_LABEL=y +CONFIG_FEATURE_SGI_LABEL=y +CONFIG_FEATURE_SUN_LABEL=y +CONFIG_FEATURE_OSF_LABEL=y +CONFIG_FEATURE_GPT_LABEL=y +CONFIG_FEATURE_FDISK_ADVANCED=y +CONFIG_FINDFS=y +CONFIG_FLOCK=y +CONFIG_FDFLUSH=y +# CONFIG_FREERAMDISK is not set +# CONFIG_FSCK_MINIX is not set +CONFIG_FSTRIM=y +CONFIG_GETOPT=y +CONFIG_FEATURE_GETOPT_LONG=y +CONFIG_HEXDUMP=y +CONFIG_FEATURE_HEXDUMP_REVERSE=y +CONFIG_HD=y +CONFIG_HWCLOCK=y +CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y +CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y +CONFIG_IPCRM=y +CONFIG_IPCS=y +CONFIG_LOSETUP=y +CONFIG_LSPCI=y +CONFIG_LSUSB=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +# CONFIG_MKE2FS is not set +# CONFIG_MKFS_EXT2 is not set +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_MKFS_REISER is not set +CONFIG_MKDOSFS=y +CONFIG_MKFS_VFAT=y +CONFIG_MKSWAP=y +CONFIG_FEATURE_MKSWAP_UUID=y +CONFIG_MORE=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +CONFIG_FEATURE_MOUNT_VERBOSE=y +CONFIG_FEATURE_MOUNT_HELPERS=y +CONFIG_FEATURE_MOUNT_LABEL=y +# CONFIG_FEATURE_MOUNT_NFS is not set +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set +CONFIG_NSENTER=y +CONFIG_FEATURE_NSENTER_LONG_OPTS=y +# CONFIG_PIVOT_ROOT is not set +CONFIG_RDATE=y +CONFIG_RDEV=y +CONFIG_READPROFILE=y +CONFIG_REV=y +# CONFIG_RTCWAKE is not set +# CONFIG_SCRIPT is not set +# CONFIG_SCRIPTREPLAY is not set +# CONFIG_SETARCH is not set +CONFIG_LINUX32=y +CONFIG_LINUX64=y +CONFIG_SWAPON=y +CONFIG_FEATURE_SWAPON_DISCARD=y +CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWAPOFF=y +CONFIG_SWITCH_ROOT=y +# CONFIG_UEVENT is not set +CONFIG_UMOUNT=y +CONFIG_FEATURE_UMOUNT_ALL=y +CONFIG_UNSHARE=y + +# +# Common options for mount/umount +# +CONFIG_FEATURE_MOUNT_LOOP=y +CONFIG_FEATURE_MOUNT_LOOP_CREATE=y +# CONFIG_FEATURE_MTAB_SUPPORT is not set +CONFIG_VOLUMEID=y + +# +# Filesystem/Volume identification +# +CONFIG_FEATURE_VOLUMEID_BCACHE=y +CONFIG_FEATURE_VOLUMEID_BTRFS=y +CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_EXFAT=y +CONFIG_FEATURE_VOLUMEID_EXT=y +CONFIG_FEATURE_VOLUMEID_F2FS=y +CONFIG_FEATURE_VOLUMEID_FAT=y +# CONFIG_FEATURE_VOLUMEID_HFS is not set +CONFIG_FEATURE_VOLUMEID_ISO9660=y +CONFIG_FEATURE_VOLUMEID_JFS=y +CONFIG_FEATURE_VOLUMEID_LINUXRAID=y +CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y +CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_NILFS=y +CONFIG_FEATURE_VOLUMEID_NTFS=y +CONFIG_FEATURE_VOLUMEID_OCFS2=y +CONFIG_FEATURE_VOLUMEID_REISERFS=y +# CONFIG_FEATURE_VOLUMEID_ROMFS is not set +CONFIG_FEATURE_VOLUMEID_SQUASHFS=y +# CONFIG_FEATURE_VOLUMEID_SYSV is not set +CONFIG_FEATURE_VOLUMEID_UBIFS=y +CONFIG_FEATURE_VOLUMEID_UDF=y +CONFIG_FEATURE_VOLUMEID_XFS=y + +# +# Miscellaneous Utilities +# +CONFIG_ADJTIMEX=y +CONFIG_BBCONFIG=y +CONFIG_FEATURE_COMPRESS_BBCONFIG=y +CONFIG_BEEP=y +CONFIG_FEATURE_BEEP_FREQ=440 +CONFIG_FEATURE_BEEP_LENGTH_MS=30 +# CONFIG_CHAT is not set +# CONFIG_FEATURE_CHAT_NOFAIL is not set +# CONFIG_FEATURE_CHAT_TTY_HIFI is not set +# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set +# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set +# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set +# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set +# CONFIG_FEATURE_CHAT_CLR_ABORT is not set +# CONFIG_CHRT is not set +CONFIG_CONSPY=y +CONFIG_CROND=y +CONFIG_FEATURE_CROND_D=y +CONFIG_FEATURE_CROND_CALL_SENDMAIL=y +CONFIG_FEATURE_CROND_DIR="/var/spool/cron" +CONFIG_CRONTAB=y +CONFIG_DC=y +CONFIG_FEATURE_DC_LIBM=y +# CONFIG_DEVFSD is not set +# CONFIG_DEVFSD_MODLOAD is not set +# CONFIG_DEVFSD_FG_NP is not set +# CONFIG_DEVFSD_VERBOSE is not set +# CONFIG_FEATURE_DEVFS is not set +# CONFIG_DEVMEM is not set +CONFIG_EJECT=y +CONFIG_FEATURE_EJECT_SCSI=y +CONFIG_FBSPLASH=y +# CONFIG_FLASH_ERASEALL is not set +# CONFIG_FLASH_LOCK is not set +# CONFIG_FLASH_UNLOCK is not set +# CONFIG_FLASHCP is not set +CONFIG_HDPARM=y +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set +CONFIG_INOTIFYD=y +CONFIG_IONICE=y +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_TRUNCATE=y +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_FEATURE_LESS_WINCH=y +CONFIG_FEATURE_LESS_ASK_TERMINAL=y +CONFIG_FEATURE_LESS_DASHCMD=y +CONFIG_FEATURE_LESS_LINENUMS=y +# CONFIG_MAKEDEVS is not set +# CONFIG_FEATURE_MAKEDEVS_LEAF is not set +# CONFIG_FEATURE_MAKEDEVS_TABLE is not set +# CONFIG_MAN is not set +CONFIG_MICROCOM=y +CONFIG_MOUNTPOINT=y +# CONFIG_MT is not set +CONFIG_NANDWRITE=y +CONFIG_NANDDUMP=y +CONFIG_RAIDAUTORUN=y +CONFIG_READAHEAD=y +CONFIG_RFKILL=y +# CONFIG_RUNLEVEL is not set +# CONFIG_RX is not set +CONFIG_SETSERIAL=y +CONFIG_SETSID=y +CONFIG_STRINGS=y +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +CONFIG_TIME=y +CONFIG_TIMEOUT=y +CONFIG_TTYSIZE=y +# CONFIG_UBIATTACH is not set +# CONFIG_UBIDETACH is not set +# CONFIG_UBIMKVOL is not set +# CONFIG_UBIRMVOL is not set +# CONFIG_UBIRSVOL is not set +# CONFIG_UBIUPDATEVOL is not set +# CONFIG_UBIRENAME is not set +CONFIG_VOLNAME=y +# CONFIG_WALL is not set +CONFIG_WATCHDOG=y + +# +# Networking Utilities +# +CONFIG_FEATURE_IPV6=y +CONFIG_FEATURE_UNIX_LOCAL=y +CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y +CONFIG_VERBOSE_RESOLUTION_ERRORS=y +CONFIG_ARP=y +CONFIG_ARPING=y +CONFIG_BRCTL=y +CONFIG_FEATURE_BRCTL_FANCY=y +CONFIG_FEATURE_BRCTL_SHOW=y +CONFIG_DNSD=y +CONFIG_ETHER_WAKE=y +CONFIG_FTPD=y +CONFIG_FEATURE_FTPD_WRITE=y +CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y +CONFIG_FEATURE_FTPD_AUTHENTICATION=y +CONFIG_FTPGET=y +CONFIG_FTPPUT=y +CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y +CONFIG_HOSTNAME=y +CONFIG_DNSDOMAINNAME=y +CONFIG_HTTPD=y +CONFIG_FEATURE_HTTPD_RANGES=y +CONFIG_FEATURE_HTTPD_SETUID=y +CONFIG_FEATURE_HTTPD_BASIC_AUTH=y +CONFIG_FEATURE_HTTPD_AUTH_MD5=y +CONFIG_FEATURE_HTTPD_CGI=y +CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y +CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y +CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y +CONFIG_FEATURE_HTTPD_ERROR_PAGES=y +CONFIG_FEATURE_HTTPD_PROXY=y +CONFIG_FEATURE_HTTPD_GZIP=y +CONFIG_IFCONFIG=y +CONFIG_FEATURE_IFCONFIG_STATUS=y +CONFIG_FEATURE_IFCONFIG_SLIP=y +CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y +CONFIG_FEATURE_IFCONFIG_HW=y +CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y +CONFIG_IFENSLAVE=y +# CONFIG_IFPLUGD is not set +CONFIG_IFUP=y +CONFIG_IFDOWN=y +CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" +CONFIG_FEATURE_IFUPDOWN_IP=y +CONFIG_FEATURE_IFUPDOWN_IPV4=y +CONFIG_FEATURE_IFUPDOWN_IPV6=y +# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set +CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y +CONFIG_INETD=y +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set +# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set +# CONFIG_FEATURE_INETD_RPC is not set +CONFIG_IP=y +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPNEIGH=y +CONFIG_FEATURE_IP_ADDRESS=y +CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_ROUTE=y +CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2" +CONFIG_FEATURE_IP_TUNNEL=y +CONFIG_FEATURE_IP_RULE=y +CONFIG_FEATURE_IP_NEIGH=y +CONFIG_FEATURE_IP_RARE_PROTOCOLS=y +CONFIG_IPCALC=y +CONFIG_FEATURE_IPCALC_FANCY=y +# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set +CONFIG_FAKEIDENTD=y +CONFIG_NAMEIF=y +CONFIG_FEATURE_NAMEIF_EXTENDED=y +CONFIG_NBDCLIENT=y +CONFIG_NC=y +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +CONFIG_NC_110_COMPAT=y +CONFIG_NETSTAT=y +CONFIG_FEATURE_NETSTAT_WIDE=y +CONFIG_FEATURE_NETSTAT_PRG=y +CONFIG_NSLOOKUP=y +CONFIG_NTPD=y +CONFIG_FEATURE_NTPD_SERVER=y +CONFIG_FEATURE_NTPD_CONF=y +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y +CONFIG_PSCAN=y +CONFIG_ROUTE=y +CONFIG_SLATTACH=y +# CONFIG_TCPSVD is not set +# CONFIG_UDPSVD is not set +CONFIG_TELNET=y +CONFIG_FEATURE_TELNET_TTYPE=y +CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_TELNETD=y +CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_FEATURE_TELNETD_INETD_WAIT=y +CONFIG_TFTP=y +CONFIG_TFTPD=y + +# +# Common options for tftp/tftpd +# +CONFIG_FEATURE_TFTP_GET=y +CONFIG_FEATURE_TFTP_PUT=y +CONFIG_FEATURE_TFTP_BLOCKSIZE=y +CONFIG_FEATURE_TFTP_PROGRESS_BAR=y +# CONFIG_TFTP_DEBUG is not set +CONFIG_TRACEROUTE=y +CONFIG_TRACEROUTE6=y +CONFIG_FEATURE_TRACEROUTE_VERBOSE=y +CONFIG_FEATURE_TRACEROUTE_USE_ICMP=y +CONFIG_TUNCTL=y +CONFIG_FEATURE_TUNCTL_UG=y +CONFIG_VCONFIG=y +CONFIG_WGET=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_TIMEOUT=y +CONFIG_FEATURE_WGET_OPENSSL=y +CONFIG_FEATURE_WGET_SSL_HELPER=y +CONFIG_WHOIS=y +# CONFIG_ZCIP is not set +CONFIG_UDHCPC6=y +CONFIG_UDHCPD=y +# CONFIG_DHCPRELAY is not set +CONFIG_DUMPLEASES=y +CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY=y +CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC=y +CONFIG_DHCPD_LEASES_FILE="/var/lib/udhcpd/udhcpd.leases" +CONFIG_UDHCPC=y +CONFIG_FEATURE_UDHCPC_ARPING=y +CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y +# CONFIG_FEATURE_UDHCP_PORT is not set +CONFIG_UDHCP_DEBUG=0 +CONFIG_FEATURE_UDHCP_RFC3397=y +CONFIG_FEATURE_UDHCP_8021Q=y +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" + +# +# Print Utilities +# +# CONFIG_LPD is not set +# CONFIG_LPR is not set +# CONFIG_LPQ is not set + +# +# Mail Utilities +# +CONFIG_MAKEMIME=y +# CONFIG_POPMAILDIR is not set +# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set +CONFIG_REFORMIME=y +CONFIG_FEATURE_REFORMIME_COMPAT=y +CONFIG_SENDMAIL=y +CONFIG_FEATURE_MIME_CHARSET="us-ascii" + +# +# Process Utilities +# +CONFIG_FREE=y +CONFIG_FUSER=y +CONFIG_IOSTAT=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y +CONFIG_LSOF=y +CONFIG_MPSTAT=y +CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PKILL=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y +CONFIG_PMAP=y +CONFIG_POWERTOP=y +CONFIG_PS=y +# CONFIG_FEATURE_PS_WIDE is not set +# CONFIG_FEATURE_PS_LONG is not set +CONFIG_FEATURE_PS_TIME=y +CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +CONFIG_PSTREE=y +CONFIG_PWDX=y +CONFIG_RENICE=y +CONFIG_SMEMCAP=y +CONFIG_BB_SYSCTL=y +CONFIG_TOP=y +CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y +CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y +CONFIG_FEATURE_TOP_SMP_CPU=y +# CONFIG_FEATURE_TOP_DECIMALS is not set +CONFIG_FEATURE_TOP_SMP_PROCESS=y +CONFIG_FEATURE_TOPMEM=y +CONFIG_UPTIME=y +# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set +CONFIG_WATCH=y +# CONFIG_FEATURE_SHOW_THREADS is not set + +# +# Runit Utilities +# +# CONFIG_CHPST is not set +# CONFIG_SETUIDGID is not set +# CONFIG_ENVUIDGID is not set +# CONFIG_ENVDIR is not set +# CONFIG_SOFTLIMIT is not set +# CONFIG_RUNSV is not set +# CONFIG_RUNSVDIR is not set +# CONFIG_FEATURE_RUNSVDIR_LOG is not set +# CONFIG_SV is not set +CONFIG_SV_DEFAULT_SERVICE_DIR="" +# CONFIG_SVC is not set +# CONFIG_SVLOGD is not set +# CONFIG_CHCON is not set +# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set +# CONFIG_GETENFORCE is not set +# CONFIG_GETSEBOOL is not set +# CONFIG_LOAD_POLICY is not set +# CONFIG_MATCHPATHCON is not set +# CONFIG_RUNCON is not set +# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set +# CONFIG_SELINUXENABLED is not set +# CONFIG_SESTATUS is not set +# CONFIG_SETENFORCE is not set +# CONFIG_SETFILES is not set +# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_RESTORECON is not set +# CONFIG_SETSEBOOL is not set + +# +# Shells +# +CONFIG_SH_IS_ASH=y +# CONFIG_SH_IS_HUSH is not set +# CONFIG_SH_IS_NONE is not set +# CONFIG_BASH_IS_ASH is not set +# CONFIG_BASH_IS_HUSH is not set +CONFIG_BASH_IS_NONE=y +CONFIG_ASH=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_INTERNAL_GLOB=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +CONFIG_ASH_BASH_COMPAT=y +CONFIG_ASH_IDLE_TIMEOUT=y +CONFIG_ASH_JOB_CONTROL=y +CONFIG_ASH_ALIAS=y +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_BUILTIN_ECHO=y +CONFIG_ASH_BUILTIN_PRINTF=y +CONFIG_ASH_BUILTIN_TEST=y +CONFIG_ASH_HELP=y +CONFIG_ASH_CMDCMD=y +CONFIG_ASH_MAIL=y +# CONFIG_CTTYHACK is not set +# CONFIG_HUSH is not set +# CONFIG_HUSH_BASH_COMPAT is not set +# CONFIG_HUSH_BRACE_EXPANSION is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_INTERACTIVE is not set +# CONFIG_HUSH_SAVEHISTORY is not set +# CONFIG_HUSH_JOB is not set +# CONFIG_HUSH_TICK is not set +# CONFIG_HUSH_IF is not set +# CONFIG_HUSH_LOOPS is not set +# CONFIG_HUSH_CASE is not set +# CONFIG_HUSH_FUNCTIONS is not set +# CONFIG_HUSH_LOCAL is not set +# CONFIG_HUSH_RANDOM_SUPPORT is not set +# CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_MODE_X is not set +# CONFIG_MSH is not set +CONFIG_FEATURE_SH_MATH=y +CONFIG_FEATURE_SH_MATH_64=y +CONFIG_FEATURE_SH_EXTRA_QUIET=y +# CONFIG_FEATURE_SH_STANDALONE is not set +# CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_FEATURE_SH_HISTFILESIZE=y + +# +# System Logging Utilities +# +CONFIG_KLOGD=y + +# +# klogd should not be used together with syslog to kernel printk buffer +# +CONFIG_FEATURE_KLOGD_KLOGCTL=y +CONFIG_LOGGER=y +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y +CONFIG_SYSLOGD=y +CONFIG_FEATURE_ROTATE_LOGFILE=y +CONFIG_FEATURE_REMOTE_LOG=y +CONFIG_FEATURE_SYSLOGD_DUP=y +CONFIG_FEATURE_SYSLOGD_CFG=y +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 +CONFIG_FEATURE_IPC_SYSLOG=y +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 +CONFIG_FEATURE_KMSG_SYSLOG=y diff --git a/aports/busybox/dad.if-up b/aports/busybox/dad.if-up new file mode 100644 index 00000000..e76bb60b --- /dev/null +++ b/aports/busybox/dad.if-up @@ -0,0 +1,8 @@ +#!/bin/sh + +# Block ifup until DAD completion +# Copyright (c) 2016 Kaarle Ritvanen + +while ip address show dev $IFACE | grep -q " tentative "; do + sleep 0.2 +done diff --git a/aports/busybox/location-for-cpio.patch b/aports/busybox/location-for-cpio.patch new file mode 100644 index 00000000..e7069f2b --- /dev/null +++ b/aports/busybox/location-for-cpio.patch @@ -0,0 +1,13 @@ +diff --git a/archival/cpio.c b/archival/cpio.c +index 540218cb2..369bf19a7 100644 +--- a/archival/cpio.c ++++ b/archival/cpio.c +@@ -43,7 +43,7 @@ + //config: help + //config: Passthrough mode. Rarely used. + +-//applet:IF_CPIO(APPLET(cpio, BB_DIR_BIN, BB_SUID_DROP)) ++//applet:IF_CPIO(APPLET(cpio, BB_DIR_USR_BIN, BB_SUID_DROP)) + //kbuild:lib-$(CONFIG_CPIO) += cpio.o + + //usage:#define cpio_trivial_usage diff --git a/aports/busybox/nologin.c b/aports/busybox/nologin.c new file mode 100644 index 00000000..e0a4c56c --- /dev/null +++ b/aports/busybox/nologin.c @@ -0,0 +1,38 @@ +/* vi: set sw=4 ts=4: */ +/* + * nologin implementation for busybox + * + * Licensed under GPLv2 or later, see file LICENSE in this source tree. + */ + +//config:config NOLOGIN +//config: bool "nologin" +//config: default n +//config: help +//config: nologin is a tool that is supposed to be the shell for user accounts +//config: that are not supposed to login. + +//applet:IF_NOLOGIN(APPLET(nologin, BB_DIR_SBIN, BB_SUID_DROP)) +//kbuild:lib-$(CONFIG_NOLOGIN) += nologin.o + +//usage:#define nologin_trivial_usage +//usage: "" +//usage:#define nologin_full_usage "\n\n" +//usage: "politely refuse a login\n" + +#include "libbb.h" +#include + +#define _NOLOGIN_TXT "/etc/nologin.txt" + +int nologin_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +int nologin_main(int argc UNUSED_PARAM, char **argv) +{ + int fd; + fd = open(_NOLOGIN_TXT, O_RDONLY); + if (bb_copyfd_eof(fd, STDOUT_FILENO) == -1) + bb_error_msg_and_die("this account is not available"); + close(fd); + return 1; +} + diff --git a/aports/ccache-cross-symlinks/APKBUILD b/aports/ccache-cross-symlinks/APKBUILD new file mode 100644 index 00000000..e30f9578 --- /dev/null +++ b/aports/ccache-cross-symlinks/APKBUILD @@ -0,0 +1,27 @@ +# Maintainer: Oliver Smith +# NOTE: This could probably be upstreamed to the official ccache aport. + +pkgname=ccache-cross-symlinks +pkgver=1 +pkgrel=2 +pkgdesc="Enable ccache for cross-compilers with symlinks" +url="https://ccache.samba.org/" +arch="noarch" +license="GPL3+" +depends="ccache" +makedepends="" +source="" +options="!check" + +package() { + local _archs="armhf aarch64" + local _bins="c++ cc cpp g++ gcc" + mkdir -p "$pkgdir/usr/lib/ccache/bin" + cd "$pkgdir/usr/lib/ccache/bin" + for _arch in $_archs; do + _hostspec="$(arch_to_hostspec $_arch)" + for _bin in $_bins; do + ln -v -s /usr/bin/ccache ${_hostspec}-${_bin} || return 1 + done + done +} diff --git a/aports/device-lg-mako/90-android-touch-dev.rules b/aports/device-lg-mako/90-android-touch-dev.rules new file mode 100644 index 00000000..d87a6544 --- /dev/null +++ b/aports/device-lg-mako/90-android-touch-dev.rules @@ -0,0 +1,5 @@ +# use 'weston-calibrator' to calibrate the touchscreen! +SUBSYSTEM=="input", ATTRS{name}=="touch_dev", \ +ENV{ID_INPUT}="1", ENV{ID_INPUT_TOUCHSCREEN}="1" \ +ENV{WL_CALIBRATION}="0.982113 -0.006129 1.983124 -0.002560 1.000800 -6.012451" + diff --git a/aports/device-lg-mako/APKBUILD b/aports/device-lg-mako/APKBUILD new file mode 100644 index 00000000..a29a5bc2 --- /dev/null +++ b/aports/device-lg-mako/APKBUILD @@ -0,0 +1,33 @@ +pkgname=device-lg-mako +pkgver=2 +pkgrel=2 +pkgdesc="Google Nexus 4" +url="https://github.com/postmarketOS" +arch="noarch" +license="FIXME" +depends="linux-lg-mako" +makedepends="" +install="" +subpackages="" +source="deviceinfo initfs-hook.sh 90-android-touch-dev.rules profile.sh" +options="!check" + +build() { + return 0 +} + +package() { + install -D -m644 "$srcdir"/deviceinfo \ + "$pkgdir"/etc/deviceinfo + install -D -m644 "$srcdir"/initfs-hook.sh \ + "$pkgdir"/etc/postmarketos-mkinitfs/hooks/00-${pkgname}.sh + install -D -m644 "$srcdir"/90-android-touch-dev.rules \ + "$pkgdir"/etc/udev/rules.d/90-android-touch-dev.rules + install -D -m644 "$srcdir"/profile.sh \ + "$pkgdir"/etc/profile.d/00-$pkgname.sh +} + +sha512sums="180b1cab6b0ed8c1448a1582dbb6081c81aa598bd923449293d8e41eb0dd245c92cea9b5bd30ce59009ce60801881952e9ac3a3ec6e971a894e24e22d42dee52 deviceinfo +8590967fa10388a890fdfafdb1070b9ab22dc89e06a3a8834806c772191e3b67de7b914b0d68e5ddf581cee715cb90f3f24abcb8762c415ff328c6da23e55d52 initfs-hook.sh +ee25f3d0377f027d108593eb7953b8db49d7f05a5c36a0c8ca7e7849d15e3c217bc1ac97d77a66e28d2db4b81c0f50b905639911276da40321d2b6cca7f797df 90-android-touch-dev.rules +c3d0182161c33047e0af4fd7cc557037e10380896a771446f055a13813e50e4e6c9d5992de7b275a8373a053cca02cb96bcb50c732709a2e9909f903b5fba249 profile.sh" diff --git a/aports/device-lg-mako/deviceinfo b/aports/device-lg-mako/deviceinfo new file mode 100644 index 00000000..e706f0c4 --- /dev/null +++ b/aports/device-lg-mako/deviceinfo @@ -0,0 +1,26 @@ +# This document format is a draft. +# You can source it in shell scripts. +# Use only double quotes. + +deviceinfo_format_version="0" +deviceinfo_name="Google Nexus 4" +deviceinfo_manufacturer="LG" +deviceinfo_date="" +deviceinfo_keyboard="false" +deviceinfo_nonfree="????" +deviceinfo_dtb="" +deviceinfo_modules="" +deviceinfo_modules_initfs="" +deviceinfo_external_disk="false" +deviceinfo_external_disk_install="false" +deviceinfo_flash_methods="fastboot" +deviceinfo_arch="armhf" + + +# You can for example extract these from an existing boot.img +deviceinfo_flash_offset_base="0" +deviceinfo_flash_offset_kernel="0x80208000" +deviceinfo_flash_offset_ramdisk="0x81800000" +deviceinfo_flash_offset_second="0x81100000" +deviceinfo_flash_offset_tags="0x80200100" +deviceinfo_flash_pagesize="2048" diff --git a/aports/device-lg-mako/initfs-hook.sh b/aports/device-lg-mako/initfs-hook.sh new file mode 100644 index 00000000..e7a2ccc8 --- /dev/null +++ b/aports/device-lg-mako/initfs-hook.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# set framebuffer resolution +cat /sys/class/graphics/fb0/modes > /sys/class/graphics/fb0/mode diff --git a/aports/device-lg-mako/profile.sh b/aports/device-lg-mako/profile.sh new file mode 100644 index 00000000..01385a01 --- /dev/null +++ b/aports/device-lg-mako/profile.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +# Dirty hacks, necessary to get a working demo... +if [ -e /etc/xdg/weston/weston.ini ]; then + rm /etc/xdg/weston/weston.ini + echo "WARNING: xwayland does not work yet on lg-mako (probably" + echo "because of bad framebuffer drivers)" + echo "=> Deleted /etc/xdg/weston/weston.ini as workaround" +fi +if [ -e /lib/udev/v4l_id ]; then + mv /lib/udev/v4l_id /lib/udev/v4l_id_ + echo "WARNING: v4l_id hangs with the current kernel." + echo "=> Moved it from /lib/udev/v4l_id to /lib/udev/v4l_id_" +fi + + +# Run a few weston demos, because the postmarketos-demos program depends +# on xwayland for now (Alpine's GTK3 isn't configured for Wayland +# support yet.) +if [ $(tty) = "/dev/tty1" ]; then + ( + sleep 3; + export XDG_RUNTIME_DIR=/tmp/0-runtime-dir + weston-smoke & + weston-simple-damage & + weston-editor & + weston-terminal --shell=/usr/bin/htop & + ) > /dev/null & +fi + diff --git a/aports/device-samsung-i9100/90-android.rules b/aports/device-samsung-i9100/90-android.rules new file mode 100644 index 00000000..e3f58bb4 --- /dev/null +++ b/aports/device-samsung-i9100/90-android.rules @@ -0,0 +1,8 @@ +# udev rules file +# All device names can be read from weston's logfile (/tmp/weston.log in postmarketOS) + +# Touchscreen (use 'weston-calibrator' to calibrate) +SUBSYSTEM=="input", ATTRS{name}=="sec_touchscreen", \ +ENV{ID_INPUT}="1", ENV{ID_INPUT_TOUCHSCREEN}="1" \ +ENV{WL_CALIBRATION}="0.954174 0.016888 -2.626083 -0.006031 1.011271 14.175903" + diff --git a/aports/device-samsung-i9100/ACTIVATE_DOWNLOAD_MODE.txt b/aports/device-samsung-i9100/ACTIVATE_DOWNLOAD_MODE.txt new file mode 100644 index 00000000..fa2cdf02 --- /dev/null +++ b/aports/device-samsung-i9100/ACTIVATE_DOWNLOAD_MODE.txt @@ -0,0 +1,3 @@ +- make sure, the device is powered off +- hold power + volume down +- let go of the power button, as soon as something appears diff --git a/aports/device-samsung-i9100/ACTIVATE_RECOVERY.txt b/aports/device-samsung-i9100/ACTIVATE_RECOVERY.txt new file mode 100644 index 00000000..5728b18e --- /dev/null +++ b/aports/device-samsung-i9100/ACTIVATE_RECOVERY.txt @@ -0,0 +1,3 @@ +- make sure, the device is really powered off +- hold volume up + home + power button +- when the samsung logo appears, only hold volume up + home diff --git a/aports/device-samsung-i9100/APKBUILD b/aports/device-samsung-i9100/APKBUILD new file mode 100644 index 00000000..b5c562bb --- /dev/null +++ b/aports/device-samsung-i9100/APKBUILD @@ -0,0 +1,27 @@ +pkgname=device-samsung-i9100 +pkgver=1 +pkgrel=2 +pkgdesc="Samsung Galaxy SII" +url="https://github.com/postmarketOS" +arch="noarch" +license="FIXME" +depends="linux-samsung-i9100" +makedepends="" +install="" +subpackages="" +source="deviceinfo 90-android.rules" +options="!check" + +build() { + return 0 +} + +package() { + install -D -m644 "$srcdir/deviceinfo" \ + "$pkgdir/etc/deviceinfo" + install -D -m644 "$srcdir"/90-android.rules \ + "$pkgdir"/etc/udev/rules.d/90-android.rules +} + +sha512sums="f2dfe6b848ab751eea2d3aad82c214985b7910865a2911a7be843e44c5479299cb66c768925b4452e8dbdd84efd6bd8b69eb2e2dc49cfa27fc8a3e189ddf68a5 deviceinfo +8aead706ddb118a44de7d049f07d10a27e727d17724058d132e4ec4fa73fed29c9ccfe03f02aca459c922ec0fbba24e171fe3c76e33f7c5462631e3dd5506e36 90-android.rules" diff --git a/aports/device-samsung-i9100/deviceinfo b/aports/device-samsung-i9100/deviceinfo new file mode 100644 index 00000000..ffbfe089 --- /dev/null +++ b/aports/device-samsung-i9100/deviceinfo @@ -0,0 +1,26 @@ +# This document format is a draft. +# You can source it in shell scripts. +# Use only double quotes. + +deviceinfo_format_version="0" +deviceinfo_name="Galaxy SII" +deviceinfo_manufacturer="Samsung" +deviceinfo_date="" +deviceinfo_keyboard="false" +deviceinfo_nonfree="????" +deviceinfo_dtb="" +deviceinfo_modules="" +deviceinfo_modules_initfs="" +deviceinfo_external_disk="true" +deviceinfo_external_disk_install="true" +deviceinfo_flash_methods="heimdall" +deviceinfo_arch="armhf" + + +# You can for example extract these from an existing boot.img +deviceinfo_flash_offset_base="" +deviceinfo_flash_offset_kernel="" +deviceinfo_flash_offset_ramdisk="" +deviceinfo_flash_offset_second="" +deviceinfo_flash_offset_tags="" +deviceinfo_flash_pagesize="" diff --git a/aports/device-samsung-i9100/initfs-hook.sh b/aports/device-samsung-i9100/initfs-hook.sh new file mode 100644 index 00000000..e7a2ccc8 --- /dev/null +++ b/aports/device-samsung-i9100/initfs-hook.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# set framebuffer resolution +cat /sys/class/graphics/fb0/modes > /sys/class/graphics/fb0/mode diff --git a/aports/gcc-armhf/001_all_default-ssp-strong.patch b/aports/gcc-armhf/001_all_default-ssp-strong.patch new file mode 100644 index 00000000..95949eb0 --- /dev/null +++ b/aports/gcc-armhf/001_all_default-ssp-strong.patch @@ -0,0 +1,215 @@ +# DP: Turn on -fstack-protector by default for C, C++, ObjC, ObjC++. +# DP: Build libgcc using -fno-stack-protector. + +--- + gcc/Makefile.in | 2 ++ + gcc/cp/lang-specs.h | 6 +++--- + gcc/doc/invoke.texi | 4 ++++ + gcc/gcc.c | 18 ++++++++++++++---- + gcc/objc/lang-specs.h | 10 +++++----- + gcc/objcp/lang-specs.h | 8 ++++---- + 6 files changed, 32 insertions(+), 16 deletions(-) + +Index: b/gcc/gcc.c +=================================================================== +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -858,6 +858,14 @@ proper position among the other output f + #define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G" + #endif + ++#ifndef SSP_DEFAULT_SPEC ++#ifdef TARGET_LIBC_PROVIDES_SSP ++#define SSP_DEFAULT_SPEC "%{!fno-stack-protector:%{!fstack-protector-all:%{!ffreestanding:%{!nostdlib:%{!fstack-protector:-fstack-protector-strong}}}}}" ++#else ++#define SSP_DEFAULT_SPEC "" ++#endif ++#endif ++ + #ifndef LINK_SSP_SPEC + #ifdef TARGET_LIBC_PROVIDES_SSP + #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ +@@ -1057,6 +1065,7 @@ static const char *cc1_spec = CC1_SPEC; + static const char *cc1plus_spec = CC1PLUS_SPEC; + static const char *link_gcc_c_sequence_spec = LINK_GCC_C_SEQUENCE_SPEC; + static const char *link_ssp_spec = LINK_SSP_SPEC; ++static const char *ssp_default_spec = SSP_DEFAULT_SPEC; + static const char *asm_spec = ASM_SPEC; + static const char *asm_final_spec = ASM_FINAL_SPEC; + static const char *link_spec = LINK_SPEC; +@@ -1112,7 +1121,7 @@ static const char *cpp_unique_options = + static const char *cpp_options = + "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\ + %{f*} %{g*:%{!g0:%{g*} %{!fno-working-directory:-fworking-directory}}} %{O*}\ +- %{undef} %{save-temps*:-fpch-preprocess}"; ++ %{undef} %{save-temps*:-fpch-preprocess} %(ssp_default)"; + + /* This contains cpp options which are not passed when the preprocessor + output will be used by another program. */ +@@ -1301,9 +1310,9 @@ static const struct compiler default_com + %{save-temps*|traditional-cpp|no-integrated-cpp:%(trad_capable_cpp) \ + %(cpp_options) -o %{save-temps*:%b.i} %{!save-temps*:%g.i} \n\ + cc1 -fpreprocessed %{save-temps*:%b.i} %{!save-temps*:%g.i} \ +- %(cc1_options)}\ ++ %(cc1_options) %(ssp_default)}\ + %{!save-temps*:%{!traditional-cpp:%{!no-integrated-cpp:\ +- cc1 %(cpp_unique_options) %(cc1_options)}}}\ ++ cc1 %(cpp_unique_options) %(cc1_options) %(ssp_default)}}}\ + %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 1}, + {"-", + "%{!E:%e-E or -x required when input is from standard input}\ +@@ -1328,7 +1337,7 @@ static const struct compiler default_com + %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0}, + {".i", "@cpp-output", 0, 0, 0}, + {"@cpp-output", +- "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, ++ "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %(ssp_default) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, + {".s", "@assembler", 0, 0, 0}, + {"@assembler", + "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0}, +@@ -1560,6 +1569,7 @@ static struct spec_list static_specs[] = + INIT_STATIC_SPEC ("cc1plus", &cc1plus_spec), + INIT_STATIC_SPEC ("link_gcc_c_sequence", &link_gcc_c_sequence_spec), + INIT_STATIC_SPEC ("link_ssp", &link_ssp_spec), ++ INIT_STATIC_SPEC ("ssp_default", &ssp_default_spec), + INIT_STATIC_SPEC ("endfile", &endfile_spec), + INIT_STATIC_SPEC ("link", &link_spec), + INIT_STATIC_SPEC ("lib", &lib_spec), +Index: b/gcc/cp/lang-specs.h +=================================================================== +--- a/gcc/cp/lang-specs.h ++++ b/gcc/cp/lang-specs.h +@@ -46,7 +46,7 @@ along with GCC; see the file COPYING3. + %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\ + cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\ + %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\ +- %(cc1_options) %2\ ++ %(cc1_options) %(ssp_default) %2\ + %{!fsyntax-only:-o %g.s \ + %{!fdump-ada-spec*:%{!o*:--output-pch=%i.gch}\ + %W{o*:--output-pch=%*}}%V}}}}", +@@ -58,11 +58,11 @@ along with GCC; see the file COPYING3. + %(cpp_options) %2 -o %{save-temps*:%b.ii} %{!save-temps*:%g.ii} \n}\ + cc1plus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.ii} %{!save-temps*:%g.ii}}\ + %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\ +- %(cc1_options) %2\ ++ %(cc1_options) %(ssp_default) %2\ + %{!fsyntax-only:%(invoke_as)}}}}", + CPLUSPLUS_CPP_SPEC, 0, 0}, + {".ii", "@c++-cpp-output", 0, 0, 0}, + {"@c++-cpp-output", + "%{!M:%{!MM:%{!E:\ +- cc1plus -fpreprocessed %i %(cc1_options) %2\ ++ cc1plus -fpreprocessed %i %(cc1_options) %(ssp_default) %2\ + %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, +Index: b/gcc/params.def +=================================================================== +--- a/gcc/params.def ++++ b/gcc/params.def +@@ -673,7 +673,7 @@ DEFPARAM (PARAM_INTEGER_SHARE_LIMIT, + DEFPARAM (PARAM_SSP_BUFFER_SIZE, + "ssp-buffer-size", + "The lower bound for a buffer to be considered for stack smashing protection.", +- 8, 1, 0) ++ 4, 1, 0) + + DEFPARAM (PARAM_MIN_SIZE_FOR_STACK_SHARING, + "min-size-for-stack-sharing", +Index: b/gcc/objc/lang-specs.h +=================================================================== +--- a/gcc/objc/lang-specs.h ++++ b/gcc/objc/lang-specs.h +@@ -29,9 +29,9 @@ along with GCC; see the file COPYING3. + %{traditional|traditional-cpp:\ + %eGNU Objective C no longer supports traditional compilation}\ + %{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\ +- cc1obj -fpreprocessed %{save-temps*:%b.mi} %{!save-temps*:%g.mi} %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}\ ++ cc1obj -fpreprocessed %{save-temps*:%b.mi} %{!save-temps*:%g.mi} %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}}\ + %{!save-temps*:%{!no-integrated-cpp:\ +- cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}}}\ ++ cc1obj %(cpp_unique_options) %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}}}\ + %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, + {"@objective-c-header", + "%{E|M|MM:cc1obj -E %{traditional|traditional-cpp:-traditional-cpp}\ +@@ -40,18 +40,18 @@ along with GCC; see the file COPYING3. + %{traditional|traditional-cpp:\ + %eGNU Objective C no longer supports traditional compilation}\ + %{save-temps*|no-integrated-cpp:cc1obj -E %(cpp_options) -o %{save-temps*:%b.mi} %{!save-temps*:%g.mi} \n\ +- cc1obj -fpreprocessed %b.mi %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ ++ cc1obj -fpreprocessed %b.mi %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}\ + -o %g.s %{!o*:--output-pch=%i.gch}\ + %W{o*:--output-pch=%*}%V}\ + %{!save-temps*:%{!no-integrated-cpp:\ +- cc1obj %(cpp_unique_options) %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ ++ cc1obj %(cpp_unique_options) %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}\ + -o %g.s %{!o*:--output-pch=%i.gch}\ + %W{o*:--output-pch=%*}%V}}}}}", 0, 0, 0}, + {".mi", "@objective-c-cpp-output", 0, 0, 0}, + {"@objective-c-cpp-output", +- "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ ++ "%{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}\ + %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, + {"@objc-cpp-output", + "%nobjc-cpp-output is deprecated; please use objective-c-cpp-output instead\n\ +- %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %{print-objc-runtime-info} %{gen-decls}\ ++ %{!M:%{!MM:%{!E:cc1obj -fpreprocessed %i %(cc1_options) %(ssp_default) %{print-objc-runtime-info} %{gen-decls}\ + %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, +Index: b/gcc/objcp/lang-specs.h +=================================================================== +--- a/gcc/objcp/lang-specs.h ++++ b/gcc/objcp/lang-specs.h +@@ -36,7 +36,7 @@ along with GCC; see the file COPYING3. + %(cpp_options) %2 -o %{save-temps*:%b.mii} %{!save-temps*:%g.mii} \n}\ + cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\ + %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\ +- %(cc1_options) %2\ ++ %(cc1_options) %(ssp_default) %2\ + -o %g.s %{!o*:--output-pch=%i.gch} %W{o*:--output-pch=%*}%V}}}", + CPLUSPLUS_CPP_SPEC, 0, 0}, + {"@objective-c++", +@@ -46,16 +46,16 @@ along with GCC; see the file COPYING3. + %(cpp_options) %2 -o %{save-temps*:%b.mii} %{!save-temps*:%g.mii} \n}\ + cc1objplus %{save-temps*|no-integrated-cpp:-fpreprocessed %{save-temps*:%b.mii} %{!save-temps*:%g.mii}}\ + %{!save-temps*:%{!no-integrated-cpp:%(cpp_unique_options)}}\ +- %(cc1_options) %2\ ++ %(cc1_options) %(ssp_default) %2\ + %{!fsyntax-only:%(invoke_as)}}}}", + CPLUSPLUS_CPP_SPEC, 0, 0}, + {".mii", "@objective-c++-cpp-output", 0, 0, 0}, + {"@objective-c++-cpp-output", + "%{!M:%{!MM:%{!E:\ +- cc1objplus -fpreprocessed %i %(cc1_options) %2\ ++ cc1objplus -fpreprocessed %i %(cc1_options) %(ssp_default) %2\ + %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, + {"@objc++-cpp-output", + "%nobjc++-cpp-output is deprecated; please use objective-c++-cpp-output instead\n\ + %{!M:%{!MM:%{!E:\ +- cc1objplus -fpreprocessed %i %(cc1_options) %2\ ++ cc1objplus -fpreprocessed %i %(cc1_options) %(ssp_default) %2\ + %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0}, +Index: b/gcc/doc/invoke.texi +=================================================================== +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -9247,6 +9247,9 @@ + The minimum size of variables taking part in stack slot sharing when not + optimizing. The default value is 32. + ++The Alpine Linux default is "4", to increase ++the number of functions protected by the stack protector. ++ + @item max-jump-thread-duplication-stmts + Maximum number of statements allowed in a block that needs to be + duplicated when threading jumps. +@@ -10185,6 +10188,11 @@ + Like @option{-fstack-protector} but includes additional functions to + be protected --- those that have local array definitions, or have + references to local frame addresses. ++ ++NOTE: In Alpine Linux, ++@option{-fstack-protector-strong} is enabled by default for C, ++C++, ObjC, ObjC++, if none of @option{-fno-stack-protector}, ++@option{-nostdlib}, nor @option{-ffreestanding} are found. + + @item -fstack-protector-explicit + @opindex fstack-protector-explicit diff --git a/aports/gcc-armhf/002_all_default-relro.patch b/aports/gcc-armhf/002_all_default-relro.patch new file mode 100644 index 00000000..c461017d --- /dev/null +++ b/aports/gcc-armhf/002_all_default-relro.patch @@ -0,0 +1,33 @@ +# Turn on -Wl,-z,relro,-z,now by default. + +--- + gcc/doc/invoke.texi | 3 +++ + gcc/gcc.c | 1 + + 2 files changed, 4 insertions(+), 0 deletions(-) + +Index: b/gcc/doc/invoke.texi +=================================================================== +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -11424,6 +11424,9 @@ For example, @option{-Wl,-Map,output.map + linker. When using the GNU linker, you can also get the same effect with + @option{-Wl,-Map=output.map}. + ++NOTE: In Alpine Linux, for LDFLAGS, the option ++@option{-Wl,-z,relro,now} is used. To disable, use @option{-Wl,-z,norelro}. ++ + @item -u @var{symbol} + @opindex u + Pretend the symbol @var{symbol} is undefined, to force linking of +Index: b/gcc/gcc.c +=================================================================== +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -890,6 +890,7 @@ proper position among the other output f + "%{flto|flto=*:% 0 + +--- + gcc/doc/invoke.texi | 6 ++++++ + gcc/c-family/c-cppbuiltin.c | 3 + + 2 files changed, 9 insertions(+), 0 deletions(-) + +Index: b/gcc/doc/invoke.texi +=================================================================== +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -7840,6 +7840,12 @@ also turns on the following optimization + Please note the warning under @option{-fgcse} about + invoking @option{-O2} on programs that use computed gotos. + ++NOTE: In Alpine Linux, @option{-D_FORTIFY_SOURCE=2} is ++set by default, and is activated when @option{-O} is set to 2 or higher. ++This enables additional compile-time and run-time checks for several libc ++functions. To disable, specify either @option{-U_FORTIFY_SOURCE} or ++@option{-D_FORTIFY_SOURCE=0}. ++ + @item -O3 + @opindex O3 + Optimize yet more. @option{-O3} turns on all optimizations specified +Index: b/gcc/c-family/c-cppbuiltin.c +=================================================================== +--- a/gcc/c-family/c-cppbuiltin.c ++++ b/gcc/c-family/c-cppbuiltin.c +@@ -1176,6 +1176,10 @@ c_cpp_builtins (cpp_reader *pfile) + builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0); + builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0); + ++ /* Fortify Source enabled by default for optimization levels > 0 */ ++ if (optimize) ++ builtin_define_with_int_value ("_FORTIFY_SOURCE", 2); ++ + /* Misc. */ + if (flag_gnu89_inline) + cpp_define (pfile, "__GNUC_GNU_INLINE__"); diff --git a/aports/gcc-armhf/005_all_default-as-needed.patch b/aports/gcc-armhf/005_all_default-as-needed.patch new file mode 100644 index 00000000..ee4f7962 --- /dev/null +++ b/aports/gcc-armhf/005_all_default-as-needed.patch @@ -0,0 +1,241 @@ +# DP: On linux targets pass --as-needed by default to the linker, but always +# DP: link the sanitizer libraries with --no-as-needed. + +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -568,8 +568,11 @@ proper position among the other output f + #ifdef LIBTSAN_EARLY_SPEC + #define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) +-#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION \ +- "} -ltsan %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ ++#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \ ++ " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " -ltsan " \ ++ " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ ++ " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ + STATIC_LIBTSAN_LIBS + #else + #define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS +--- a/gcc/config/gnu-user.h ++++ b/gcc/config/gnu-user.h +@@ -124,13 +124,13 @@ + #define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \ + "%{static-libasan:%{!shared:" \ + LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \ +- LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}" ++ LD_DYNAMIC_OPTION "}}%{!static-libasan:%{!fuse-ld=gold:--push-state} --no-as-needed -lasan %{fuse-ld=gold:--as-needed;:--pop-state}}" + #undef LIBTSAN_EARLY_SPEC + #define LIBTSAN_EARLY_SPEC "%{static-libtsan:%{!shared:" \ + LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \ +- LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}" ++ LD_DYNAMIC_OPTION "}}%{!static-libtsan:%{!fuse-ld=gold:--push-state} --no-as-needed -ltsan %{fuse-ld=gold:--as-needed;:--pop-state}}" + #undef LIBLSAN_EARLY_SPEC + #define LIBLSAN_EARLY_SPEC "%{static-liblsan:%{!shared:" \ + LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \ +- LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}" ++ LD_DYNAMIC_OPTION "}}%{!static-liblsan:%{!fuse-ld=gold:--push-state} --no-as-needed -llsan %{fuse-ld=gold:--as-needed;:--pop-state}}" + #endif +Index: b/gcc/config/aarch64/aarch64-linux.h +=================================================================== +--- a/gcc/config/aarch64/aarch64-linux.h ++++ b/gcc/config/aarch64/aarch64-linux.h +@@ -36,5 +36,6 @@ + + #define LINUX_TARGET_LINK_SPEC "%{h*} \ ++ --as-needed \ + %{static:-Bstatic} \ + %{shared:-shared} \ + %{symbolic:-Bsymbolic} \ +Index: b/gcc/config/ia64/linux.h +=================================================================== +--- a/gcc/config/ia64/linux.h ++++ b/gcc/config/ia64/linux.h +@@ -58,7 +58,7 @@ do { \ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "\ ++#define LINK_SPEC " --as-needed \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/gcc/config/sparc/linux.h +=================================================================== +--- a/gcc/config/sparc/linux.h ++++ b/gcc/config/sparc/linux.h +@@ -86,7 +86,7 @@ extern const char *host_detect_local_cpu + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ ++#define LINK_SPEC "-m elf32_sparc --as-needed %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ + %{!static: \ +Index: b/gcc/config/s390/linux.h +=================================================================== +--- a/gcc/config/s390/linux.h ++++ b/gcc/config/s390/linux.h +@@ -65,7 +65,7 @@ along with GCC; see the file COPYING3. + + #undef LINK_SPEC + #define LINK_SPEC \ +- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ ++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --as-needed \ + %{shared:-shared} \ + %{!shared: \ + %{static:-static} \ +Index: b/gcc/config/rs6000/linux64.h +=================================================================== +--- a/gcc/config/rs6000/linux64.h ++++ b/gcc/config/rs6000/linux64.h +@@ -466,12 +466,12 @@ extern int dot_symbols; + " -m elf64ppc") + #endif + +-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --as-needed %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}} \ + %(link_os_extra_spec32)" + +-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --as-needed %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}} \ + %(link_os_extra_spec64)" +Index: b/gcc/config/rs6000/sysv4.h +=================================================================== +--- a/gcc/config/rs6000/sysv4.h ++++ b/gcc/config/rs6000/sysv4.h +@@ -784,7 +784,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ + MUSL_DYNAMIC_LINKER) + +-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --as-needed %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" + +Index: b/gcc/config/i386/gnu-user64.h +=================================================================== +--- a/gcc/config/i386/gnu-user64.h ++++ b/gcc/config/i386/gnu-user64.h +@@ -57,5 +57,6 @@ see the files COPYING3 and COPYING.RUNTI + %{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \ + %{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \ ++ --as-needed \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/gcc/config/i386/gnu-user.h +=================================================================== +--- a/gcc/config/i386/gnu-user.h ++++ b/gcc/config/i386/gnu-user.h +@@ -74,7 +74,7 @@ along with GCC; see the file COPYING3. + { "link_emulation", GNU_USER_LINK_EMULATION },\ + { "dynamic_linker", GNU_USER_DYNAMIC_LINKER } + +-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \ ++#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --as-needed %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +Index: b/gcc/config/alpha/linux-elf.h +=================================================================== +--- a/gcc/config/alpha/linux-elf.h ++++ b/gcc/config/alpha/linux-elf.h +@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. + + #define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER + +-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ ++#define LINK_SPEC "-m elf64alpha --as-needed %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ + %{shared:-shared} \ + %{!shared: \ +Index: b/gcc/config/arm/linux-elf.h +=================================================================== +--- a/gcc/config/arm/linux-elf.h ++++ b/gcc/config/arm/linux-elf.h +@@ -73,5 +73,6 @@ + %{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \ + -X \ ++ --as-needed \ + %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ + SUBTARGET_EXTRA_LINK_SPEC + +Index: b/gcc/config/mips/gnu-user.h +=================================================================== +--- a/gcc/config/mips/gnu-user.h ++++ b/gcc/config/mips/gnu-user.h +@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. + #undef GNU_USER_TARGET_LINK_SPEC + #define GNU_USER_TARGET_LINK_SPEC "\ + %{G*} %{EB} %{EL} %{mips*} %{shared} \ ++ -as-needed \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +Index: b/libjava/Makefile.am +=================================================================== +--- a/libjava/Makefile.am ++++ b/libjava/Makefile.am +@@ -627,14 +631,14 @@ + rm .libs/libgcj_bc.so; \ + mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \ + $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \ +- -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \ ++ -o .libs/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \ + rm .libs/libgcj_bc.so.1; \ + $(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1 + + ## This rule creates the libgcj_bc library that is actually installed. + install/libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES) install/$(am__dirstamp) + $(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \ +- $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) ++ $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) -Wl,--no-as-needed -lgcj + + ## Note that property_files is defined in sources.am. + propertyo_files = $(patsubst classpath/resource/%,%,$(addsuffix .lo,$(property_files))) +@@ -762,7 +766,7 @@ + rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \ + mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \ + $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \ +- -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \ ++ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \ + rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \ + $(LN_S) libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \ + rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.la; + +Index: b/libjava/Makefile.in +=================================================================== +--- a/libjava/Makefile.in ++++ b/libjava/Makefile.in +@@ -10644,13 +10648,13 @@ + rm .libs/libgcj_bc.so; \ + mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \ + $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \ +- -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \ ++ -o .libs/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \ + rm .libs/libgcj_bc.so.1; \ + $(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1 + + install/libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES) install/$(am__dirstamp) + $(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \ +- $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) ++ $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) -Wl,--no-as-needed -lgcj + + $(propertyo_files): %.lo: classpath/resource/% + $(mkinstalldirs) `dirname $@`; \ +@@ -12494,7 +12498,7 @@ + @USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \ + @USE_LIBGCJ_BC_TRUE@ mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \ + @USE_LIBGCJ_BC_TRUE@ $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \ +-@USE_LIBGCJ_BC_TRUE@ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \ ++@USE_LIBGCJ_BC_TRUE@ -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \ + @USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \ + @USE_LIBGCJ_BC_TRUE@ $(LN_S) libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \ + @USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.la; + diff --git a/aports/gcc-armhf/011_all_default-warn-format-security.patch b/aports/gcc-armhf/011_all_default-warn-format-security.patch new file mode 100644 index 00000000..a58383a8 --- /dev/null +++ b/aports/gcc-armhf/011_all_default-warn-format-security.patch @@ -0,0 +1,43 @@ +Enable -Wformat and -Wformat-security by default. + + +--- a/gcc/c-family/c.opt ++++ b/gcc/c-family/c.opt +@@ -412,7 +412,7 @@ C ObjC C++ ObjC++ Var(warn_format_nonliteral) Warning LangEnabledBy(C ObjC C++ O + Warn about format strings that are not literals + + Wformat-security +-C ObjC C++ ObjC++ Var(warn_format_security) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0) ++C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wformat=, warn_format >= 2, 0) + Warn about possible security problems with format functions + + Wformat-y2k +@@ -424,7 +424,7 @@ C ObjC C++ ObjC++ Var(warn_format_zero_length) Warning LangEnabledBy(C ObjC C++ + Warn about zero-length formats + + Wformat= +-C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) ++C ObjC C++ ObjC++ Joined RejectNegative UInteger Var(warn_format) Init(1) Warning LangEnabledBy(C ObjC C++ ObjC++,Wall, 1, 0) + Warn about printf/scanf/strftime/strfmon format string anomalies + + Wignored-qualifiers +--- a/gcc/doc/gcc.info ++++ b/gcc/doc/gcc.info +@@ -3451,6 +3451,8 @@ compiler warns that an unrecognized option is present. + '-Wno-format-contains-nul', '-Wno-format-extra-args', and + '-Wno-format-zero-length'. '-Wformat' is enabled by '-Wall'. + ++ This option is enabled by default in Alpine Linux. ++ + '-Wno-format-contains-nul' + If '-Wformat' is specified, do not warn about format strings + that contain NUL bytes. +@@ -3496,6 +3498,8 @@ compiler warns that an unrecognized option is present. + future warnings may be added to '-Wformat-security' that are + not included in '-Wformat-nonliteral'.) + ++ This option is enabled by default in Alpine Linux. ++ + '-Wformat-y2k' + If '-Wformat' is specified, also warn about 'strftime' formats + that may yield only a two-digit year. diff --git a/aports/gcc-armhf/012_all_default-warn-trampolines.patch b/aports/gcc-armhf/012_all_default-warn-trampolines.patch new file mode 100644 index 00000000..9ab4378d --- /dev/null +++ b/aports/gcc-armhf/012_all_default-warn-trampolines.patch @@ -0,0 +1,25 @@ +Enable -Wtrampolines by default. + + +--- a/gcc/common.opt ++++ b/gcc/common.opt +@@ -648,7 +648,7 @@ Common Var(warn_system_headers) Warning + Do not suppress warnings from system headers + + Wtrampolines +-Common Var(warn_trampolines) Warning ++Common Var(warn_trampolines) Init(1) Warning + Warn whenever a trampoline is generated + + Wtype-limits +--- a/gcc/doc/gcc.info ++++ b/gcc/doc/gcc.info +@@ -4021,6 +4021,8 @@ compiler warns that an unrecognized option is present. + and thus requires the stack to be made executable in order for the + program to work properly. + ++ This warning is enabled by default in Gentoo. ++ + '-Wfloat-equal' + Warn if floating-point values are used in equality comparisons. + diff --git a/aports/gcc-armhf/020_all_msgfmt-libstdc++-link.patch b/aports/gcc-armhf/020_all_msgfmt-libstdc++-link.patch new file mode 100644 index 00000000..a70ea50a --- /dev/null +++ b/aports/gcc-armhf/020_all_msgfmt-libstdc++-link.patch @@ -0,0 +1,39 @@ +Ensure that msgfmt doesn't encounter problems during gcc bootstrapping. + +Solves error messages like the following: + +msgfmt: /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/./gcc/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libstdc++.so.6) + +The libgcc_s.so used during build doesn't satisfy the needs of the +libstdc++.so that msgfmt is linked against. On the other hand, msgfmt +is used as a stand-alone application here, and what library it uses +behind the scenes is of no concern to the gcc build process. +Therefore, simply invoking it "as usual", i.e. without any special +library path, will make it work as expected here. + +2011-09-19 Martin von Gagern + +References: +https://bugs.gentoo.org/372377 +https://bugs.gentoo.org/295480 + +--- gcc-4.1.2.orig/libstdc++-v3/po/Makefile.am ++++ gcc-4.1.2/libstdc++-v3/po/Makefile.am +@@ -39,6 +39,7 @@ MSGFMT = msgfmt + EXTRA_DIST = string_literals.cc POTFILES.in $(PACKAGE).pot $(LOCALE_IN) + + .po.mo: ++ env --unset=LD_LIBRARY_PATH \ + $(MSGFMT) -o $@ $< + + all-local: all-local-$(USE_NLS) +--- gcc-4.1.2.orig/libstdc++-v3/po/Makefile.in ++++ gcc-4.1.2/libstdc++-v3/po/Makefile.in +@@ -419,6 +419,7 @@ uninstall-am: uninstall-info-am + + + .po.mo: ++ env --unset=LD_LIBRARY_PATH \ + $(MSGFMT) -o $@ $< + + all-local: all-local-$(USE_NLS) diff --git a/aports/gcc-armhf/050_all_libiberty-asprintf.patch b/aports/gcc-armhf/050_all_libiberty-asprintf.patch new file mode 100644 index 00000000..bee0c4c2 --- /dev/null +++ b/aports/gcc-armhf/050_all_libiberty-asprintf.patch @@ -0,0 +1,18 @@ +2008-07-25 Magnus Granberg + + * include/libiberty.h (asprintf): Don't declare if defined as a macro + +--- a/include/libiberty.h ++++ b/include/libiberty.h +@@ -609,8 +609,11 @@ extern int pwait (int, int *, int); + /* Like sprintf but provides a pointer to malloc'd storage, which must + be freed by the caller. */ + ++/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */ ++#ifndef asprintf + extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2; + #endif ++#endif + + #if !HAVE_DECL_VASPRINTF + /* Like vsprintf but provides a pointer to malloc'd storage, which diff --git a/aports/gcc-armhf/051_all_libiberty-pic.patch b/aports/gcc-armhf/051_all_libiberty-pic.patch new file mode 100644 index 00000000..b6160a73 --- /dev/null +++ b/aports/gcc-armhf/051_all_libiberty-pic.patch @@ -0,0 +1,10 @@ +--- a/libiberty/Makefile.in ++++ b/libiberty/Makefile.in +@@ -246,6 +246,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) + $(AR) $(AR_FLAGS) $(TARGETLIB) \ + $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ + $(RANLIB) $(TARGETLIB); \ ++ cp $(TARGETLIB) ../ ; \ + cd ..; \ + else true; fi + diff --git a/aports/gcc-armhf/053_all_libitm-no-fortify-source.patch b/aports/gcc-armhf/053_all_libitm-no-fortify-source.patch new file mode 100644 index 00000000..5ab15afc --- /dev/null +++ b/aports/gcc-armhf/053_all_libitm-no-fortify-source.patch @@ -0,0 +1,27 @@ +https://bugs.gentoo.org/508852 +https://gcc.gnu.org/PR61164 + +2014-04-27 Magnus Granberg + + #508852 + * libitm/configure.tgt: Disable FORTIFY + +--- a/libitm/configure.tgt ++++ b/libitm/configure.tgt +@@ -43,6 +43,16 @@ if test "$gcc_cv_have_tls" = yes ; then + esac + fi + ++# FIXME: error: inlining failed in call to always_inline ++# ‘int vfprintf(FILE*, const char*, __va_list_tag*)’ ++# : function body can be overwritten at link time ++# Disable Fortify in libitm for now. #508852 ++case "${target}" in ++ *-*-linux*) ++ XCFLAGS="${XCFLAGS} -U_FORTIFY_SOURCE" ++ ;; ++esac ++ + # Map the target cpu to an ARCH sub-directory. At the same time, + # work out any special compilation flags as necessary. + case "${target_cpu}" in diff --git a/aports/gcc-armhf/067_all_gcc-poison-system-directories.patch b/aports/gcc-armhf/067_all_gcc-poison-system-directories.patch new file mode 100644 index 00000000..10367161 --- /dev/null +++ b/aports/gcc-armhf/067_all_gcc-poison-system-directories.patch @@ -0,0 +1,194 @@ +http://cgit.openembedded.org/openembedded-core/plain/meta/recipes-devtools/gcc/gcc-6.1/0010-gcc-poison-system-directories.patch + +From d76250323dad69212c958e4857a98d99ab51a39e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 Mar 2013 08:59:00 +0400 +Subject: [PATCH 10/46] gcc: poison-system-directories + +Signed-off-by: Khem Raj + +Upstream-Status: Inappropriate [distribution: codesourcery] +--- + gcc/common.opt | 4 ++++ + gcc/config.in | 6 ++++++ + gcc/configure | 16 ++++++++++++++++ + gcc/configure.ac | 10 ++++++++++ + gcc/doc/invoke.texi | 9 +++++++++ + gcc/gcc.c | 2 ++ + gcc/incpath.c | 19 +++++++++++++++++++ + 7 files changed, 66 insertions(+) + +diff --git a/gcc/common.opt b/gcc/common.opt +index 67048db..733185c 100644 +--- a/gcc/common.opt ++++ b/gcc/common.opt +@@ -659,6 +659,10 @@ Wreturn-local-addr + Common Var(warn_return_local_addr) Init(1) Warning + Warn about returning a pointer/reference to a local or temporary variable. + ++Wpoison-system-directories ++Common Var(flag_poison_system_directories) Init(1) Warning ++Warn for -I and -L options using system directories if cross compiling ++ + Wshadow + Common Var(warn_shadow) Warning + Warn when one local variable shadows another. +diff --git a/gcc/config.in b/gcc/config.in +index 115cb61..105b30f 100644 +--- a/gcc/config.in ++++ b/gcc/config.in +@@ -187,6 +187,12 @@ + #endif + + ++/* Define to warn for use of native system header directories */ ++#ifndef USED_FOR_TARGET ++#undef ENABLE_POISON_SYSTEM_DIRECTORIES ++#endif ++ ++ + /* Define if you want all operations on RTL (the basic data structure of the + optimizer and back end) to be checked for dynamic type safety at runtime. + This is quite expensive. */ +diff --git a/gcc/configure b/gcc/configure +index 1c6e340..8f83152 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -942,6 +942,7 @@ with_system_zlib + enable_maintainer_mode + enable_link_mutex + enable_version_specific_runtime_libs ++enable_poison_system_directories + enable_plugin + enable_host_shared + enable_libquadmath_support +@@ -1681,6 +1682,8 @@ Optional Features: + --enable-version-specific-runtime-libs + specify that runtime libraries should be installed + in a compiler-specific directory ++ --enable-poison-system-directories ++ warn for use of native system header directories + --enable-plugin enable plugin support + --enable-host-shared build host code as shared libraries + --disable-libquadmath-support +@@ -28908,6 +28911,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : + fi + + ++# Check whether --enable-poison-system-directories was given. ++if test "${enable_poison_system_directories+set}" = set; then : ++ enableval=$enable_poison_system_directories; ++else ++ enable_poison_system_directories=no ++fi ++ ++if test "x${enable_poison_system_directories}" = "xyes"; then ++ ++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h ++ ++fi ++ + # Substitute configuration variables + + +diff --git a/gcc/configure.ac b/gcc/configure.ac +index 6c1dcd9..0fccaef 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -5861,6 +5861,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs, + [specify that runtime libraries should be + installed in a compiler-specific directory])]) + ++AC_ARG_ENABLE([poison-system-directories], ++ AS_HELP_STRING([--enable-poison-system-directories], ++ [warn for use of native system header directories]),, ++ [enable_poison_system_directories=no]) ++if test "x${enable_poison_system_directories}" = "xyes"; then ++ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], ++ [1], ++ [Define to warn for use of native system header directories]) ++fi ++ + # Substitute configuration variables + AC_SUBST(subdirs) + AC_SUBST(srcdir) +diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi +index 821f8fd..8bb49e7 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -284,6 +284,7 @@ Objective-C and Objective-C++ Dialects}. + -Wparentheses -Wno-pedantic-ms-format @gol + -Wplacement-new -Wplacement-new=@var{n} @gol + -Wpointer-arith -Wno-pointer-to-int-cast @gol ++-Wno-poison-system-directories @gol + -Wno-pragmas -Wredundant-decls -Wno-return-local-addr @gol + -Wreturn-type -Wsequence-point -Wshadow -Wno-shadow-ivar @gol + -Wshift-overflow -Wshift-overflow=@var{n} @gol +@@ -4723,6 +4724,14 @@ made up of data only and thus requires no special treatment. But, for + most targets, it is made up of code and thus requires the stack to be + made executable in order for the program to work properly. + ++@item -Wno-poison-system-directories ++@opindex Wno-poison-system-directories ++Do not warn for @option{-I} or @option{-L} options using system ++directories such as @file{/usr/include} when cross compiling. This ++option is intended for use in chroot environments when such ++directories contain the correct headers and libraries for the target ++system rather than the host. ++ + @item -Wfloat-equal + @opindex Wfloat-equal + @opindex Wno-float-equal +diff --git a/gcc/gcc.c b/gcc/gcc.c +index 1af5920..4cfef7f 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -1017,6 +1017,8 @@ proper position among the other output files. */ + "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ + "%X %{o*} %{e*} %{N} %{n} %{r}\ + %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} \ ++ %{Wno-poison-system-directories:--no-poison-system-directories} \ ++ %{Werror=poison-system-directories:--error-poison-system-directories} \ + %{static:} %{L*} %(mfwrap) %(link_libgcc) " \ + VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o " CHKP_SPEC " \ + %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ +diff --git a/gcc/incpath.c b/gcc/incpath.c +index ea40f4a..856da41 100644 +--- a/gcc/incpath.c ++++ b/gcc/incpath.c +@@ -26,6 +26,7 @@ + #include "intl.h" + #include "incpath.h" + #include "cppdefault.h" ++#include "diagnostic-core.h" + + /* Microsoft Windows does not natively support inodes. + VMS has non-numeric inodes. */ +@@ -381,6 +382,24 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) + } + fprintf (stderr, _("End of search list.\n")); + } ++ ++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES ++ if (flag_poison_system_directories) ++ { ++ struct cpp_dir *p; ++ ++ for (p = heads[QUOTE]; p; p = p->next) ++ { ++ if ((!strncmp (p->name, "/usr/include", 12)) ++ || (!strncmp (p->name, "/usr/local/include", 18)) ++ || (!strncmp (p->name, "/usr/X11R6/include", 18))) ++ warning (OPT_Wpoison_system_directories, ++ "include location \"%s\" is unsafe for " ++ "cross-compilation", ++ p->name); ++ } ++ } ++#endif + } + + /* Use given -I paths for #include "..." but not #include <...>, and +-- +2.8.2 + diff --git a/aports/gcc-armhf/090_all_pr55930-dependency-tracking.patch b/aports/gcc-armhf/090_all_pr55930-dependency-tracking.patch new file mode 100644 index 00000000..a8743e08 --- /dev/null +++ b/aports/gcc-armhf/090_all_pr55930-dependency-tracking.patch @@ -0,0 +1,18 @@ +libatomic build failure if configured with --disable-dependency-tracking +load_n.c:115:1: fatal error: opening dependency file .deps/load_1_.lo.Ppo: No such file or directory + +https://bugs.gentoo.org/463463 +http://gcc.gnu.org/PR55930 + +--- a/libatomic/Makefile.in ++++ b/libatomic/Makefile.in +@@ -298,7 +298,8 @@ PAT_N = $(word 2,$(PAT_SPLIT)) + PAT_S = $(word 3,$(PAT_SPLIT)) + IFUNC_DEF = -DIFUNC_ALT=$(PAT_S) + IFUNC_OPT = $(word $(PAT_S),$(IFUNC_OPTIONS)) +-M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo ++@AMDEP_TRUE@M_DEPS = -MT $@ -MD -MP -MF $(DEPDIR)/$(@F).Ppo ++@AMDEP_FALSE@M_DEPS = + M_SIZE = -DN=$(PAT_N) + M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT)) + M_FILE = $(PAT_BASE)_n.c diff --git a/aports/gcc-armhf/201-cilkrts.patch b/aports/gcc-armhf/201-cilkrts.patch new file mode 100644 index 00000000..4aac10d6 --- /dev/null +++ b/aports/gcc-armhf/201-cilkrts.patch @@ -0,0 +1,59 @@ +From 594e3c1ab576daddeb86015efc8b1677020b1878 Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Sat, 24 Oct 2015 20:39:30 +0000 +Subject: [PATCH 1/6] cilkrts + +--- + libcilkrts/runtime/os-unix.c | 22 +++++++--------------- + 1 file changed, 7 insertions(+), 15 deletions(-) + +diff --git a/libcilkrts/runtime/os-unix.c b/libcilkrts/runtime/os-unix.c +index cb582dd..e43d7d5 100644 +--- a/libcilkrts/runtime/os-unix.c ++++ b/libcilkrts/runtime/os-unix.c +@@ -51,6 +51,7 @@ + #if defined __linux__ + # include + # include ++# include + #elif defined __APPLE__ + # include + // Uses sysconf(_SC_NPROCESSORS_ONLN) in verbose output +@@ -400,28 +401,19 @@ COMMON_SYSDEP void __cilkrts_sleep(void) + + COMMON_SYSDEP void __cilkrts_yield(void) + { +-#if __APPLE__ || __FreeBSD__ || __VXWORKS__ +- // On MacOS, call sched_yield to yield quantum. I'm not sure why we +- // don't do this on Linux also. +- sched_yield(); +-#elif defined(__DragonFly__) +- // On DragonFly BSD, call sched_yield to yield quantum. +- sched_yield(); +-#elif defined(__MIC__) ++#if defined(__MIC__) + // On MIC, pthread_yield() really trashes things. Arch's measurements + // showed that calling _mm_delay_32() (or doing nothing) was a better + // option. Delaying 1024 clock cycles is a reasonable compromise between + // giving up the processor and latency starting up when work becomes + // available + _mm_delay_32(1024); +-#elif defined(__ANDROID__) || (defined(__sun__) && defined(__svr4__)) +- // On Android and Solaris, call sched_yield to yield quantum. I'm not +- // sure why we don't do this on Linux also. +- sched_yield(); +-#else +- // On Linux, call pthread_yield (which in turn will call sched_yield) +- // to yield quantum. ++#elif defined(__sun__) && !defined(__svr4__) ++ // On old SunOS call pthread_yield to yield a quantum. + pthread_yield(); ++#else ++ // On other platforms call sched_yield to yield a quantum. ++ sched_yield(); + #endif + } + +-- +2.8.1 + diff --git a/aports/gcc-armhf/202-posix_memalign.patch b/aports/gcc-armhf/202-posix_memalign.patch new file mode 100644 index 00000000..20185750 --- /dev/null +++ b/aports/gcc-armhf/202-posix_memalign.patch @@ -0,0 +1,42 @@ +From bab47fac06af5d891caaccac99f1dc1e75bdc219 Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Sat, 1 Aug 2015 23:24:07 +0000 +Subject: [PATCH 2/6] posix_memalign + +--- + gcc/config/i386/pmm_malloc.h | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h +index a1f98d3..4f6b2dc 100644 +--- a/gcc/config/i386/pmm_malloc.h ++++ b/gcc/config/i386/pmm_malloc.h +@@ -27,12 +27,13 @@ + #include + + /* We can't depend on since the prototype of posix_memalign +- may not be visible. */ ++ may not be visible and we can't pollute the namespace either. */ + #ifndef __cplusplus +-extern int posix_memalign (void **, size_t, size_t); ++extern int _mm_posix_memalign (void **, size_t, size_t) + #else +-extern "C" int posix_memalign (void **, size_t, size_t) throw (); ++extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () + #endif ++__asm__("posix_memalign"); + + static __inline void * + _mm_malloc (size_t size, size_t alignment) +@@ -42,7 +43,7 @@ _mm_malloc (size_t size, size_t alignment) + return malloc (size); + if (alignment == 2 || (sizeof (void *) == 8 && alignment == 4)) + alignment = sizeof (void *); +- if (posix_memalign (&ptr, alignment, size) == 0) ++ if (_mm_posix_memalign (&ptr, alignment, size) == 0) + return ptr; + else + return NULL; +-- +2.8.1 + diff --git a/aports/gcc-armhf/203-libgcc_s.patch b/aports/gcc-armhf/203-libgcc_s.patch new file mode 100644 index 00000000..c74351c7 --- /dev/null +++ b/aports/gcc-armhf/203-libgcc_s.patch @@ -0,0 +1,56 @@ +From 9e3eab51e518018d9d99b3123598b1e2322a6af3 Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Sat, 24 Oct 2015 20:09:53 +0000 +Subject: [PATCH 3/6] libgcc_s + +--- + gcc/config/i386/i386.c | 4 ++-- + libgcc/config/i386/cpuinfo.c | 6 +++--- + libgcc/config/i386/t-linux | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c +index 3d044e8..82523e1 100644 +--- a/gcc/config/i386/i386.c ++++ b/gcc/config/i386/i386.c +@@ -40269,10 +40269,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, + { + case IX86_BUILTIN_CPU_INIT: + { +- /* Make it call __cpu_indicator_init in libgcc. */ ++ /* Make it call __cpu_indicator_init_local in libgcc.a. */ + tree call_expr, fndecl, type; + type = build_function_type_list (integer_type_node, NULL_TREE); +- fndecl = build_fn_decl ("__cpu_indicator_init", type); ++ fndecl = build_fn_decl ("__cpu_indicator_init_local", type); + call_expr = build_call_expr (fndecl, 0); + return expand_expr (call_expr, target, mode, EXPAND_NORMAL); + } +diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c +index 8c2248d..6c82f15 100644 +--- a/libgcc/config/i386/cpuinfo.c ++++ b/libgcc/config/i386/cpuinfo.c +@@ -485,7 +485,7 @@ __cpu_indicator_init (void) + return 0; + } + +-#if defined SHARED && defined USE_ELF_SYMVER +-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); +-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); ++#ifndef SHARED ++int __cpu_indicator_init_local (void) ++ __attribute__ ((weak, alias ("__cpu_indicator_init"))); + #endif +diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux +index 11bb46e..4f47f7b 100644 +--- a/libgcc/config/i386/t-linux ++++ b/libgcc/config/i386/t-linux +@@ -3,4 +3,4 @@ + # t-slibgcc-elf-ver and t-linux + SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver + +-HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER ++HOST_LIBGCC2_CFLAGS += -mlong-double-80 +-- +2.8.1 + diff --git a/aports/gcc-armhf/204-linux_libc_has_function.patch b/aports/gcc-armhf/204-linux_libc_has_function.patch new file mode 100644 index 00000000..2dcedc3a --- /dev/null +++ b/aports/gcc-armhf/204-linux_libc_has_function.patch @@ -0,0 +1,25 @@ +From edec78452d693fb524daa9a6efd45c850b27b25c Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Fri, 6 Nov 2015 23:59:20 +0000 +Subject: [PATCH 4/6] linux_libc_has_function + +--- + gcc/config/linux.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/config/linux.c b/gcc/config/linux.c +index 250296b..16c3768 100644 +--- a/gcc/config/linux.c ++++ b/gcc/config/linux.c +@@ -26,7 +26,7 @@ along with GCC; see the file COPYING3. If not see + bool + linux_libc_has_function (enum function_class fn_class) + { +- if (OPTION_GLIBC) ++ if (OPTION_GLIBC || OPTION_MUSL) + return true; + if (OPTION_BIONIC) + if (fn_class == function_c94 +-- +2.8.1 + diff --git a/aports/gcc-armhf/205-nopie.patch b/aports/gcc-armhf/205-nopie.patch new file mode 100644 index 00000000..e3da94d1 --- /dev/null +++ b/aports/gcc-armhf/205-nopie.patch @@ -0,0 +1,75 @@ +From b6015aca9c9cc83739fd0ed637a835119b2c4e34 Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy +Date: Sat, 7 Nov 2015 02:08:05 +0000 +Subject: [PATCH 5/6] nopie + +--- + gcc/configure | 27 +++++++++++++++++++++++++++ + gcc/configure.ac | 13 +++++++++++++ + 2 files changed, 40 insertions(+) + +diff --git a/gcc/configure b/gcc/configure +index 1c6e340..7e8b5d6 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -29390,6 +29390,33 @@ fi + $as_echo "$gcc_cv_no_pie" >&6; } + if test "$gcc_cv_no_pie" = "yes"; then + NO_PIE_FLAG="-no-pie" ++else ++ # Check if -nopie works. ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -nopie option" >&5 ++$as_echo_n "checking for -nopie option... " >&6; } ++if test "${gcc_cv_nopie+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ saved_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -nopie" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++int main(void) {return 0;} ++_ACEOF ++if ac_fn_cxx_try_link "$LINENO"; then : ++ gcc_cv_nopie=yes ++else ++ gcc_cv_nopie=no ++fi ++rm -f core conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++ LDFLAGS="$saved_LDFLAGS" ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_nopie" >&5 ++$as_echo "$gcc_cv_nopie" >&6; } ++ if test "$gcc_cv_nopie" = "yes"; then ++ NO_PIE_FLAG="-nopie" ++ fi + fi + + +diff --git a/gcc/configure.ac b/gcc/configure.ac +index 6c1dcd9..0ca7647 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -6098,6 +6098,19 @@ AC_CACHE_CHECK([for -no-pie option], + LDFLAGS="$saved_LDFLAGS"]) + if test "$gcc_cv_no_pie" = "yes"; then + NO_PIE_FLAG="-no-pie" ++else ++ # Check if -nopie works. ++ AC_CACHE_CHECK([for -nopie option], ++ [gcc_cv_nopie], ++ [saved_LDFLAGS="$LDFLAGS" ++ LDFLAGS="$LDFLAGS -nopie" ++ AC_LINK_IFELSE([int main(void) {return 0;}], ++ [gcc_cv_nopie=yes], ++ [gcc_cv_nopie=no]) ++ LDFLAGS="$saved_LDFLAGS"]) ++ if test "$gcc_cv_nopie" = "yes"; then ++ NO_PIE_FLAG="-nopie" ++ fi + fi + AC_SUBST([NO_PIE_FLAG]) + +-- +2.8.1 + diff --git a/aports/gcc-armhf/207-static-pie.patch b/aports/gcc-armhf/207-static-pie.patch new file mode 100644 index 00000000..9355c584 --- /dev/null +++ b/aports/gcc-armhf/207-static-pie.patch @@ -0,0 +1,40 @@ +diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h +index b0bf40a..d4b56fe 100644 +--- a/gcc/config/gnu-user.h ++++ b/gcc/config/gnu-user.h +@@ -51,10 +51,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + #if defined HAVE_LD_PIE + #define GNU_USER_TARGET_STARTFILE_SPEC \ + "%{!shared: %{pg|p|profile:gcrt1.o%s;: \ +- %{" PIE_SPEC ":Scrt1.o%s} %{" NO_PIE_SPEC ":crt1.o%s}}} \ +- crti.o%s %{static:crtbeginT.o%s;: %{shared:crtbeginS.o%s} \ ++ %{" PIE_SPEC ":%{static:rcrt1.o%s;:Scrt1.o%s}} %{" NO_PIE_SPEC ":crt1.o%s}}} \ ++ crti.o%s %{shared:crtbeginS.o%s;: \ + %{" PIE_SPEC ":crtbeginS.o%s} \ +- %{" NO_PIE_SPEC ":crtbegin.o%s}} \ ++ %{" NO_PIE_SPEC ":%{static:crtbeginT.o%s;:crtbegin.o%s}}} \ + %{fvtable-verify=none:%s; \ + fvtable-verify=preinit:vtv_start_preinit.o%s; \ + fvtable-verify=std:vtv_start.o%s} \ +diff --git a/gcc/gcc.c b/gcc/gcc.c +index 0208d61..731564e 100644 +--- a/gcc/gcc.c ++++ b/gcc/gcc.c +@@ -870,7 +870,7 @@ proper position among the other output files. */ + #endif + + #ifdef ENABLE_DEFAULT_PIE +-#define NO_PIE_SPEC "no-pie|static" ++#define NO_PIE_SPEC "no-pie" + #define PIE_SPEC NO_PIE_SPEC "|r|shared:;" + #define NO_FPIE1_SPEC "fno-pie" + #define FPIE1_SPEC NO_FPIE1_SPEC ":;" +@@ -916,7 +916,7 @@ proper position among the other output files. */ + #ifndef LINK_PIE_SPEC + #ifdef HAVE_LD_PIE + #ifndef LD_PIE_SPEC +-#define LD_PIE_SPEC "-pie" ++#define LD_PIE_SPEC "-pie %{static:--no-dynamic-linker -Bsymbolic}" + #endif + #else + #define LD_PIE_SPEC "" diff --git a/aports/gcc-armhf/300-main-gcc-add-musl-s390x-dynamic-linker.patch b/aports/gcc-armhf/300-main-gcc-add-musl-s390x-dynamic-linker.patch new file mode 100644 index 00000000..24195787 --- /dev/null +++ b/aports/gcc-armhf/300-main-gcc-add-musl-s390x-dynamic-linker.patch @@ -0,0 +1,32 @@ +From be841c16dd544553c67faac79bd4cc3cd10a1dc0 Mon Sep 17 00:00:00 2001 +From: "Tuan M. Hoang" +Date: Mon, 21 Nov 2016 01:42:16 +0700 +Subject: [PATCH] main/gcc: add musl s390x dynamic linker + +--- + gcc/config/s390/linux.h | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h +index 1e3ed35..a244214 100644 +--- a/gcc/config/s390/linux.h ++++ b/gcc/config/s390/linux.h +@@ -63,6 +63,15 @@ along with GCC; see the file COPYING3. If not see + #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" + #define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1" + ++#undef MUSL_DYNAMIC_LINKER ++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-s390x.so.1" ++#undef MUSL_DYNAMIC_LINKER32 ++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390x.so.1" ++#undef MUSL_DYNAMIC_LINKER64 ++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1" ++#undef MUSL_DYNAMIC_LINKERX32 ++#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-s390x.so.1" ++ + #undef LINK_SPEC + #define LINK_SPEC \ + "%{m31:-m elf_s390}%{m64:-m elf64_s390} --as-needed \ +-- +2.10.2 + diff --git a/aports/gcc-armhf/310-build-gcj-s390x.patch b/aports/gcc-armhf/310-build-gcj-s390x.patch new file mode 100644 index 00000000..1e522ee1 --- /dev/null +++ b/aports/gcc-armhf/310-build-gcj-s390x.patch @@ -0,0 +1,28 @@ +From 697a7ba791fce2ffab2ed723d909a89684019e3d Mon Sep 17 00:00:00 2001 +From: "Tuan M. Hoang" +Date: Sun, 19 Feb 2017 17:03:33 +0000 +Subject: [PATCH] main/gcc : when building gcc-java on s390x, libgcj.so + complains about undefined reference to __data_start. Using + SEARCH_FOR_DATA_START instead solved it. Credit to Andrew Haley at RedHat. + +--- + boehm-gc/include/private/gcconfig.h | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/boehm-gc/include/private/gcconfig.h b/boehm-gc/include/private/gcconfig.h +index 4ca6a80..a15fff6 100644 +--- a/boehm-gc/include/private/gcconfig.h ++++ b/boehm-gc/include/private/gcconfig.h +@@ -1837,8 +1837,7 @@ + # define OS_TYPE "LINUX" + # define LINUX_STACKBOTTOM + # define DYNAMIC_LOADING +- extern int __data_start[]; +-# define DATASTART ((ptr_t)(__data_start)) ++# define SEARCH_FOR_DATA_START + extern int _end[]; + # define DATAEND (_end) + # define CACHE_LINE_SIZE 256 +-- +2.11.1 + diff --git a/aports/gcc-armhf/320-libffi-gnulinux.patch b/aports/gcc-armhf/320-libffi-gnulinux.patch new file mode 100644 index 00000000..b3b4fc93 --- /dev/null +++ b/aports/gcc-armhf/320-libffi-gnulinux.patch @@ -0,0 +1,13 @@ +diff --git a/libffi/closures.c.orig b/libffi/closures.c +index 721ff00..22a699c 100644 +--- a/libffi/src/closures.c.orig ++++ b/libffi/src/closures.c +@@ -34,7 +34,7 @@ + #include + + #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE +-# if __gnu_linux__ && !defined(__ANDROID__) ++# if __linux__ && !defined(__ANDROID__) + /* This macro indicates it may be forbidden to map anonymous memory + with both write and execute permission. Code compiled when this + option is defined will attempt to map such pages once, but if it diff --git a/aports/gcc-armhf/APKBUILD b/aports/gcc-armhf/APKBUILD new file mode 100644 index 00000000..722c9b70 --- /dev/null +++ b/aports/gcc-armhf/APKBUILD @@ -0,0 +1,649 @@ +# Automatically generated aport, do not edit! +# Generator: pmbootstrap aportgen gcc-armhf +# Based on: main/gcc + +CTARGET_ARCH=armhf +CTARGET="$(arch_to_hostspec ${CTARGET_ARCH})" +CBUILDROOT="/usr/$CTARGET" +LANG_OBJC=false +LANG_JAVA=false +LANG_GO=false +LANG_FORTRAN=false +LANG_ADA=false +options="!strip !tracedeps" + +pkgname="gcc-armhf" +pkgver=6.3.0 +_pkgbase=6.3.0 +[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2" +[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross="" +[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target="" + +pkgname="gcc-armhf" +pkgrel=4 +pkgdesc="Stage2 cross-compiler for armhf" +url="http://gcc.gnu.org" +arch="all" +license="GPL LGPL" +_gccrel=$pkgver-r$pkgrel +depends="isl binutils-armhf" +makedepends_build="gcc g++ paxmark bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev" +makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev musl-dev-armhf binutils-armhf" +subpackages="" +[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-doc$_target" +replaces="libstdc++ binutils" + +: ${LANG_CXX:=true} +: ${LANG_OBJC:=true} +: ${LANG_JAVA:=true} +: ${LANG_GO:=true} +: ${LANG_FORTRAN:=true} +: ${LANG_ADA:=true} + +LIBGOMP="false" +LIBGCC="false" +LIBATOMIC="false" +LIBITM="false" + +# omit-frame-pointner will break libgcc on aarch64 +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71951 +if [ "$CARCH" = aarch64 ]; then + export CFLAGS=${CFLAGS//-fomit-frame-pointer/} + export CXXFLAGS=${CXXFLAGS//-fomit-frame-pointer/} + export CPPFLAGS=${CPPFLAGS//-fomit-frame-pointer/} +fi + +if [ "$CHOST" != "$CTARGET" ]; then + if [ "$BOOTSTRAP" = nolibc ]; then + LANG_CXX=false + LANG_ADA=false + LIBGCC=false + _builddir="$srcdir/build-cross-pass2" + else + _builddir="$srcdir/build-cross-final" + fi + LANG_OBJC=false + LANG_JAVA=false + LANG_GO=false + LANG_FORTRAN=false + LIBGOMP=false + LIBATOMIC=false + LIBITM=false + + # reset target flags (should be set in crosscreate abuild) + # fixup flags. seems gcc treats CPPFLAGS as global without + # _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS. + export CFLAGS="$CPPFLAGS $CFLAGS" + export CXXFLAGS="$CPPFLAGS $CXXFLAGS" + unset CPPFLAGS + export CFLAGS_FOR_TARGET=" " + export CXXFLAGS_FOR_TARGET=" " + export LDFLAGS_FOR_TARGET=" " + + STRIP_FOR_TARGET="$CTARGET-strip" +elif [ "$CBUILD" != "$CHOST" ]; then + # fixup flags. seems gcc treats CPPFLAGS as global without + # _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS. + export CFLAGS="$CPPFLAGS $CFLAGS" + export CXXFLAGS="$CPPFLAGS $CXXFLAGS" + unset CPPFLAGS + + # reset flags and cc for build + export CC_FOR_BUILD="gcc" + export CXX_FOR_BUILD="g++" + export CFLAGS_FOR_BUILD=" " + export CXXFLAGS_FOR_BUILD=" " + export LDFLAGS_FOR_BUILD=" " + export CFLAGS_FOR_TARGET=" " + export CXXFLAGS_FOR_TARGET=" " + export LDFLAGS_FOR_TARGET=" " + + # Languages that do not need bootstrapping + LANG_OBJC=false + LANG_JAVA=false + LANG_GO=false + LANG_FORTRAN=false + + STRIP_FOR_TARGET=${CROSS_COMPILE}strip + _builddir="$srcdir/build-cross-native" +else + STRIP_FOR_TARGET=${CROSS_COMPILE}strip + _builddir="$srcdir/build" +fi + +# Go needs {set,make,swap}context, unimplemented in musl +[ "$CTARGET_LIBC" = musl ] && LANG_GO=false + +# libitm has TEXTRELs in ARM build, so disable for now +case "$CTARGET_ARCH" in +arm*) LIBITM=false ;; +esac + +# Fortran uses libquadmath if toolchain has __float128 +# currently on x86, x86_64 and ia64 +LIBQUADMATH=$LANG_FORTRAN +case "$CTARGET_ARCH" in +x86 | x86_64) LIBQUADMATH=$LANG_FORTRAN ;; +*) LIBQUADMATH=false ;; +esac + +# libatomic is a dependency for openvswitch +$LIBATOMIC && subpackages="$subpackages libatomic::$CTARGET_ARCH" +$LIBGCC && subpackages="$subpackages libgcc::$CTARGET_ARCH" +$LIBQUADMATH && subpackages="$subpackages libquadmath::$CTARGET_ARCH" +if $LIBGOMP; then + depends="$depends libgomp=$_gccrel" + subpackages="$subpackages libgomp::$CTARGET_ARCH" +fi + +_languages=c +if $LANG_CXX; then + subpackages="$subpackages g++$_target:gpp" + _languages="$_languages,c++" +fi +if $LANG_OBJC; then + subpackages="$subpackages libobjc::$CTARGET_ARCH gcc-objc$_target:objc" + _languages="$_languages,objc" +fi +if $LANG_JAVA; then + subpackages="$subpackages libgcj::$CTARGET_ARCH gcc-java$_target:java" + _languages="$_languages,java" +fi +if $LANG_GO; then + subpackages="$subpackages libgo::$CTARGET_ARCH gcc-go$_target:go" + _languages="$_languages,go" +fi +if $LANG_FORTRAN; then + subpackages="$subpackages libgfortran::$CTARGET_ARCH gfortran$_target:gfortran" + _languages="$_languages,fortran" +fi +if $LANG_ADA; then + subpackages="$subpackages libgnat::$CTARGET_ARCH gcc-gnat$_target:gnat" + _languages="$_languages,ada" + makedepends_build="$makedepends_build gcc-gnat$_cross" +fi +makedepends="$makedepends_build $makedepends_host" + +source="ftp://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.bz2 + ftp://sourceware.org/pub/java/ecj-4.9.jar + + 001_all_default-ssp-strong.patch + 002_all_default-relro.patch + 003_all_default-fortify-source.patch + 005_all_default-as-needed.patch + 011_all_default-warn-format-security.patch + 012_all_default-warn-trampolines.patch + 020_all_msgfmt-libstdc++-link.patch + 050_all_libiberty-asprintf.patch + 051_all_libiberty-pic.patch + 053_all_libitm-no-fortify-source.patch + 067_all_gcc-poison-system-directories.patch + 090_all_pr55930-dependency-tracking.patch + + 201-cilkrts.patch + 202-posix_memalign.patch + 203-libgcc_s.patch + 204-linux_libc_has_function.patch + 205-nopie.patch + 207-static-pie.patch + + libgcc-always-build-gcceh.a.patch + libada-cross-shared.patch + gcc-4.9-musl-fortify.patch + gcc-6.1-musl-libssp.patch + boehm-gc-musl.patch + gcc-pure64.patch + fix-gcj-stdgnu14-link.patch + fix-gcj-musl.patch + fix-gcj-iconv-musl.patch + + gcc-4.8-build-args.patch + fix-cxxflags-passing.patch + ada-fixes.patch + ada-shared.patch + ada-musl.patch + + 300-main-gcc-add-musl-s390x-dynamic-linker.patch + 310-build-gcj-s390x.patch + 320-libffi-gnulinux.patch + + fix-rs6000-pie.patch + " + +# we build out-of-tree +_gccdir="$srcdir"/gcc-${_pkgbase:-$pkgver} +_gcclibdir=/usr/lib/gcc/${CTARGET}/$pkgver +_gcclibexec=/usr/libexec/gcc/${CTARGET}/$pkgver + +prepare() { + cd "$_gccdir" + + _err= + for i in $source; do + case "$i" in + *.patch) + msg "Applying $i" + patch -p1 -F3 -i "$srcdir"/$i || _err="$_err $i" + ;; + esac + done + + if [ -n "$_err" ]; then + error "The following patches failed:" + for i in $_err; do + echo " $i" + done + return 1 + fi + + # see http://gcc.gnu.org/ml/java/2008-04/msg00027.html + mv "$srcdir"/ecj-*.jar ecj.jar + + echo ${pkgver} > gcc/BASE-VER +} + +build() { + local _arch_configure= + local _libc_configure= + local _cross_configure= + local _bootstrap_configure= + local _symvers= + + cd "$_gccdir" + + # temp disable boostrap for aarch64 see bug: + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71989 + case "$CTARGET" in + aarch64-*-*-*) _arch_configure="--with-arch=armv8-a --with-abi=lp64 --disable-bootstrap";; + armv6-*-*-*eabihf) _arch_configure="--with-arch=armv6zk --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=hard --with-abi=aapcs-linux";; + armv7-*-*-*eabihf) _arch_configure="--with-arch=armv7-a --with-tune=generic-armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-abi=aapcs-linux --with-mode=thumb";; + mipsel-*-*-*) _arch_configure="--with-arch-32=mips2 --with-tune-32=mips32 --with-fp-32=32 --with-mips-plt --with-float=hard --with-abi=32";; + powerpc-*-*-*) _arch_configure="--enable-secureplt --enable-decimal-float=no";; + powerpc64*-*-*-*) _arch_configure="--with-abi=elfv2 --enable-secureplt --enable-decimal-float=no --enable-targets=powerpcle-linux";; + i486-*-*-*) _arch_configure="--with-arch=i486 --with-tune=generic --enable-cld";; + i586-*-*-*) _arch_configure="--with-arch=i586 --with-tune=generic --enable-cld";; + s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";; + esac + + case "$CTARGET_LIBC" in + musl) + # musl does not support mudflap, or libsanitizer + # libmpx uses secure_getenv and struct _libc_fpstate not present in musl + # alpine musl provides libssp_nonshared.a, so we don't need libssp either + _libc_configure="--disable-libssp --disable-libmpx --disable-libmudflap --disable-libsanitizer" + _symvers="--disable-symvers" + export libat_cv_have_ifunc=no + ;; + esac + + [ "$CBUILD" != "$CHOST" ] && _cross_configure="--disable-bootstrap" + [ "$CHOST" != "$CTARGET" ] && _cross_configure="--disable-bootstrap --with-sysroot=$CBUILDROOT" + + case "$BOOTSTRAP" in + nolibc) _bootstrap_configure="--with-newlib --disable-shared --enable-threads=no" ;; + *) _bootstrap_configure="--enable-shared --enable-threads --enable-tls" ;; + esac + + $LIBGOMP || _bootstrap_configure="$_bootstrap_configure --disable-libgomp" + $LIBATOMIC || _bootstrap_configure="$_bootstrap_configure --disable-libatomic" + $LIBITM || _bootstrap_configure="$_bootstrap_configure --disable-libitm" + $LIBQUADMATH || _arch_configure="$_arch_configure --disable-libquadmath" + + msg "Building the following:" + echo "" + echo " CBUILD=$CBUILD" + echo " CHOST=$CHOST" + echo " CTARGET=$CTARGET" + echo " CTARGET_ARCH=$CTARGET_ARCH" + echo " CTARGET_LIBC=$CTARGET_LIBC" + echo " languages=$_languages" + echo " arch_configure=$_arch_configure" + echo " libc_configure=$_libc_configure" + echo " cross_configure=$_cross_configure" + echo " bootstrap_configure=$_bootstrap_configure" + echo "" + + mkdir -p "$_builddir" + cd "$_builddir" + "$_gccdir"/configure --prefix=/usr \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --build=${CBUILD} \ + --host=${CHOST} \ + --target=${CTARGET} \ + --with-pkgversion="Alpine ${pkgver}" \ + --enable-checking=release \ + --disable-fixed-point \ + --disable-libstdcxx-pch \ + --disable-multilib \ + --disable-nls \ + --disable-werror \ + $_symvers \ + --enable-__cxa_atexit \ + --enable-default-pie \ + --enable-cloog-backend \ + --enable-languages=$_languages \ + $_arch_configure \ + $_libc_configure \ + $_cross_configure \ + $_bootstrap_configure \ + --with-system-zlib \ + --with-linker-hash-style=gnu + make +} + +package() { + cd "$_builddir" + make -j1 DESTDIR="${pkgdir}" install + + ln -s gcc "$pkgdir"/usr/bin/cc + + # we dont support gcj -static + # and saving 35MB is not bad. + find "$pkgdir" -name libgcj.a -o -name libgtkpeer.a \ + -o -name libgjsmalsa.a -o -name libgcj-tools.a \ + -o -name libjvm.a -o -name libgij.a -o -name libgcj_bc.a \ + -o -name libjavamath.a \ + | xargs rm -f + + # strip debug info from some static libs + ${STRIP_FOR_TARGET} -g `find "$pkgdir" \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \ + -o -name libmudflap.a -o -name libmudflapth.a \ + -o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \ + -o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \ + -o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \ + -a -type f` + + if $LANG_JAVA; then + sed -i -e 's/lib: /&%{static:%eJava programs cannot be linked statically}/' \ + "$pkgdir"/usr/lib/libgcj.spec + fi + + if $LIBGOMP; then + mv "$pkgdir"/usr/lib/libgomp.spec "$pkgdir"/$_gcclibdir + fi + if $LIBITM; then + mv "$pkgdir"/usr/lib/libitm.spec "$pkgdir"/$_gcclibdir + fi + + # remove ffi + rm -f "$pkgdir"/usr/lib/libffi* "$pkgdir"/usr/share/man/man3/ffi* + find "$pkgdir" -name 'ffi*.h' | xargs rm -f + + mkdir -p "$pkgdir"/usr/share/gdb/python/auto-load/usr/lib + + paxmark -pmrs "$pkgdir"/$_gcclibexec/cc1 + + # move ada runtime libs + if $LANG_ADA; then + for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.so"); do + mv "$i" "$pkgdir"/usr/lib/ + ln -s ../../../../${i##*/} $i + done + fi + + if [ "$CHOST" != "$CTARGET" ]; then + # cross-gcc: remove any files that would conflict with the + # native gcc package + rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "$pkgdir"/usr/share + # libcc1 does not depend on target, don't ship it + rm -rf "$pkgdir"/usr/lib/libcc1.so* + + # fixup gcc library symlinks to be linker scripts so + # linker finds the libs from relocated sysroot + for so in "$pkgdir"/usr/$CTARGET/lib/*.so; do + if [ -h "$so" ]; then + local _real=$(basename $(readlink "$so")) + rm -f "$so" + echo "GROUP ($_real)" > "$so" + fi + done + fi +} + +libatomic() { + pkgdesc="GCC Atomic library" + depends= + replaces="gcc" + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libatomic.so.* "$subpkgdir"/usr/lib/ +} + +libcxx() { + pkgdesc="GNU C++ standard runtime library" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libstdc++.so.* "$subpkgdir"/usr/lib/ +} + +gpp() { + pkgdesc="GNU C++ standard library and compiler" + depends="libstdc++=$_gccrel gcc=$_gccrel libc-dev" + mkdir -p "$subpkgdir/$_gcclibexec" \ + "$subpkgdir"/usr/bin \ + "$subpkgdir"/usr/${_target:+$CTARGET/}include \ + "$subpkgdir"/usr/${_target:+$CTARGET/}lib \ + + mv "$pkgdir/$_gcclibexec/cc1plus" "$subpkgdir/$_gcclibexec/" + paxmark -pmrs "$subpkgdir/$_gcclibexec/cc1plus" + + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/*++* "$subpkgdir"/usr/${_target:+$CTARGET/}lib/ + mv "$pkgdir"/usr/${_target:+$CTARGET/}include/c++ "$subpkgdir"/usr/${_target:+$CTARGET/}include/ + mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/ +} + +libobjc() { + pkgdesc="GNU Objective-C runtime" + replaces="objc" + depends= + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libobjc.so.* "$subpkgdir"/usr/lib/ +} + +objc() { + pkgdesc="GNU Objective-C" + replaces="gcc" + depends="libc-dev gcc=$_gccrel libobjc=$_gccrel" + + mkdir -p "$subpkgdir"/$_gcclibdir/include \ + "$subpkgdir"/usr/lib + mv "$pkgdir"/$_gcclibdir/include/objc "$subpkgdir"/$_gcclibdir/include/ + mv "$pkgdir"/usr/lib/libobjc.so "$pkgdir"/usr/lib/libobjc.a \ + "$subpkgdir"/usr/lib/ +} + +libgcc() { + pkgdesc="GNU C compiler runtime libraries" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgcc_s.so.* "$subpkgdir"/usr/lib/ +} + +libgomp() { + pkgdesc="GCC shared-memory parallel programming API library" + depends= + replaces="gcc" + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libgomp.so.* "$subpkgdir"/usr/lib/ +} + +java() { + pkgdesc="Java support for GCC" + depends="zlib-dev gcc=$_gccrel libgcj=$_gccrel" + + paxmark -pm "$pkgdir"/$_gcclibexec/ecj1 + mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib "$subpkgdir"/$_gcclibdir/ + cd "$pkgdir"/usr/bin + mv gcj gcj-dbtool gjavah gcjh jcf-dump "$subpkgdir"/usr/bin/ + cd "$pkgdir" + for i in $(find usr/ -name ecj1 -o -name jc1 -o -name jvgenmain); do + mkdir -p "$subpkgdir"/${i%/*} + mv "$pkgdir"/$i "$subpkgdir"/$i + done + for i in "$pkgdir"/usr/lib/libgcj*.so; do + if [ -L "$i" ]; then + mv "$i" "$subpkgdir"/usr/lib/ + fi + done + mv "$pkgdir"/usr/lib/libgij.so "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/lib/libgcj.spec "$subpkgdir"/$_gcclibdir/ +} + +libgcj() { + pkgdesc="Java runtime library for gcc" + # libgcj_bc.so moved from gcc-java to libgcj + replaces="gcc-java" + depends= + + mkdir -p "$subpkgdir"/usr/bin + cd "$pkgdir"/usr/bin + paxmark -pmse "$pkgdir"/usr/bin/gij + mv aot-compile gappletviewer gc-analyze gij gjar gjarsigner gkeytool\ + gnative2ascii gorbd grmic grmid grmiregistry gserialver \ + gtnameserv jv-convert rebuild-gcj-db \ + "$subpkgdir"/usr/bin/ + cd "$pkgdir" + for i in $(find usr/lib -name jc1 -o -name jvgenmain); do + mkdir -p "$subpkgdir"/${i%/*} + mv "$pkgdir"/$i "$subpkgdir"/$i + done + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/gcj-* \ + "$pkgdir"/usr/lib/libgcj_bc.so \ + "$pkgdir"/usr/lib/libgcj*.so.* \ + "$pkgdir"/usr/lib/libgij.so.* \ + "$pkgdir"/usr/lib/logging.properties \ + "$pkgdir"/usr/lib/security \ + "$subpkgdir"/usr/lib/ + + mkdir -p "$subpkgdir"/usr/share/ + mv "$pkgdir"/usr/share/java "$subpkgdir"/usr/share/ +} + +libgo() { + pkgdesc="Go runtime library for GCC" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgo.so.* "$subpkgdir"/usr/lib/ +} + +go() { + pkgdesc="Go support for GCC" + depends="gcc=$_gccrel libgo=$_gccrel" + + mkdir -p "$subpkgdir"/$_gcclibexec \ + "$subpkgdir"/usr/lib \ + "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/lib/go "$subpkgdir"/usr/lib/ + mv "$pkgdir"/usr/bin/*gccgo "$subpkgdir"/usr/bin/ + mv "$pkgdir"/$_gcclibexec/go1 "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/usr/lib/libgo.a \ + "$pkgdir"/usr/lib/libgo.so \ + "$pkgdir"/usr/lib/libgobegin.a \ + "$subpkgdir"/usr/lib/ +} + +libgfortran() { + pkgdesc="Fortran runtime library for GCC" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgfortran.so.* "$subpkgdir"/usr/lib/ +} + +libquadmath() { + replaces="gcc" + pkgdesc="128-bit math library for GCC" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libquadmath.so.* "$subpkgdir"/usr/lib/ +} + +gfortran() { + pkgdesc="GNU Fortran Compiler" + depends="gcc=$_gccrel libgfortran=$_gccrel" + $LIBQUADMATH && depends="$depends libquadmath=$_gccrel" + replaces="gcc" + + mkdir -p "$subpkgdir"/$_gcclibexec \ + "$subpkgdir"/$_gcclibdir \ + "$subpkgdir"/usr/lib \ + "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/*gfortran "$subpkgdir"/usr/bin/ + mv "$pkgdir"/usr/lib/libgfortran.a \ + "$pkgdir"/usr/lib/libgfortran.so \ + "$subpkgdir"/usr/lib/ + if $LIBQUADMATH; then + mv "$pkgdir"/usr/lib/libquadmath.a \ + "$pkgdir"/usr/lib/libquadmath.so \ + "$subpkgdir"/usr/lib/ + fi + mv "$pkgdir"/$_gcclibexec/f951 "$subpkgdir"/$_gcclibexec + mv "$pkgdir"/usr/lib/libgfortran.spec "$subpkgdir"/$_gcclibdir +} + +libgnat() { + pkgdesc="GNU Ada runtime shared libraries" + depends= + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libgna*.so "$subpkgdir"/usr/lib/ +} + +gnat() { + pkgdesc="Ada support for GCC" + depends="gcc=$_gccrel" + [ "$CHOST" = "$CTARGET" ] && depends="$depends libgnat=$_gccrel" + + mkdir -p "$subpkgdir"/$_gcclibexec \ + "$subpkgdir"/$_gcclibdir \ + "$subpkgdir"/usr/bin + mv "$pkgdir"/$_gcclibexec/*gnat* "$subpkgdir"/$_gcclibexec/ + mv "$pkgdir"/$_gcclibdir/*ada* "$subpkgdir"/$_gcclibdir/ + mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/ +} + +sha512sums="234dd9b1bdc9a9c6e352216a7ef4ccadc6c07f156006a59759c5e0e6a69f0abcdc14630eff11e3826dd6ba5933a8faa43043f3d1d62df6bd5ab1e82862f9bf78 gcc-6.3.0.tar.bz2 +28f8c6fdbcb19e950b1d0bafb3bcc7a8cba87bc673aa6027cece116599cdee80f0cf5e95a1440544890239f5c754e8a93ab46d9daedd937faef445d7ea33b226 ecj-4.9.jar +a1335adc2fbee98e36c4437ff2587771b98ed4180726779020f65039498235626a411cdb0100dbd20cd19d12f0d94f9a21af179ff624676c28cead9d60598b5d 001_all_default-ssp-strong.patch +e36e95b81489163abd6fe9d58f7867bdca43e61143afacbfb17f4698c0b16ec5fd0061d8fab7b2ae615540bebd721c2e2227f80401b4e7fc253da9da62e6b513 002_all_default-relro.patch +f86466c62b8291fac46f9c250c7ad8fa5ab7b1cce2504442fd07ddc4543665b317ae28951f244e39aba29aeaf3fff252ec4f6a147aa16adb2b7aed747dd89188 003_all_default-fortify-source.patch +51282fea54c7e616367bbeb2479ba13fec6f24eb47bd04e2071907b3b36273b2ff24676f46ef8d22f241c8ab4857307861eee076eab66797c3a50a8ecaa1809a 005_all_default-as-needed.patch +3398386dd1e079d6545dd9799adc799c6b80e3984fac6899d0e1a7ee21b66d0c7e53cddf17a65d590c883db750f9f79aaedd857355a8b9f7fb9476c906237919 011_all_default-warn-format-security.patch +9adb0d2b9b67dd957df6c609b8714c7c078efb52cd88770905c37c67827be8fc83d1125037b9c29d77db21ce78756aa2bb0bacdb0b98d869ac126da76a298e21 012_all_default-warn-trampolines.patch +d35a3ac7e13a4446921a90e1ff3eec1079840c845f9d523c868e24ae21f94cf69ba041de5341ebef96432a6f57598e223381d4286e8fb8baaa25906707f29fbd 020_all_msgfmt-libstdc++-link.patch +840070a3c423e6206aaa6e63e1d9a0fcd6efd53626cd1240a193f0b60aa5d84216acc4a2a4fa8bce74549b07e6a316b01d638f20cea13dc62473491a302fb3d6 050_all_libiberty-asprintf.patch +0a0bc72b9366158f5d23fff1928e756fdd212433bac6ab1f00d632f241382820db8db5d475ddf11ea020eaf7e2e71b12fb9b1c3c870cf84adf6c2b16f15aabca 051_all_libiberty-pic.patch +e7a2eb1b1870e199d6fd753d065781575656fa12baa264f96c5d179689d88c31b8a3f92a5dae96088c05e96aa2bda138364ad7dbcc79e1819a102f192cbb7bab 053_all_libitm-no-fortify-source.patch +e87da18aa7ab92b02b06168658c63b42a6c73a08fad2a30f81ef6296100fdbe3c3a91548fd0cb24eaf591e862bb08e4b67249bc4b977b07da33523aee0c686bc 067_all_gcc-poison-system-directories.patch +4a328d1e1a56c20166307edcfa322068915784d9c08025b7f81cf69714da48fc266b6d34f77b9135c2f10da830d9df408276a1b78d1fd218637c2823506593c2 090_all_pr55930-dependency-tracking.patch +ef052d0c3c9642fcb5ed570069c5a49c8ef523c47ac8ce3f201a801766f72ae4ff7c3725a70ee66e52c0fb559621e35fe0cf5b88b901d71ceadd381f49653a08 201-cilkrts.patch +40b7f2fc44fbe8125027c424f9ef3e6b89129ee4c6d47f3f3075f28979bcece2a3bc0ddd17df6bae77960db773f48fba2eb252923063ac81788340e7ec575d99 202-posix_memalign.patch +808e206f5e107084156fba333d4e091dcbd62f5d7756142bc292d4b0a52619f8c2aaca3617defc2f5b6552ba0439aebd33f4141329d88eab6ddf2dd637d92c08 203-libgcc_s.patch +fc0de05b36613b732a0222ea005c90653c6a40d6761b6894af2419272f4e74875f37e26af33a9b9940669ef89269c44c46d17ca5bcd54b5cd1176e5eaf2992c1 204-linux_libc_has_function.patch +98473bcaa77903a223ca9b0d2087c0921b287a2816d308cc32c8fe009e6cbf5dd1ae7fba27794ab8d9c09e117fe534413d91a464d1218474fc123ce0adfdc2c1 205-nopie.patch +3287d5b443bea8ec64132bcabe869c738ae98ea8f1a86df1c5d18c927f8816edbfcefeefc47792dbbb2bcacf50319af00e01b3735d34525913b64350770ad453 207-static-pie.patch +d08d7ead2de0429e5c9055d5b029ec2be9a8c821d22cecaf9b51f633652c493333f98963d9267fa2fa63850c50ae5eefd5f59e5910ec10d20044dac082182a8b libgcc-always-build-gcceh.a.patch +497e73650b4e7ac1cc92158b993f543b1506d3af4f9df9cb1e9504af4db657a9fc6e4429b4cb2bf5b3c1c8c06a5cec5d8b19bc958fd57b92d7b4d5e58b34554c libada-cross-shared.patch +600fe5098dc54edaa9808fd5717af9dec058953f9ad37d49cfba1db4f7e9a7a8f02019342f75157fc575946fa693259422184de27b7ecc8386d9f3ecc0f7cc5d gcc-4.9-musl-fortify.patch +dbe0ee917fc7668571722364ab7c806731e3a31e8bfa30b4941b28b16b877d2a32b4a3897ef533399a28f82d43cac9b28e92de0493f0e779046db56584e07fa4 gcc-6.1-musl-libssp.patch +bda845a6aa1854d2c883910b115f79ccfa93dfc2b5eac69a3a236d83eb34cadc140731d616ffc24698c7abc8878dd15f231bcc5119f1860e575a120b311706c7 boehm-gc-musl.patch +fa62556719449caec6b2b434355bfbcaa5ae55ffe017b3e1f827f66a2aae21b79c571ee7a4ce723ea69169bc3a6447e73650991a200cc372adf2f102677518d7 gcc-pure64.patch +2253941f3d19b6d08801d3782f5f5ed56c3b73fbc9d3561a8f01c702963ac4fab91599c686076e7081eb6a80c37ccd33591ae978996d6eee1dc0ce0f1c50259a fix-gcj-stdgnu14-link.patch +f89ddeb21bc8f97e6a850a6b70b4501a8f3e49a4bc8cc82897488decda5d98ad01cb7f6c8b392d452e9579924a523bc75da6e0648c1c976d42e40af48b10343b fix-gcj-musl.patch +54d67cc008b735e47771314171930c5d8b8f5f5dc97fcf4214824c105c808f3e75d22d5a4fdf5068ed0457fa0d46c60cfb442e276259a4a5e9b8722a027d18e6 fix-gcj-iconv-musl.patch +abe9aaf9aa956058d0386a4396a511d176a46bb3906b90e952383646cdc158cbeb0a5dc616a1ccb1ca7d49fd0b5e351532aa15a3b13362abbf1ca4266f54a687 gcc-4.8-build-args.patch +35d6d59f0b7b968f282f56767c9e0823a7bdc5aa0d450aca50fbd802649a7ca608b47671244a3faa208a9b0d6832cabb5a22724157dc817b2c0ad63d09f93282 fix-cxxflags-passing.patch +9016b257abd8fa981de44a49512e35db814d1cbb47c1a87cd31c12d4ae20b13e9e149fe41691a7ec3c95bbcfde8a79194a8d2eaf547ceade3a246fad67c47dd8 ada-fixes.patch +3f5bc334d9f73d06f5f7c876738d02356acdd08958bea0e4d2095ebf15c2c2ec4e411abdae0297505ae9a1699ca01b17338e853184e84663203b192b0d35fc19 ada-shared.patch +631d4bdef6d8bde34df7978bb53ec28c3c909cf1f87139e5f148138d0f09adc58b41ecf0148bbf50fb4bc916c411e9bf8a2b6c046c75c0e77d754d8c35bcd4d7 ada-musl.patch +4b4a0ff306a8ef34ff6e3284fbfca869012164a47ba7cb099085c1dd03e6ca0cdd462f82710e08c9a02895adc7484e4c5eef17b5aa264cf5d978fe8ad78eea93 300-main-gcc-add-musl-s390x-dynamic-linker.patch +385bc2fa50204f678964e5148c6170f572701dab920fbec8301f505bda34d182cde0adb7da042fee71719e12fb59f59181897f9b1bb4f4716ff59aad46ca1998 310-build-gcj-s390x.patch +f4ef08454e28c8732db69115e4998ec153399e8d229dd27f923dbdcf57b68128a65640d026cc7f45b58ba8764ab1eb575d4eb6d6dfc550a87a183f8b94e76181 320-libffi-gnulinux.patch +01c71cd5881fc07ea3b9b980697e89b3ca0fe98502958ceafc3fca18b2604c844e2f457feab711baf8e03f00a5383b0e38aac7eb954034e306f43d4a37f165ed fix-rs6000-pie.patch" diff --git a/aports/gcc-armhf/ada-fixes.patch b/aports/gcc-armhf/ada-fixes.patch new file mode 100644 index 00000000..ba4ea42b --- /dev/null +++ b/aports/gcc-armhf/ada-fixes.patch @@ -0,0 +1,35 @@ +--- gcc-6.1.0.orig/gcc/ada/cal.c ++++ gcc-6.1.0/gcc/ada/cal.c +@@ -49,6 +49,7 @@ + #include + #else + #include ++#include + #endif + + #ifdef __MINGW32__ +--- gcc-6.1.0.orig/gcc/ada/terminals.c ++++ gcc-6.1.0/gcc/ada/terminals.c +@@ -1068,13 +1068,6 @@ + #include + #include + +-/* On some system termio is either absent or including it will disable termios +- (HP-UX) */ +-#if !defined (__hpux__) && !defined (BSD) && !defined (__APPLE__) \ +- && !defined (__rtems__) +-# include +-#endif +- + #include + #include + #include +@@ -1169,7 +1162,7 @@ + char *slave_name = NULL; + + #ifdef USE_GETPT +- master_fd = getpt (); ++ master_fd = posix_openpt (O_RDWR); + #elif defined (USE_OPENPTY) + status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL); + #elif defined (USE_CLONE_DEVICE) diff --git a/aports/gcc-armhf/ada-musl.patch b/aports/gcc-armhf/ada-musl.patch new file mode 100644 index 00000000..464c3d57 --- /dev/null +++ b/aports/gcc-armhf/ada-musl.patch @@ -0,0 +1,137 @@ +diff -rup gcc-5.1.0/gcc.orig/ada/adaint.c gcc-5.1.0/gcc/ada/adaint.c +--- gcc-5.1.0/gcc.orig/ada/adaint.c 2015-02-20 11:48:57.000000000 +0000 ++++ gcc-5.1.0/gcc/ada/adaint.c 2015-06-02 10:47:51.672767476 +0000 +@@ -70,6 +70,11 @@ + #include + #include + #endif ++ ++#if defined (linux) ++#define _GNU_SOURCE 1 ++#include ++#endif + + #ifdef __PikeOS__ + #define __BSD_VISIBLE 1 +@@ -3057,8 +3062,6 @@ __gnat_lwp_self (void) + return (void *) syscall (__NR_gettid); + } + +-#include +- + /* glibc versions earlier than 2.7 do not define the routines to handle + dynamically allocated CPU sets. For these targets, we use the static + versions. */ +@@ -3067,7 +3070,7 @@ __gnat_lwp_self (void) + + /* Dynamic cpu sets */ + +-cpu_set_t * ++void * + __gnat_cpu_alloc (size_t count) + { + return CPU_ALLOC (count); +@@ -3080,33 +3083,33 @@ __gnat_cpu_alloc_size (size_t count) + } + + void +-__gnat_cpu_free (cpu_set_t *set) ++__gnat_cpu_free (void *set) + { +- CPU_FREE (set); ++ CPU_FREE ((cpu_set_t *) set); + } + + void +-__gnat_cpu_zero (size_t count, cpu_set_t *set) ++__gnat_cpu_zero (size_t count, void *set) + { +- CPU_ZERO_S (count, set); ++ CPU_ZERO_S (count, (cpu_set_t *) set); + } + + void +-__gnat_cpu_set (int cpu, size_t count, cpu_set_t *set) ++__gnat_cpu_set (int cpu, size_t count, void *set) + { + /* Ada handles CPU numbers starting from 1, while C identifies the first + CPU by a 0, so we need to adjust. */ +- CPU_SET_S (cpu - 1, count, set); ++ CPU_SET_S (cpu - 1, count, (cpu_set_t *) set); + } + + #else /* !CPU_ALLOC */ + + /* Static cpu sets */ + +-cpu_set_t * ++void * + __gnat_cpu_alloc (size_t count ATTRIBUTE_UNUSED) + { +- return (cpu_set_t *) xmalloc (sizeof (cpu_set_t)); ++ return xmalloc (sizeof (cpu_set_t)); + } + + size_t +@@ -3116,23 +3119,23 @@ __gnat_cpu_alloc_size (size_t count ATTR + } + + void +-__gnat_cpu_free (cpu_set_t *set) ++__gnat_cpu_free (void *set) + { + free (set); + } + + void +-__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, cpu_set_t *set) ++__gnat_cpu_zero (size_t count ATTRIBUTE_UNUSED, void *set) + { +- CPU_ZERO (set); ++ CPU_ZERO ((cpu_set_t *) set); + } + + void +-__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, cpu_set_t *set) ++__gnat_cpu_set (int cpu, size_t count ATTRIBUTE_UNUSED, void *set) + { + /* Ada handles CPU numbers starting from 1, while C identifies the first + CPU by a 0, so we need to adjust. */ +- CPU_SET (cpu - 1, set); ++ CPU_SET (cpu - 1, (cpu_set_t *) set); + } + #endif /* !CPU_ALLOC */ + #endif /* linux */ +diff -rup gcc-5.1.0/gcc.orig/ada/adaint.h gcc-5.1.0/gcc/ada/adaint.h +--- gcc-5.1.0/gcc.orig/ada/adaint.h 2015-01-27 17:20:27.000000000 +0000 ++++ gcc-5.1.0/gcc/ada/adaint.h 2015-06-02 10:47:23.188910894 +0000 +@@ -287,13 +287,11 @@ extern void *__gnat_lwp_self (voi + + /* Routines for interface to required CPU set primitives */ + +-#include +- +-extern cpu_set_t *__gnat_cpu_alloc (size_t); ++extern void * __gnat_cpu_alloc (size_t); + extern size_t __gnat_cpu_alloc_size (size_t); +-extern void __gnat_cpu_free (cpu_set_t *); +-extern void __gnat_cpu_zero (size_t, cpu_set_t *); +-extern void __gnat_cpu_set (int, size_t, cpu_set_t *); ++extern void __gnat_cpu_free (void *); ++extern void __gnat_cpu_zero (size_t, void *); ++extern void __gnat_cpu_set (int, size_t, void *); + #endif + + #if defined (_WIN32) +diff -rup gcc-5.1.0/gcc.orig/ada/gcc-interface/Makefile.in gcc-5.1.0/gcc/ada/gcc-interface/Makefile.in +--- gcc-5.1.0/gcc.orig/ada/gcc-interface/Makefile.in 2015-04-09 20:29:28.000000000 +0000 ++++ gcc-5.1.0/gcc/ada/gcc-interface/Makefile.in 2015-06-02 10:47:23.188910894 +0000 +@@ -1910,7 +1910,7 @@ ifeq ($(strip $(filter-out powerpc% linu + endif + + # ARM linux, GNU eabi +-ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),) ++ifeq ($(strip $(filter-out arm% linux-gnueabi% linux-musleabi% linux-muslgnueabi%,$(target_cpu) $(target_os))),) + LIBGNAT_TARGET_PAIRS = \ + a-intnam.ads + # undef __KERNEL__ +-# else ++# elif defined(__GLIBC__) + /* Kernels prior to 2.1.1 defined struct sigcontext_struct instead of */ + /* struct sigcontext. libc6 (glibc2) uses "struct sigcontext" in */ + /* prototypes, so we have to include the top-level sigcontext.h to */ +--- gcc-4.8.2/boehm-gc/dyn_load.c.orig 2014-02-17 14:13:09.519850231 +0200 ++++ gcc-4.8.2/boehm-gc/dyn_load.c 2014-02-17 14:14:27.906093514 +0200 +@@ -459,9 +459,7 @@ + /* For glibc 2.2.4+. Unfortunately, it doesn't work for older */ + /* versions. Thanks to Jakub Jelinek for most of the code. */ + +-# if (defined(LINUX) || defined (__GLIBC__)) /* Are others OK here, too? */ \ +- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \ +- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) ++# if (defined(LINUX) || defined (__GLIBC__)) + + /* We have the header files for a glibc that includes dl_iterate_phdr. */ + /* It may still not be available in the library on the target system. */ +--- gcc-4.8.2/boehm-gc/include/private/gcconfig.h.orig 2014-02-17 14:14:36.026049422 +0200 ++++ gcc-4.8.2/boehm-gc/include/private/gcconfig.h 2014-02-17 14:17:11.345207887 +0200 +@@ -684,7 +684,7 @@ + # ifdef __ELF__ + # define DYNAMIC_LOADING + # include +-# if defined(__GLIBC__)&& __GLIBC__>=2 ++# if 1 + # define SEARCH_FOR_DATA_START + # else /* !GLIBC2 */ + extern char **__environ; +@@ -1147,7 +1147,7 @@ + # define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff)) + # endif + # include +-# if defined(__GLIBC__) && __GLIBC__ >= 2 ++# if 1 + # define SEARCH_FOR_DATA_START + # else + extern char **__environ; +@@ -1367,7 +1367,7 @@ + # define HBLKSIZE 4096 + # endif + # define USE_GENERIC_PUSH_REGS +-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2 || __GLIBC__ > 2 ++# if 1 + # define LINUX_STACKBOTTOM + # else + # define STACKBOTTOM 0x80000000 +@@ -1858,7 +1858,7 @@ + # ifdef __ELF__ + # define DYNAMIC_LOADING + # include +-# if defined(__GLIBC__) && __GLIBC__ >= 2 ++# if 1 + # define SEARCH_FOR_DATA_START + # else + extern char **__environ; diff --git a/aports/gcc-armhf/fix-cxxflags-passing.patch b/aports/gcc-armhf/fix-cxxflags-passing.patch new file mode 100644 index 00000000..8eb1de77 --- /dev/null +++ b/aports/gcc-armhf/fix-cxxflags-passing.patch @@ -0,0 +1,10 @@ +--- gcc-4.8.1/Makefile.in.orig ++++ gcc-4.8.1/Makefile.in +@@ -169,6 +169,7 @@ + # built for the build system to override those in BASE_FLAGS_TO_PASSS. + EXTRA_BUILD_FLAGS = \ + CFLAGS="$(CFLAGS_FOR_BUILD)" \ ++ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)" + + # This is the list of directories to built for the host system. diff --git a/aports/gcc-armhf/fix-gcj-iconv-musl.patch b/aports/gcc-armhf/fix-gcj-iconv-musl.patch new file mode 100644 index 00000000..b0015751 --- /dev/null +++ b/aports/gcc-armhf/fix-gcj-iconv-musl.patch @@ -0,0 +1,120 @@ +--- gcc-4.8.2/libjava/gnu/gcj/convert/natIconv.cc.orig 2014-02-18 18:46:14.897880526 +0200 ++++ gcc-4.8.2/libjava/gnu/gcj/convert/natIconv.cc 2014-02-18 18:50:08.766613550 +0200 +@@ -24,6 +24,13 @@ + + #ifdef HAVE_ICONV + #include ++#include ++ ++#if __BYTE_ORDER == __BIG_ENDIAN ++#define UCS2_CHARSET "UCS-2BE" ++#else ++#define UCS2_CHARSET "UCS-2LE" ++#endif + + template + static inline size_t +@@ -45,7 +52,7 @@ + _Jv_GetStringUTFRegion (encoding, 0, encoding->length(), buffer); + buffer[len] = '\0'; + +- iconv_t h = iconv_open ("UCS-2", buffer); ++ iconv_t h = iconv_open (UCS2_CHARSET, buffer); + if (h == (iconv_t) -1) + throw new ::java::io::UnsupportedEncodingException (encoding); + +@@ -99,18 +106,6 @@ + throw new ::java::io::CharConversionException (); + } + +- if (iconv_byte_swap) +- { +- size_t max = (old_out - outavail) / sizeof (jchar); +- for (size_t i = 0; i < max; ++i) +- { +- // Byte swap. +- jchar c = (((out[outpos + i] & 0xff) << 8) +- | ((out[outpos + i] >> 8) & 0xff)); +- outbuf[i] = c; +- } +- } +- + inpos += old_in - inavail; + return (old_out - outavail) / sizeof (jchar); + #else /* HAVE_ICONV */ +@@ -145,7 +140,7 @@ + _Jv_GetStringUTFRegion (encoding, 0, encoding->length(), buffer); + buffer[len] = '\0'; + +- iconv_t h = iconv_open (buffer, "UCS-2"); ++ iconv_t h = iconv_open (buffer, UCS2_CHARSET); + if (h == (iconv_t) -1) + throw new ::java::io::UnsupportedEncodingException (encoding); + +@@ -187,20 +182,6 @@ + char *inbuf = (char *) &chars[inpos]; + char *outbuf = (char *) &out[count]; + +- if (iconv_byte_swap) +- { +- // Ugly performance penalty -- don't use losing systems! +- temp_buffer = (jchar *) _Jv_Malloc (inlength * sizeof (jchar)); +- for (int i = 0; i < inlength; ++i) +- { +- // Byte swap. +- jchar c = (((chars[inpos + i] & 0xff) << 8) +- | ((chars[inpos + i] >> 8) & 0xff)); +- temp_buffer[i] = c; +- } +- inbuf = (char *) temp_buffer; +- } +- + size_t loop_old_in = old_in; + while (1) + { +@@ -252,44 +233,7 @@ + jboolean + gnu::gcj::convert::IOConverter::iconv_init (void) + { +- // Some versions of iconv() always return their UCS-2 results in +- // big-endian order, and they also require UCS-2 inputs to be in +- // big-endian order. For instance, glibc 2.1.3 does this. If the +- // UTF-8=>UCS-2 iconv converter has this feature, then we assume +- // that all UCS-2 converters do. (This might not be the best +- // heuristic, but is is all we've got.) +- jboolean result = false; +-#ifdef HAVE_ICONV +- iconv_t handle = iconv_open ("UCS-2", "UTF-8"); +- if (handle != (iconv_t) -1) +- { +- jchar c; +- unsigned char in[4]; +- char *inp, *outp; +- size_t inc, outc, r; +- +- // This is the UTF-8 encoding of \ufeff. At least Tru64 UNIX libiconv +- // needs the trailing NUL byte, otherwise iconv fails with EINVAL. +- in[0] = 0xef; +- in[1] = 0xbb; +- in[2] = 0xbf; +- in[3] = 0x00; +- +- inp = (char *) in; +- inc = 4; +- outp = (char *) &c; +- outc = 2; +- +- r = iconv_adapter (iconv, handle, &inp, &inc, &outp, &outc); +- // Conversion must be complete for us to use the result. +- if (r != (size_t) -1 && inc == 0 && outc == 0) +- result = (c != 0xfeff); +- +- // Release iconv handle. +- iconv_close (handle); +- } +-#endif /* HAVE_ICONV */ +- return result; ++ return false; + } + + void diff --git a/aports/gcc-armhf/fix-gcj-musl.patch b/aports/gcc-armhf/fix-gcj-musl.patch new file mode 100644 index 00000000..d26f510c --- /dev/null +++ b/aports/gcc-armhf/fix-gcj-musl.patch @@ -0,0 +1,49 @@ +--- gcc-4.8.2/libjava/gnu/classpath/natSystemProperties.cc.orig 2014-02-18 10:55:08.617678779 +0200 ++++ gcc-4.8.2/libjava/gnu/classpath/natSystemProperties.cc 2014-02-18 10:56:31.927227453 +0200 +@@ -289,7 +289,7 @@ + // just default to `en_US'. + setlocale (LC_ALL, ""); + char *locale = setlocale (LC_MESSAGES, ""); +- if (locale && strlen (locale) >= 2) ++ if (locale && strlen (locale) >= 2 && (locale[2] == '\0' || locale[2] == '_')) + { + char buf[3]; + buf[2] = '\0'; +--- gcc-4.8.2/libjava/posix-threads.cc.orig 2014-02-18 13:22:01.789933726 +0200 ++++ gcc-4.8.2/libjava/posix-threads.cc 2014-02-18 13:29:50.924058875 +0200 +@@ -657,6 +657,7 @@ + struct sched_param param; + pthread_attr_t attr; + struct starter *info; ++ size_t ss; + + if (data->flags & FLAG_START) + return; +@@ -675,8 +676,25 @@ + // Set stack size if -Xss option was given. + if (gcj::stack_size > 0) + { +- int e = pthread_attr_setstacksize (&attr, gcj::stack_size); ++ ss = gcj::stack_size; ++ } ++ else ++ { ++ int e = pthread_attr_getstacksize (&attr, &ss); ++ if (e != 0) ++ JvFail (strerror (e)); ++ ++ // Request at least 1meg of stack ++ if (ss >= 1024 * 1024) ++ ss = 0; ++ else ++ ss = 1024 * 1024; ++ } ++ ++ if (ss) ++ { ++ int e = pthread_attr_setstacksize (&attr, ss); + if (e != 0) + JvFail (strerror (e)); + } + + info = (struct starter *) _Jv_AllocBytes (sizeof (struct starter)); diff --git a/aports/gcc-armhf/fix-gcj-stdgnu14-link.patch b/aports/gcc-armhf/fix-gcj-stdgnu14-link.patch new file mode 100644 index 00000000..2b2ce0fa --- /dev/null +++ b/aports/gcc-armhf/fix-gcj-stdgnu14-link.patch @@ -0,0 +1,35 @@ +--- gcc-6.1.0/libjava/Makefile.am ++++ gcc-6.1.0/libjava/Makefile.am +@@ -488,10 +488,14 @@ + nat_files = $(nat_source_files:.cc=.lo) + xlib_nat_files = $(xlib_nat_source_files:.cc=.lo) + ++libgcj_la_CPPFLAGS = \ ++ $(AM_CPPFLAGS) \ ++ $(LIBSTDCXX_RAW_CXX_CXXFLAGS) ++ + # Include THREADLIBS here to ensure that the correct version of + # certain linuxthread functions get linked: + ## The mysterious backslash in the grep pattern is consumed by make. +-libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \ ++libgcj_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDFLAGS) -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \ + $(LIBLTDL) $(SYS_ZLIBS) $(LIBJAVA_LDFLAGS_NOUNDEF) \ + -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ + $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBGCJ_LD_EXPORT_ALL) +--- gcc-6.1.0/libjava/Makefile.in ++++ gcc-6.1.0/libjava/Makefile.in +@@ -1103,9 +1103,13 @@ + nat_files = $(nat_source_files:.cc=.lo) + xlib_nat_files = $(xlib_nat_source_files:.cc=.lo) + ++libgcj_la_CPPFLAGS = \ ++ $(AM_CPPFLAGS) \ ++ $(LIBSTDCXX_RAW_CXX_CXXFLAGS) ++ + # Include THREADLIBS here to ensure that the correct version of + # certain linuxthread functions get linked: +-libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \ ++libgcj_la_LDFLAGS = $(LIBSTDCXX_RAW_CXX_LDFLAGS) -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \ + $(LIBLTDL) $(SYS_ZLIBS) $(LIBJAVA_LDFLAGS_NOUNDEF) \ + -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ + $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBGCJ_LD_EXPORT_ALL) diff --git a/aports/gcc-armhf/fix-rs6000-pie.patch b/aports/gcc-armhf/fix-rs6000-pie.patch new file mode 100644 index 00000000..1fbc31a5 --- /dev/null +++ b/aports/gcc-armhf/fix-rs6000-pie.patch @@ -0,0 +1,59 @@ +--- gcc-6.3.0.orig/gcc/config/rs6000/sysv4.h ++++ gcc-6.3.0/gcc/config/rs6000/sysv4.h +@@ -753,23 +753,42 @@ + #endif + + #ifdef HAVE_LD_PIE +-#define STARTFILE_LINUX_SPEC "\ +-%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \ +-%{mnewlib:ecrti.o%s;:crti.o%s} \ +-%{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s} \ +-" CRTOFFLOADBEGIN ++#define STARTFILE_LINUX_SPEC \ ++ "%{!shared: %{pg|p|profile:gcrt1.o%s;: \ ++ %{" PIE_SPEC ":%{static:rcrt1.o%s;:Scrt1.o%s}} %{" NO_PIE_SPEC ":crt1.o%s}}} \ ++ crti.o%s %{shared:crtbeginS.o%s;: \ ++ %{" PIE_SPEC ":crtbeginS.o%s} \ ++ %{" NO_PIE_SPEC ":%{static:crtbeginT.o%s;:crtbegin.o%s}}} \ ++ %{fvtable-verify=none:%s; \ ++ fvtable-verify=preinit:vtv_start_preinit.o%s; \ ++ fvtable-verify=std:vtv_start.o%s} \ ++ " CRTOFFLOADBEGIN + #else +-#define STARTFILE_LINUX_SPEC "\ +-%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}} \ +-%{mnewlib:ecrti.o%s;:crti.o%s} \ +-%{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s} \ +-" CRTOFFLOADBEGIN ++#define STARTFILE_LINUX_SPEC \ ++ "%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}} \ ++ crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s} \ ++ %{fvtable-verify=none:%s; \ ++ fvtable-verify=preinit:vtv_start_preinit.o%s; \ ++ fvtable-verify=std:vtv_start.o%s} \ ++ " CRTOFFLOADBEGIN + #endif + +-#define ENDFILE_LINUX_SPEC "\ +-%{shared|pie:crtendS.o%s;:crtend.o%s} \ +-%{mnewlib:ecrtn.o%s;:crtn.o%s} \ +-" CRTOFFLOADEND ++#ifdef HAVE_LD_PIE ++#define ENDFILE_LINUX_SPEC \ ++ "%{fvtable-verify=none:%s; \ ++ fvtable-verify=preinit:vtv_end_preinit.o%s; \ ++ fvtable-verify=std:vtv_end.o%s} \ ++ %{shared:crtendS.o%s;: %{" PIE_SPEC ":crtendS.o%s} \ ++ %{" NO_PIE_SPEC ":crtend.o%s}} crtn.o%s \ ++ " CRTOFFLOADEND ++#else ++#define ENDFILE_LINUX_SPEC \ ++ "%{fvtable-verify=none:%s; \ ++ fvtable-verify=preinit:vtv_end_preinit.o%s; \ ++ fvtable-verify=std:vtv_end.o%s} \ ++ %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s \ ++ " CRTOFFLOADEND ++#endif + + #define LINK_START_LINUX_SPEC "" + diff --git a/aports/gcc-armhf/gcc-4.8-build-args.patch b/aports/gcc-armhf/gcc-4.8-build-args.patch new file mode 100644 index 00000000..c27e0096 --- /dev/null +++ b/aports/gcc-armhf/gcc-4.8-build-args.patch @@ -0,0 +1,41 @@ +When cross compiling a target gcc, target flags may be used on the host + +Configure identifies a number of warning flags (WARN_CFLAGS and +WARN_CXXFLAGS) from the $CC value. The cross compiler may be different +from the host compiler and may not support the same set of flags. This +leads to problems such as: + +cc1plus: error: unrecognized command line option "-Wno-narrowing" +cc1plus: error: unrecognized command line option "-Wno-overlength-strings" + +Work around this problem by removing the warning flags from the +BUILD_CXXFLAGS value, in a way similar to the BUILD_CFLAGS. + +Upstream-Status: Pending + +Signed-off-by: Mark Hatle + +Index: gcc-4.8.0/gcc/configure +=================================================================== +--- gcc-4.8.0.orig/gcc/configure ++++ gcc-4.8.0/gcc/configure +@@ -11720,6 +10581,7 @@ STMP_FIXINC=stmp-fixinc + if test x$build != x$host || test "x$coverage_flags" != x + then + BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' ++ BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' + BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)' + fi + +Index: gcc-4.8.0/gcc/configure.ac +=================================================================== +--- gcc-4.8.0.orig/gcc/configure.ac ++++ gcc-4.8.0/gcc/configure.ac +@@ -1901,6 +1901,7 @@ STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_F + if test x$build != x$host || test "x$coverage_flags" != x + then + BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' ++ BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)' + BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)' + fi + diff --git a/aports/gcc-armhf/gcc-4.9-musl-fortify.patch b/aports/gcc-armhf/gcc-4.9-musl-fortify.patch new file mode 100644 index 00000000..daae954c --- /dev/null +++ b/aports/gcc-armhf/gcc-4.9-musl-fortify.patch @@ -0,0 +1,11 @@ +--- gcc-4.9.2/gcc/config/linux.h.orig 2015-03-09 13:27:13.289736710 +0000 ++++ gcc-4.9.2/gcc/config/linux.h 2015-03-09 13:29:32.295625046 +0000 +@@ -146,6 +146,8 @@ + + #ifdef NATIVE_SYSTEM_HEADER_DIR + #define INCLUDE_DEFAULTS_MUSL_NATIVE \ ++ { NATIVE_SYSTEM_HEADER_DIR "/fortify", 0, 0, 0, 1, 2 }, \ ++ { NATIVE_SYSTEM_HEADER_DIR "/fortify", 0, 0, 0, 1, 0 }, \ + { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \ + { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 }, + #else diff --git a/aports/gcc-armhf/gcc-6.1-musl-libssp.patch b/aports/gcc-armhf/gcc-6.1-musl-libssp.patch new file mode 100644 index 00000000..fe5c6143 --- /dev/null +++ b/aports/gcc-armhf/gcc-6.1-musl-libssp.patch @@ -0,0 +1,20 @@ +Author: Timo Teräs + +Alpine musl package provides libssp_nonshared.a. We link to it unconditionally, +as otherwise we get link failures if some objects are -fstack-protector built +and final link happens with -fno-stack-protector. This seems to be the common +case when bootstrapping gcc, the piepatches do not seem to fully fix the +crosstoolchain and bootstrap sequence wrt. stack-protector flag usage. + +--- gcc-6.1.0/gcc/gcc.c.orig ++++ gcc-6.1.0/gcc/gcc.c +@@ -870,8 +870,7 @@ + + #ifndef LINK_SSP_SPEC + #ifdef TARGET_LIBC_PROVIDES_SSP +-#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ +- "|fstack-protector-strong|fstack-protector-explicit:}" ++#define LINK_SSP_SPEC "-lssp_nonshared" + #else + #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ + "|fstack-protector-strong|fstack-protector-explicit" \ diff --git a/aports/gcc-armhf/gcc-pure64.patch b/aports/gcc-armhf/gcc-pure64.patch new file mode 100644 index 00000000..2c350fe5 --- /dev/null +++ b/aports/gcc-armhf/gcc-pure64.patch @@ -0,0 +1,89 @@ +--- ./gcc/config/i386/t-linux64.orig 2013-01-14 16:32:37.000000000 +0000 ++++ ./gcc/config/i386/t-linux64 2013-04-22 06:12:32.984439677 +0000 +@@ -34,6 +34,6 @@ + comma=, + MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) + MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) +-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) +-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) ++MULTILIB_OSDIRNAMES = m64=../lib ++MULTILIB_OSDIRNAMES+= m32=../lib32 + MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) +--- ./gcc/config/aarch64/t-aarch64-linux.orig ++++ ./gcc/config/aarch64/t-aarch64-linux +@@ -22,7 +22,7 @@ + LIB1ASMFUNCS = _aarch64_sync_cache_range + + AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) +-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) ++MULTILIB_OSDIRNAMES = mabi.lp64=../lib + MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) + + MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32 +--- ./gcc/config/s390/t-linux64.orig ++++ ./gcc/config/s390/t-linux64 +@@ -7,5 +7,5 @@ + MULTILIB_OPTIONS = m64/m31 + MULTILIB_DIRNAMES = 64 32 +-MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu) +-MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu) ++MULTILIB_OSDIRNAMES = m64=../lib ++MULTILIB_OSDIRNAMES+= m32=../lib32 + +--- ./gcc/config/rs6000/t-linux.orig ++++ ./gcc/config/rs6000/t-linux +@@ -2,7 +2,8 @@ + # or soft-float. + ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float))) + ifneq (,$(findstring powerpc64,$(target))) +-MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu) ++MULTILIB_OSDIRNAMES := m64=../lib ++MULTILIB_OSDIRNAMES += m32=../lib32 + else + ifneq (,$(findstring spe,$(target))) + MULTIARCH_DIRNAME := powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1) +@@ -14,7 +15,8 @@ + MULTIARCH_DIRNAME := $(subst -linux,le-linux,$(MULTIARCH_DIRNAME)) + endif + ifneq (,$(findstring powerpc64le,$(target))) +-MULTILIB_OSDIRNAMES := $(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES)) ++MULTILIB_OSDIRNAMES := m64=../lib ++MULTILIB_OSDIRNAMES += m32=../lib32 + endif + endif + +--- ./gcc/config/rs6000/t-linux64.orig ++++ ./gcc/config/rs6000/t-linux64 +@@ -28,8 +28,8 @@ + MULTILIB_OPTIONS := m64/m32 + MULTILIB_DIRNAMES := 64 32 + MULTILIB_EXTRA_OPTS := +-MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu) +-MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu) ++MULTILIB_OSDIRNAMES := m64=../lib ++MULTILIB_OSDIRNAMES += m32=../lib32 + + rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c + $(COMPILE) $< +--- ./gcc/config/rs6000/t-linux64bele.orig ++++ ./gcc/config/rs6000/t-linux64bele +@@ -2,6 +2,6 @@ + + MULTILIB_OPTIONS += mlittle + MULTILIB_DIRNAMES += le +-MULTILIB_OSDIRNAMES += $(subst =,.mlittle=,$(subst lible32,lib32le,$(subst lible64,lib64le,$(subst lib,lible,$(subst -linux,le-linux,$(MULTILIB_OSDIRNAMES)))))) +-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mlittle%,$(MULTILIB_OSDIRNAMES))) ++MULTILIB_OSDIRNAMES = m64=../lib ++MULTILIB_OSDIRNAMES+= m32=../lib32 + MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN} +--- ./gcc/config/rs6000/t-linux64lebe.orig ++++ ./gcc/config/rs6000/t-linux64lebe +@@ -2,6 +2,6 @@ + + MULTILIB_OPTIONS += mbig + MULTILIB_DIRNAMES += be +-MULTILIB_OSDIRNAMES += $(subst =,.mbig=,$(subst libbe32,lib32be,$(subst libbe64,lib64be,$(subst lib,libbe,$(subst le-linux,-linux,$(MULTILIB_OSDIRNAMES)))))) +-MULTILIB_OSDIRNAMES += $(subst $(if $(findstring 64,$(target)),m64,m32).,,$(filter $(if $(findstring 64,$(target)),m64,m32).mbig%,$(MULTILIB_OSDIRNAMES))) ++MULTILIB_OSDIRNAMES := m64=../lib ++MULTILIB_OSDIRNAMES += m32=../lib32 + MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN} diff --git a/aports/gcc-armhf/libada-cross-shared.patch b/aports/gcc-armhf/libada-cross-shared.patch new file mode 100644 index 00000000..c4e7ae01 --- /dev/null +++ b/aports/gcc-armhf/libada-cross-shared.patch @@ -0,0 +1,22 @@ +--- gcc-4.8.2/libada/configure.ac.orig 2013-01-14 22:15:04.000000000 +0400 ++++ gcc-4.8.2/libada/configure.ac 2014-01-21 06:53:04.254453731 +0400 +@@ -127,7 +127,7 @@ + AC_PROG_LN_S + + # Determine what to build for 'gnatlib' +-if test $build = $target \ ++if true \ + && test ${enable_shared} = yes ; then + # Note that build=target is almost certainly the wrong test; FIXME + default_gnatlib_target="gnatlib-shared" +--- gcc-4.8.2/libada/configure.orig 2013-10-16 11:27:58.000000000 +0400 ++++ gcc-4.8.2/libada/configure 2014-01-21 06:53:26.727581207 +0400 +@@ -2951,7 +2951,7 @@ + + + # Determine what to build for 'gnatlib' +-if test $build = $target \ ++if true \ + && test ${enable_shared} = yes ; then + # Note that build=target is almost certainly the wrong test; FIXME + default_gnatlib_target="gnatlib-shared" diff --git a/aports/gcc-armhf/libgcc-always-build-gcceh.a.patch b/aports/gcc-armhf/libgcc-always-build-gcceh.a.patch new file mode 100644 index 00000000..74ae8973 --- /dev/null +++ b/aports/gcc-armhf/libgcc-always-build-gcceh.a.patch @@ -0,0 +1,39 @@ +Highly inspired by: + http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch + +diff -durN gcc-4.6.0.orig/libgcc/Makefile.in gcc-4.6.0/libgcc/Makefile.in +--- gcc-4.6.0.orig/libgcc/Makefile.in 2011-01-26 05:19:58.000000000 +0100 ++++ gcc-4.6.0/libgcc/Makefile.in 2011-09-12 18:17:12.743718974 +0200 +@@ -772,8 +772,9 @@ + libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT) + endif + ++all: libgcc_eh.a + ifeq ($(enable_shared),yes) +-all: libgcc_eh.a libgcc_s$(SHLIB_EXT) ++all: libgcc_s$(SHLIB_EXT) + ifneq ($(LIBUNWIND),) + all: libunwind$(SHLIB_EXT) + endif +@@ -950,10 +951,6 @@ + install-shared: + $(mkinstalldirs) $(DESTDIR)$(inst_libdir) + +- $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/ +- chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a +- $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a +- + $(subst @multilib_dir@,$(MULTIDIR),$(subst \ + @shlib_base_name@,libgcc_s,$(subst \ + @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL)))) +@@ -968,6 +965,10 @@ + chmod 644 $(DESTDIR)$(inst_libdir)/libgcov.a + $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a + ++ $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/ ++ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a ++ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a ++ + parts="$(INSTALL_PARTS)"; \ + for file in $$parts; do \ + rm -f $(DESTDIR)$(inst_libdir)/$$file; \ diff --git a/aports/gcc-cross-wrappers/APKBUILD b/aports/gcc-cross-wrappers/APKBUILD new file mode 100644 index 00000000..7aeb6967 --- /dev/null +++ b/aports/gcc-cross-wrappers/APKBUILD @@ -0,0 +1,28 @@ +pkgname=gcc-cross-wrappers +pkgver=1 +pkgrel=1 +pkgdesc="GCC wrappers pointing to cross-compilers (for distcc + ccache)" +url="https://github.com/postmarketOS" +arch="noarch" +license="GPL3+" +depends="" +makedepends="" +source="" +options="!check" + +package() { + local _archs="armhf aarch64" + local _bins="c++ cc cpp g++ gcc" + for _arch in $_archs; do + _bindir="$pkgdir/usr/lib/gcc-cross-wrappers/$_arch/bin" + _hostspec="$(arch_to_hostspec $_arch)" + mkdir -p "$_bindir" + for _bin in $_bins; do + { + echo "#!/bin/sh" + echo "${_hostspec}-${_bin} \"\$@\"" + } > $_bindir/$_bin + chmod +x $_bindir/$_bin + done + done +} diff --git a/aports/heimdall/APKBUILD b/aports/heimdall/APKBUILD new file mode 100644 index 00000000..2e09a696 --- /dev/null +++ b/aports/heimdall/APKBUILD @@ -0,0 +1,37 @@ +pkgname=heimdall +pkgver=1.4.1 +pkgrel=4 +pkgdesc="Flasher for Samsung Galaxy S devices" +url="https://github.com/Benjamin-Dobell/Heimdall" +arch="all" +license="MIT" +depends="" +makedepends="libusb-dev" +subpackages="" +source="$pkgname-$pkgver.tar.gz::https://github.com/Benjamin-Dobell/Heimdall/archive/v${pkgver}.tar.gz +heimdall_flash_kernel.sh heimdall_wait_for_device.sh" +options="!check" + +_builddir="$srcdir"/Heimdall-$pkgver +build() { + cd $_builddir + cd libpit/ + ./configure --prefix=/usr + make || return 1 + + cd ../heimdall/ + ./configure --prefix=/usr + make || return 1 +} + +package() { + cd "$_builddir/heimdall" + make PREFIX=/usr DESTDIR="$pkgdir/" install || return 1 + for i in heimdall_flash_kernel.sh heimdall_wait_for_device.sh; do + install -Dm755 "$srcdir"/"$i" "$pkgdir"/usr/bin/"$i" + done +} + +sha512sums="2f1f49b0ad7bd5f4359893359b26024fe0cce84afed3878e42d902eb4dee487a44e351247d57e4af143ad728abd6c664df688246fcf7b96b9f3841cd16594296 heimdall-1.4.1.tar.gz +a75677d4c5559bf8233a48d1b38bf91e4125717a85e1ea6d283d2d1e052c2a96228818a71f8b90adbda049b6d5b5065f7265ffc2e05cafd2ce9717bfc8ac8716 heimdall_flash_kernel.sh +45e742bb3a8c8d0bc6806a4e9f860b04f255cad72a8602c04759178284c66e0a90d3ea22249b5fa69de1dd1d6ecd6221adaa63d611aa20d2a54aa20868e86a9f heimdall_wait_for_device.sh" diff --git a/aports/heimdall/heimdall_flash_kernel.sh b/aports/heimdall/heimdall_flash_kernel.sh new file mode 100644 index 00000000..8da05165 --- /dev/null +++ b/aports/heimdall/heimdall_flash_kernel.sh @@ -0,0 +1,33 @@ +#!/bin/sh +set -e + +usage() +{ + echo "Flash an initramfs file to the recovery partition, and flash a kernel." + echo "The kernel needs to have its own minimal initramfs, that loads the" + echo "real initramfs from the recovery partition (\"isorec\")." + echo "" + echo "Usage: $(basename "$0") " + exit 1 +} + +# Sanity checks +[ "$#" != 2 ] && usage +INITRAMFS="$1" +KERNEL="$2" +for file in "$INITRAMFS" "$KERNEL"; do + [ -e "$file" ] && continue + echo "ERROR: File $file does not exist!" + exit 1 +done + +echo "(1/2) flash initramfs to recovery partition (isorec-style)" +heimdall_wait_for_device.sh +gunzip -c "$INITRAMFS" | lzop > /tmp/initramfs.lzo +heimdall flash --RECOVERY /tmp/initramfs.lzo +rm /tmp/initramfs.lzo + +sleep 20 +echo "(2/2) flash kernel (hit ^C if you only wanted to flash initramfs)" +heimdall_wait_for_device.sh +heimdall flash --KERNEL "$KERNEL" diff --git a/aports/heimdall/heimdall_wait_for_device.sh b/aports/heimdall/heimdall_wait_for_device.sh new file mode 100644 index 00000000..5904c10c --- /dev/null +++ b/aports/heimdall/heimdall_wait_for_device.sh @@ -0,0 +1,7 @@ +#!/bin/sh +# Simple wrapper, that makes heimdall behave more like fastboot + +echo "< wait for any device >" +while ! heimdall detect > /dev/null 2>&1; do + sleep 1 +done diff --git a/aports/hello-world/APKBUILD b/aports/hello-world/APKBUILD new file mode 100644 index 00000000..a3152bf6 --- /dev/null +++ b/aports/hello-world/APKBUILD @@ -0,0 +1,31 @@ +pkgname=hello-world +pkgver=1 +pkgrel=2 +pkgdesc="hello world program to be built in the testsuite" +url="https://en.wikipedia.org/wiki/%22Hello,_World!%22_program" +arch="all" +license="MIT" +depends="" +makedepends="" +subpackages="" +source="main.c Makefile" +options="" + +build() { + cd "$srcdir" + make +} + +check() { + cd "$srcdir" + printf 'hello, world!\n' > expected + ./hello-world > real + diff -q expected real +} + +package() { + install -D -m755 "$srcdir"/hello-world \ + "$pkgdir"/usr/bin/hello-world || return 1 +} +sha512sums="d5ad91600d9be3e53be4cb6e5846b0757786c947b2c0d10f612f67262fc91c148e8d73621623e259ca9dcd5e2c8ec7069cebec44165e203ea8c0133669d3382d main.c +80c32948d3254f5e4f9084d73754824e7d7d7d117770b041a1a13baf056773de265153fe518cc3e735db55b638411aa6fbd0e17b5b674dfc89e69a9391fbd3bb Makefile" diff --git a/aports/hello-world/Makefile b/aports/hello-world/Makefile new file mode 100755 index 00000000..2f699b17 --- /dev/null +++ b/aports/hello-world/Makefile @@ -0,0 +1,5 @@ +hello-world: hello-world.o + $(CC) -o hello-world hello-world.o + +hello-world.o: main.c + $(CC) -o hello-world.o -c main.c diff --git a/aports/hello-world/main.c b/aports/hello-world/main.c new file mode 100644 index 00000000..76bb8fad --- /dev/null +++ b/aports/hello-world/main.c @@ -0,0 +1,7 @@ +#include + +int main() +{ + printf("hello, world!\n"); + return 0; +} diff --git a/aports/linux-lg-mako/APKBUILD b/aports/linux-lg-mako/APKBUILD new file mode 100644 index 00000000..b35f004f --- /dev/null +++ b/aports/linux-lg-mako/APKBUILD @@ -0,0 +1,107 @@ +# APKBUILD based on linux-vanilla aport. Changes: +# - disabled module installation +# - add !check !tracedeps +# - package: just install zimage and kernel.release, because the kernel config +# does not generate modules or dtb files +# - do not create -dev subpackage (makes no sense without module support) +# +# Kernel config based on: arch/arm/configs/lineageos_mako_defconfig +# Changes: +# - enable devtmpfs (needed for udev -> touch support in weston) + +_vendor=lge +_flavor=lg-mako +_hash="1495bfcf93f9e0e896331f29e1850387c31d6714" +_config="config-${_flavor}.armhf" + +pkgname=linux-${_flavor} +pkgver=3.4.0 +case $pkgver in + *.*.*) _kernver=${pkgver%.*};; + *.*) _kernver=$pkgver;; +esac +pkgrel=3 +arch="armhf" +pkgdesc="Nexus 4 kernel from LineageOS" +url="https://github.com/LineageOS/lge-kernel-mako" +depends="postmarketos-mkinitfs" +makedepends="perl sed installkernel bash gmp-dev bc linux-headers elfutils-dev" +options="!strip !check !tracedeps" +install= +source=" + https://github.com/LineageOS/${_vendor}-kernel-mako/archive/${_hash}.zip + $_config + compiler-gcc6.h + gpu-msm-fix-gcc5-compile.patch +" +subpackages="" +license="GPL2" + +_abi_release=${pkgver} +_carch="arm" +HOSTCC="${CC:-gcc}" +HOSTCC="${HOSTCC#${CROSS_COMPILE}}" + +ksrcdir="$srcdir/${_vendor}-kernel-mako-${_hash}" + +prepare() { + local _patch_failed= + cd "$ksrcdir" + + # first apply patches in specified order + for i in $source; do + case $i in + *.patch) + msg "Applying $i..." + if ! patch -s -p1 -N -i "$srcdir"/$i; then + echo $i >>failed + _patch_failed=1 + fi + ;; + esac + done + + if ! [ -z "$_patch_failed" ]; then + error "The following patches failed:" + cat failed + return 1 + fi + + # gcc6 support + cp -v "$srcdir/compiler-gcc6.h" "$ksrcdir/include/linux/" + + mkdir -p "$srcdir"/build + cp "$srcdir"/$_config "$srcdir"/build/.config || return 1 + make -C "$ksrcdir" O="$srcdir"/build ARCH="$_carch" HOSTCC="$HOSTCC" \ + silentoldconfig +} + + + +# this is so we can do: 'abuild menuconfig' to reconfigure kernel +menuconfig() { + cd "$srcdir"/build || return 1 + make ARCH="$_carch" menuconfig + cp .config "$startdir"/$_config +} + +build() { + cd "$srcdir"/build + unset LDFLAGS + make ARCH="$_carch" CC="${CC:-gcc}" \ + KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" \ + || return 1 +} + +package() { + install -Dm644 "$srcdir/build/arch/arm/boot/zImage" \ + "$pkgdir/boot/vmlinuz-$_flavor" + + install -D "$srcdir/build/include/config/kernel.release" \ + "$pkgdir/usr/share/kernel/$_flavor/kernel.release" +} + +sha512sums="5a1636374ea0d2b219de5b501035e8b03935c9cf31a5c1aaa831805318d9ff780b0e13f11c73343c63c74a026c4846215ec7954a1b23740bb690b9723d5d9e11 1495bfcf93f9e0e896331f29e1850387c31d6714.zip +091f0a6d604653098e3d06a834fa3d4a9c34cbdb4b742c949950bada118e58cc858dce817e763023fe7ac5dd7ae17930ef7a3de765e5b7d84b1971572dbf37a1 config-lg-mako.armhf +d80980e9474c82ba0ef1a6903b434d8bd1b092c40367ba543e72d2c119301c8b2d05265740e4104ca1ac5d15f6c4aa49e8776cb44264a9a28dc551e0d1850dcc compiler-gcc6.h +7be03a9e78b7ac330a54b1f00509caa0621a95c0c55901878ad757f9dd69cc05ba2c8b5ea987063ae1224f92c4d090d515fa5d369e7755181a4871b0d0f82881 gpu-msm-fix-gcc5-compile.patch" diff --git a/aports/linux-lg-mako/compiler-gcc6.h b/aports/linux-lg-mako/compiler-gcc6.h new file mode 100644 index 00000000..84470631 --- /dev/null +++ b/aports/linux-lg-mako/compiler-gcc6.h @@ -0,0 +1,69 @@ +// SOURCE: +// https://github.com/NextThingCo/CHIP-u-boot/issues/10#issuecomment-287515505 + +#ifndef __LINUX_COMPILER_H +#error "Please don't include directly, include instead." +#endif + +#define __used __attribute__((__used__)) +#define __must_check __attribute__((warn_unused_result)) +#define __compiler_offsetof(a, b) __builtin_offsetof(a, b) + +/* Mark functions as cold. gcc will assume any path leading to a call + to them will be unlikely. This means a lot of manual unlikely()s + are unnecessary now for any paths leading to the usual suspects + like BUG(), printk(), panic() etc. [but let's keep them for now for + older compilers] + + Early snapshots of gcc 4.3 don't support this and we can't detect this + in the preprocessor, but we can live with this because they're unreleased. + Maketime probing would be overkill here. + + gcc also has a __attribute__((__hot__)) to move hot functions into + a special section, but I don't see any sense in this right now in + the kernel context */ +#define __cold __attribute__((__cold__)) + +#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) + +#ifndef __CHECKER__ +# define __compiletime_warning(message) __attribute__((warning(message))) +# define __compiletime_error(message) __attribute__((error(message))) +#endif /* __CHECKER__ */ + +/* + * Mark a position in code as unreachable. This can be used to + * suppress control flow warnings after asm blocks that transfer + * control elsewhere. + * + * Early snapshots of gcc 4.5 don't support this and we can't detect + * this in the preprocessor, but we can live with this because they're + * unreleased. Really, we need to have autoconf for the kernel. + */ +#define unreachable() __builtin_unreachable() + +/* Mark a function definition as prohibited from being cloned. */ +#define __noclone __attribute__((__noclone__)) + +/* + * Tell the optimizer that something else uses this function or variable. + */ +#define __visible __attribute__((externally_visible)) + +/* + * GCC 'asm goto' miscompiles certain code sequences: + * + * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670 + * + * Work it around via a compiler barrier quirk suggested by Jakub Jelinek. + * + * (asm goto is automatically volatile - the naming reflects this.) + */ +#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) + +#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP +#define __HAVE_BUILTIN_BSWAP32__ +#define __HAVE_BUILTIN_BSWAP64__ +#define __HAVE_BUILTIN_BSWAP16__ +#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */ + diff --git a/aports/linux-lg-mako/config-lg-mako.armhf b/aports/linux-lg-mako/config-lg-mako.armhf new file mode 100644 index 00000000..dd985d8d --- /dev/null +++ b/aports/linux-lg-mako/config-lg-mako.armhf @@ -0,0 +1,3439 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm 3.4.0 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +# CONFIG_ARCH_USES_GETTIMEOFFSET is not set +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_KTIME_SCALAR=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_ARM_TICKET_LOCKS=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_VECTORS_BASE=0xffff0000 +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_NEED_MACH_IO_H=y +CONFIG_NEED_MACH_MEMORY_H=y +CONFIG_PHYS_OFFSET=0x80200000 +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_ARM_USE_USER_ACCESSIBLE_TIMERS=y +CONFIG_ARM_USER_ACCESSIBLE_TIMER_BASE=0xfffef000 +# CONFIG_ARCH_RANDOM is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_HAVE_IRQ_WORK=y +CONFIG_IRQ_WORK=y + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +CONFIG_LOCALVERSION="-lineageos" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +# CONFIG_SYSVIPC is not set +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_FHANDLE is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y +CONFIG_AUDIT_TREE=y +# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_IRQ_DOMAIN=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set + +# +# RCU Subsystem +# +CONFIG_TREE_PREEMPT_RCU=y +CONFIG_PREEMPT_RCU=y +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_FANOUT_EXACT is not set +CONFIG_RCU_FAST_NO_HZ=y +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_RCU_BOOST is not set +CONFIG_IKCONFIG=y +# CONFIG_IKCONFIG_PROC is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_CGROUPS=y +CONFIG_CGROUP_DEBUG=y +CONFIG_CGROUP_FREEZER=y +# CONFIG_CGROUP_DEVICE is not set +# CONFIG_CPUSETS is not set +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +# CONFIG_CGROUP_MEM_RES_CTLR is not set +# CONFIG_CGROUP_PERF is not set +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +CONFIG_RT_GROUP_SCHED=y +# CONFIG_BLK_CGROUP is not set +# CONFIG_CHECKPOINT_RESTORE is not set +CONFIG_NAMESPACES=y +# CONFIG_UTS_NS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +# CONFIG_NET_NS is not set +# CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_PANIC_TIMEOUT=5 +CONFIG_EXPERT=y +CONFIG_UID16=y +# CONFIG_SYSCTL_SYSCALL is not set +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_EMBEDDED=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_PERF_COUNTERS is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_PROFILING=y +CONFIG_TRACEPOINTS=y +CONFIG_OPROFILE=y +CONFIG_HAVE_OPROFILE=y +# CONFIG_JUMP_LABEL is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +# CONFIG_MODULES is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +# CONFIG_IOSCHED_TEST is not set +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_ROW=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_BFQ=y +CONFIG_CGROUP_BFQIO=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_ROW=y +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_BFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="row" +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +CONFIG_UNINLINE_SPIN_UNLOCK=y +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +# CONFIG_INLINE_READ_UNLOCK is not set +# CONFIG_INLINE_READ_UNLOCK_BH is not set +# CONFIG_INLINE_READ_UNLOCK_IRQ is not set +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +# CONFIG_INLINE_WRITE_UNLOCK is not set +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_BITS_MAX=16 +CONFIG_ARCH_MMAP_RND_BITS=8 +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CNS3XXX is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_PRIMA2 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_MXS is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_LPC32XX is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_PICOXCELL is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +CONFIG_ARCH_MSM=y +# CONFIG_ARCH_SHMOBILE is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C24XX is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_NOMADIK is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_VT8500 is not set +# CONFIG_ARCH_ZYNQ is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_KEYBOARD_GPIO_POLLED is not set + +# +# MSM SoC Type +# +# CONFIG_ARCH_MSM7X01A is not set +# CONFIG_ARCH_MSM7X25 is not set +# CONFIG_ARCH_MSM7X27 is not set +# CONFIG_ARCH_MSM7X30 is not set +# CONFIG_ARCH_QSD8X50 is not set +# CONFIG_ARCH_MSM8X60 is not set +CONFIG_ARCH_MSM8960=y +# CONFIG_ARCH_MSM8930 is not set +CONFIG_ARCH_APQ8064=y +# CONFIG_ARCH_MSM8974 is not set +# CONFIG_ARCH_MPQ8092 is not set +# CONFIG_ARCH_MSM8226 is not set +# CONFIG_ARCH_FSM9XXX is not set +# CONFIG_ARCH_MSM9615 is not set +# CONFIG_ARCH_MSM8625 is not set +# CONFIG_ARCH_MSM9625 is not set +CONFIG_MSM_SOC_REV_NONE=y +# CONFIG_MSM_SOC_REV_A is not set +CONFIG_MSM_KRAIT_TBB_ABORT_HANDLER=y +CONFIG_ARCH_MSM_KRAIT=y +CONFIG_MSM_SMP=y +CONFIG_ARCH_MSM_KRAITMP=y +CONFIG_MSM_KRAIT_WFE_FIXUP=y +CONFIG_MSM_RPM=y +# CONFIG_MSM_RPM_SMD is not set +CONFIG_MSM_MPM=y +CONFIG_MSM_XO=y +CONFIG_MSM_REMOTE_SPINLOCK_SFPB=y + +# +# MSM Board Selection +# +# CONFIG_MACH_MSM8960_CDP is not set +# CONFIG_MACH_MSM8960_MTP is not set +# CONFIG_MACH_MSM8960_FLUID is not set +# CONFIG_MACH_MSM8960_LIQUID is not set +# CONFIG_MACH_APQ8064_CDP is not set +# CONFIG_MACH_APQ8064_MTP is not set +# CONFIG_MACH_APQ8064_LIQUID is not set +# CONFIG_MACH_MPQ8064_CDP is not set +# CONFIG_MACH_MPQ8064_HRD is not set +# CONFIG_MACH_MPQ8064_DTV is not set +CONFIG_MACH_MSM_DUMMY=y +CONFIG_MACH_LGE=y + +# +# LGE Board Selection +# +CONFIG_BOARD_HEADER_FILE="mach/lge/board_mako.h" +CONFIG_MACH_APQ8064_MAKO=y +# CONFIG_MACH_LGE_DUMMY is not set + +# +# LGE Specific Patches +# +CONFIG_LGE_QFPROM_INTERFACE=y +CONFIG_UPDATE_LCDC_LUT=y +CONFIG_LCD_KCAL=y +CONFIG_EARJACK_DEBUGGER=y +# CONFIG_LGE_CRASH_HANDLER is not set + +# +# ASUSTek Board Selection +# +# CONFIG_MACH_APQ8064_FLO is not set +# CONFIG_MACH_APQ8064_DEB is not set +# CONFIG_MACH_ASUSTEK_DUMMY is not set + +# +# ASUSTek Specific Feature +# +# CONFIG_MSM_STACKED_MEMORY is not set +CONFIG_KERNEL_MSM_CONTIG_MEM_REGION=y +CONFIG_MSM_AMSS_VERSION=6225 +# CONFIG_MSM_AMSS_VERSION_6210 is not set +# CONFIG_MSM_AMSS_VERSION_6220 is not set +CONFIG_MSM_AMSS_VERSION_6225=y +CONFIG_MSM7X00A_USE_GP_TIMER=y +# CONFIG_MSM7X00A_USE_DG_TIMER is not set +CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE_SUSPEND=y +# CONFIG_MSM7X00A_SLEEP_MODE_POWER_COLLAPSE is not set +# CONFIG_MSM7X00A_SLEEP_MODE_APPS_SLEEP is not set +# CONFIG_MSM7X00A_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set +# CONFIG_MSM7X00A_SLEEP_WAIT_FOR_INTERRUPT is not set +CONFIG_MSM7X00A_SLEEP_MODE=0 +# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE_SUSPEND is not set +CONFIG_MSM7X00A_IDLE_SLEEP_MODE_POWER_COLLAPSE=y +# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_APPS_SLEEP is not set +# CONFIG_MSM7X00A_IDLE_SLEEP_MODE_RAMP_DOWN_AND_WAIT_FOR_INTERRUPT is not set +# CONFIG_MSM7X00A_IDLE_SLEEP_WAIT_FOR_INTERRUPT is not set +CONFIG_MSM7X00A_IDLE_SLEEP_MODE=1 +CONFIG_MSM7X00A_IDLE_SLEEP_MIN_TIME=20000000 +CONFIG_MSM7X00A_IDLE_SPIN_TIME=80000 +CONFIG_MSM_IDLE_STATS=y +CONFIG_MSM_IDLE_STATS_FIRST_BUCKET=62500 +CONFIG_MSM_IDLE_STATS_BUCKET_SHIFT=2 +CONFIG_MSM_IDLE_STATS_BUCKET_COUNT=10 +CONFIG_MSM_SUSPEND_STATS_FIRST_BUCKET=1000000000 +CONFIG_CPU_HAS_L2_PMU=y +# CONFIG_HTC_HEADSET is not set +# CONFIG_HTC_PWRSINK is not set +# CONFIG_MSM_FIQ_SUPPORT is not set +# CONFIG_MSM_SERIAL_DEBUGGER is not set +# CONFIG_MSM_PROC_COMM is not set +CONFIG_MSM_SMD=y +# CONFIG_MSM_SMD_PKG3 is not set +CONFIG_MSM_SMD_PKG4=y +CONFIG_MSM_SMD_DEBUG=y +CONFIG_MSM_BAM_DMUX=y +CONFIG_MSM_N_WAY_SMD=y +CONFIG_MSM_N_WAY_SMSM=y +# CONFIG_MSM_RESET_MODEM is not set +CONFIG_MSM_SMD_LOGGING=y +# CONFIG_MSM_IPC_LOGGING is not set +CONFIG_MSM_SMD_NMEA=y +# CONFIG_MSM_HSIC_TTY is not set +CONFIG_MSM_SMD_TTY=y +CONFIG_MSM_SMD_QMI=y +CONFIG_MSM_SMD_PKT=y +CONFIG_MSM_DSPS=y +# CONFIG_MSM_ONCRPCROUTER is not set +CONFIG_MSM_IPC_ROUTER=y +CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y +# CONFIG_MSM_IPC_ROUTER_SECURITY is not set +# CONFIG_MSM_DALRPC is not set +# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set +CONFIG_MSM_AVS_HW=y +# CONFIG_MSM_HW3D is not set +CONFIG_AMSS_7X25_VERSION_2009=y +# CONFIG_AMSS_7X25_VERSION_2008 is not set +CONFIG_RTAC=y +# CONFIG_MSM_VREG_SWITCH_INVERTED is not set +# CONFIG_MSM_DMA_TEST is not set +# CONFIG_WIFI_CONTROL_FUNC is not set +CONFIG_MSM_SLEEP_TIME_OVERRIDE=y +# CONFIG_MSM_MEMORY_LOW_POWER_MODE is not set +CONFIG_MSM_PM_TIMEOUT_HALT=y +# CONFIG_MSM_PM_TIMEOUT_RESET_MODEM is not set +# CONFIG_MSM_PM_TIMEOUT_RESET_CHIP is not set +CONFIG_MSM_IDLE_WAIT_ON_MODEM=0 +CONFIG_MSM_RPM_REGULATOR=y +CONFIG_MSM_SUBSYSTEM_RESTART=y +# CONFIG_MSM_SYSMON_COMM is not set +CONFIG_MSM_PIL=y +# CONFIG_MSM_PIL_MODEM is not set +# CONFIG_MSM_PIL_QDSP6V3 is not set +CONFIG_MSM_PIL_QDSP6V4=y +# CONFIG_MSM_PIL_LPASS_QDSP6V5 is not set +# CONFIG_MSM_PIL_MSS_QDSP6V5 is not set +CONFIG_MSM_PIL_RIVA=y +CONFIG_MSM_PIL_TZAPPS=y +CONFIG_MSM_PIL_DSPS=y +CONFIG_MSM_PIL_VIDC=y +# CONFIG_MSM_PIL_VENUS is not set +CONFIG_MSM_PIL_GSS=y +# CONFIG_MSM_PIL_PRONTO is not set +CONFIG_MSM_SCM=y +CONFIG_MSM_MODEM_8960=y +CONFIG_MSM_LPASS_8960=y +CONFIG_MSM_WCNSS_SSR_8960=y +CONFIG_MSM_GSS_SSR_8064=y +# CONFIG_MSM_BUSPM_DEV is not set +CONFIG_MSM_TZ_LOG=y +CONFIG_MSM_RPM_LOG=y +CONFIG_MSM_RPM_STATS_LOG=y +# CONFIG_MSM_RPM_RBCPR_STATS_LOG is not set +CONFIG_MSM_DIRECT_SCLK_ACCESS=y +CONFIG_IOMMU_API=y +CONFIG_MSM_GPIOMUX=y +CONFIG_MSM_NATIVE_RESTART=y +CONFIG_MSM_PM8X60=y +CONFIG_MSM_EVENT_TIMER=y +CONFIG_MSM_BUS_SCALING=y +CONFIG_MSM_BUS_RPM_MULTI_TIER_ENABLED=y +CONFIG_MSM_WATCHDOG=y +# CONFIG_MSM_WATCHDOG_V2 is not set +# CONFIG_MSM_MEMORY_DUMP is not set +CONFIG_MSM_DLOAD_MODE=y +# CONFIG_MSM_JTAG is not set +# CONFIG_MSM_JTAG_MM is not set +# CONFIG_MSM_SLEEP_STATS_DEVICE is not set +CONFIG_MSM_RUN_QUEUE_STATS=y +# CONFIG_MSM_STANDALONE_POWER_COLLAPSE is not set +# CONFIG_MSM_GSBI9_UART is not set +CONFIG_MSM_SHOW_RESUME_IRQ=y +# CONFIG_MSM_FAKE_BATTERY is not set +CONFIG_MSM_QDSP6_APR=y +# CONFIG_MSM_QDSP6_APRV2 is not set +CONFIG_MSM_QDSP6_CODECS=y +# CONFIG_MSM_QDSP6V2_CODECS is not set +CONFIG_MSM_AUDIO_QDSP6=y +# CONFIG_MSM_AUDIO_QDSP6V2 is not set +CONFIG_MSM_ADSP_LOADER=y +CONFIG_MSM_ULTRASOUND=y +# CONFIG_MSM_SPM_V1 is not set +CONFIG_MSM_SPM_V2=y +CONFIG_MSM_L2_SPM=y +CONFIG_MSM_MULTIMEDIA_USE_ION=y +# CONFIG_MSM_OCMEM is not set +# CONFIG_MSM_RTB is not set +# CONFIG_MSM_EBI_ERP is not set +CONFIG_MSM_CACHE_ERP=y +CONFIG_MSM_L1_ERR_PANIC=y +# CONFIG_MSM_L1_RECOV_ERR_PANIC is not set +# CONFIG_MSM_L1_ERR_LOG is not set +# CONFIG_MSM_L2_ERP_PRINT_ACCESS_ERRORS is not set +# CONFIG_MSM_L2_ERP_1BIT_PANIC is not set +CONFIG_MSM_L2_ERP_2BIT_PANIC=y +CONFIG_MSM_DCVS=y +# CONFIG_MSM_CPR is not set +CONFIG_HAVE_ARCH_HAS_CURRENT_TIMER=y +CONFIG_MSM_CACHE_DUMP=y +CONFIG_MSM_CACHE_DUMP_ON_PANIC=y +CONFIG_MSM_HSIC_SYSMON=y +# CONFIG_MSM_HSIC_SYSMON_TEST is not set +CONFIG_MSM_CPU_PWRCTL=y +CONFIG_MSM_USE_USER_ACCESSIBLE_TIMERS=y +CONFIG_HAS_MACH_MEMUTILS=y + +# +# System MMU +# + +# +# Processor Type +# +CONFIG_CPU_V7=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_ARM_THUMB=y +# CONFIG_ARM_THUMBEE is not set +CONFIG_SWP_EMULATE=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_KUSER_HELPERS=y +# CONFIG_CACHE_L2X0 is not set +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_STRICT_MEMORY_RWX=y +CONFIG_ARM_NR_BANKS=8 +# CONFIG_RESERVE_FIRST_PAGE is not set +CONFIG_CPU_HAS_PMU=y +CONFIG_MULTI_IRQ_HANDLER=y +# CONFIG_ARM_ERRATA_430973 is not set +# CONFIG_ARM_ERRATA_458693 is not set +# CONFIG_ARM_ERRATA_460075 is not set +# CONFIG_ARM_ERRATA_742230 is not set +# CONFIG_ARM_ERRATA_742231 is not set +# CONFIG_ARM_ERRATA_643719 is not set +# CONFIG_ARM_ERRATA_720789 is not set +# CONFIG_ARM_ERRATA_743622 is not set +# CONFIG_ARM_ERRATA_751472 is not set +# CONFIG_ARM_ERRATA_754322 is not set +# CONFIG_ARM_ERRATA_754327 is not set +# CONFIG_ARM_ERRATA_764369 is not set +# CONFIG_KSAPI is not set +# CONFIG_ARM_ERRATA_798181 is not set +CONFIG_ARM_GIC=y +# CONFIG_FIQ_DEBUGGER is not set + +# +# Bus support +# +# CONFIG_PCI is not set +# CONFIG_PCI_SYSCALL is not set +CONFIG_ARCH_SUPPORTS_MSI=y +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_HAVE_SMP=y +CONFIG_SMP=y +# CONFIG_SMP_ON_UP is not set +CONFIG_ARM_CPU_TOPOLOGY=y +CONFIG_SCHED_MC=y +# CONFIG_SCHED_SMT is not set +CONFIG_HAVE_ARM_SCU=y +# CONFIG_ARM_ARCH_TIMER is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_NR_CPUS=4 +CONFIG_HOTPLUG_CPU=y +CONFIG_LOCAL_TIMERS=y +CONFIG_ARCH_NR_GPIO=0 +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y +CONFIG_HZ=100 +# CONFIG_THUMB2_KERNEL is not set +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HIGHMEM=y +# CONFIG_HIGHPTE is not set +CONFIG_HW_PERF_EVENTS=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_CLEANCACHE=y +CONFIG_USE_USER_ACCESSIBLE_TIMERS=y +# CONFIG_ARCH_MEMORY_PROBE is not set +# CONFIG_ARCH_MEMORY_REMOVE is not set +# CONFIG_ENABLE_DMM is not set +CONFIG_DONT_MAP_HOLE_AFTER_MEMBANK0=y +# CONFIG_ENABLE_VMALLOC_SAVING is not set +# CONFIG_NO_VM_RECLAIM is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_UACCESS_WITH_MEMCPY is not set +CONFIG_SECCOMP=y +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +# CONFIG_ARM_FLUSH_CONSOLE_ON_RESTART is not set +CONFIG_CP_ACCESS=y + +# +# Boot options +# +# CONFIG_USE_OF is not set +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_CMDLINE="" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +# CONFIG_AUTO_ZRELADDR is not set + +# +# CPU Power Management +# + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +# CONFIG_CPU_FREQ_LIMIT 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_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set + +# +# ARM CPU frequency scaling drivers +# +# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set +# CONFIG_ARM_EXYNOS4X12_CPUFREQ is not set +# CONFIG_ARM_EXYNOS5250_CPUFREQ is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_FREQ_MSM=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_NEON=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_HAVE_AOUT=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_HAS_WAKELOCK=y +CONFIG_HAS_EARLYSUSPEND=y +CONFIG_WAKELOCK=y +CONFIG_WAKELOCK_STAT=y +CONFIG_USER_WAKELOCK=y +CONFIG_EARLYSUSPEND=y +# CONFIG_NO_USER_SPACE_SCREEN_ACCESS_CONTROL is not set +# CONFIG_CONSOLE_EARLYSUSPEND is not set +CONFIG_FB_EARLYSUSPEND=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +# CONFIG_APM_EMULATION is not set +CONFIG_PM_CLK=y +CONFIG_CPU_PM=y +# CONFIG_SUSPEND_TIME is not set +CONFIG_DEDUCE_WAKEUP_REASONS=y +CONFIG_PARTIALRESUME=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_UNIX=y +# CONFIG_UNIX_DIAG is not set +CONFIG_XFRM=y +CONFIG_XFRM_USER=y +CONFIG_XFRM_SUB_POLICY=y +CONFIG_XFRM_MIGRATE=y +CONFIG_XFRM_STATISTICS=y +CONFIG_XFRM_IPCOMP=y +CONFIG_NET_KEY=y +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_MULTIPLE_TABLES=y +# CONFIG_IP_ROUTE_MULTIPATH is not set +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +CONFIG_INET_AH=y +CONFIG_INET_ESP=y +CONFIG_INET_IPCOMP=y +CONFIG_INET_XFRM_TUNNEL=y +CONFIG_INET_TUNNEL=y +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_INET_UDP_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_INET6_XFRM_TUNNEL=y +CONFIG_INET6_TUNNEL=y +CONFIG_INET6_XFRM_MODE_TRANSPORT=y +CONFIG_INET6_XFRM_MODE_TUNNEL=y +CONFIG_INET6_XFRM_MODE_BEET=y +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +CONFIG_IPV6_SIT=y +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_TUNNEL is not set +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +# CONFIG_IPV6_MROUTE is not set +# CONFIG_NETLABEL is not set +CONFIG_ANDROID_PARANOID_NETWORK=y +CONFIG_NET_ACTIVITY_STATS=y +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=y +# CONFIG_NETFILTER_NETLINK_ACCT is not set +CONFIG_NETFILTER_NETLINK_QUEUE=y +CONFIG_NETFILTER_NETLINK_LOG=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_PROCFS=y +CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_TIMEOUT is not set +# CONFIG_NF_CONNTRACK_TIMESTAMP is not set +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_GRE=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +CONFIG_NF_CONNTRACK_AMANDA=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_CONNTRACK_H323=y +CONFIG_NF_CONNTRACK_IRC=y +CONFIG_NF_CONNTRACK_BROADCAST=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=y +# CONFIG_NF_CONNTRACK_SNMP is not set +CONFIG_NF_CONNTRACK_PPTP=y +CONFIG_NF_CONNTRACK_SANE=y +CONFIG_NF_CONNTRACK_SIP=y +CONFIG_NF_CONNTRACK_TFTP=y +CONFIG_NF_CT_NETLINK=y +# CONFIG_NF_CT_NETLINK_TIMEOUT is not set +CONFIG_NETFILTER_TPROXY=y +CONFIG_NETFILTER_XTABLES=y + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=y +CONFIG_NETFILTER_XT_CONNMARK=y + +# +# Xtables targets +# +# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set +# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y +CONFIG_NETFILTER_XT_TARGET_CONNMARK=y +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y +# CONFIG_NETFILTER_XT_TARGET_CT is not set +# CONFIG_NETFILTER_XT_TARGET_DSCP is not set +# CONFIG_NETFILTER_XT_TARGET_HL is not set +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y +# CONFIG_NETFILTER_XT_TARGET_LED is not set +# CONFIG_NETFILTER_XT_TARGET_LOG is not set +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_TARGET_NFLOG=y +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set +# CONFIG_NETFILTER_XT_TARGET_TEE is not set +CONFIG_NETFILTER_XT_TARGET_TPROXY=y +CONFIG_NETFILTER_XT_TARGET_TRACE=y +CONFIG_NETFILTER_XT_TARGET_SECMARK=y +CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set + +# +# Xtables matches +# +# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set +# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y +CONFIG_NETFILTER_XT_MATCH_CONNMARK=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +# CONFIG_NETFILTER_XT_MATCH_CPU is not set +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set +# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set +CONFIG_NETFILTER_XT_MATCH_ECN=y +# CONFIG_NETFILTER_XT_MATCH_ESP is not set +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y +CONFIG_NETFILTER_XT_MATCH_HELPER=y +CONFIG_NETFILTER_XT_MATCH_HL=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_LENGTH=y +CONFIG_NETFILTER_XT_MATCH_LIMIT=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set +# CONFIG_NETFILTER_XT_MATCH_OSF is not set +# CONFIG_NETFILTER_XT_MATCH_OWNER is not set +CONFIG_NETFILTER_XT_MATCH_POLICY=y +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y +CONFIG_NETFILTER_XT_MATCH_QTAGUID=y +CONFIG_NETFILTER_XT_MATCH_QUOTA=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set +# CONFIG_NETFILTER_XT_MATCH_REALM is not set +# CONFIG_NETFILTER_XT_MATCH_RECENT is not set +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set +CONFIG_NETFILTER_XT_MATCH_TIME=y +CONFIG_NETFILTER_XT_MATCH_U32=y +# CONFIG_IP_SET is not set +# CONFIG_IP_VS is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +# CONFIG_IP_NF_QUEUE is not set +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=y +CONFIG_IP_NF_MATCH_ECN=y +CONFIG_IP_NF_MATCH_RPFILTER=y +CONFIG_IP_NF_MATCH_TTL=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_TARGET_REJECT_SKERR=y +# CONFIG_IP_NF_TARGET_ULOG is not set +CONFIG_NF_NAT=y +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_NF_NAT_PROTO_DCCP=y +CONFIG_NF_NAT_PROTO_GRE=y +CONFIG_NF_NAT_PROTO_UDPLITE=y +CONFIG_NF_NAT_PROTO_SCTP=y +CONFIG_NF_NAT_FTP=y +CONFIG_NF_NAT_IRC=y +CONFIG_NF_NAT_TFTP=y +CONFIG_NF_NAT_AMANDA=y +CONFIG_NF_NAT_PPTP=y +CONFIG_NF_NAT_H323=y +CONFIG_NF_NAT_SIP=y +CONFIG_IP_NF_MANGLE=y +# CONFIG_IP_NF_TARGET_CLUSTERIP is not set +# CONFIG_IP_NF_TARGET_ECN is not set +# CONFIG_IP_NF_TARGET_TTL is not set +CONFIG_IP_NF_RAW=y +CONFIG_IP_NF_SECURITY=y +CONFIG_IP_NF_ARPTABLES=y +CONFIG_IP_NF_ARPFILTER=y +CONFIG_IP_NF_ARP_MANGLE=y + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV6=y +CONFIG_NF_CONNTRACK_IPV6=y +# CONFIG_IP6_NF_QUEUE is not set +CONFIG_IP6_NF_IPTABLES=y +# CONFIG_IP6_NF_MATCH_AH is not set +# CONFIG_IP6_NF_MATCH_EUI64 is not set +# CONFIG_IP6_NF_MATCH_FRAG is not set +# CONFIG_IP6_NF_MATCH_OPTS is not set +# CONFIG_IP6_NF_MATCH_HL is not set +# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set +# CONFIG_IP6_NF_MATCH_MH is not set +CONFIG_IP6_NF_MATCH_RPFILTER=y +# CONFIG_IP6_NF_MATCH_RT is not set +# CONFIG_IP6_NF_TARGET_HL is not set +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_TARGET_REJECT_SKERR=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +# CONFIG_IP6_NF_SECURITY is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +CONFIG_L2TP=y +# CONFIG_L2TP_DEBUGFS is not set +# CONFIG_L2TP_V3 is not set +# CONFIG_BRIDGE is not set +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_PHONET is not set +# CONFIG_IEEE802154 is not set +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +# CONFIG_NET_SCH_CBQ is not set +CONFIG_NET_SCH_HTB=y +# CONFIG_NET_SCH_HFSC is not set +CONFIG_NET_SCH_PRIO=y +# CONFIG_NET_SCH_MULTIQ is not set +# CONFIG_NET_SCH_RED is not set +# CONFIG_NET_SCH_SFB is not set +# CONFIG_NET_SCH_SFQ is not set +# CONFIG_NET_SCH_TEQL is not set +# CONFIG_NET_SCH_TBF is not set +# CONFIG_NET_SCH_GRED is not set +# CONFIG_NET_SCH_DSMARK is not set +# CONFIG_NET_SCH_NETEM is not set +# CONFIG_NET_SCH_DRR is not set +# CONFIG_NET_SCH_MQPRIO is not set +# CONFIG_NET_SCH_CHOKE is not set +# CONFIG_NET_SCH_QFQ is not set +# CONFIG_NET_SCH_INGRESS is not set +# CONFIG_NET_SCH_PLUG is not set + +# +# Classification +# +CONFIG_NET_CLS=y +# CONFIG_NET_CLS_BASIC is not set +# CONFIG_NET_CLS_TCINDEX is not set +# CONFIG_NET_CLS_ROUTE4 is not set +CONFIG_NET_CLS_FW=y +CONFIG_NET_CLS_U32=y +# CONFIG_CLS_U32_PERF is not set +CONFIG_CLS_U32_MARK=y +# CONFIG_NET_CLS_RSVP is not set +# CONFIG_NET_CLS_RSVP6 is not set +CONFIG_NET_CLS_FLOW=y +# CONFIG_NET_CLS_CGROUP is not set +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=y +CONFIG_NET_EMATCH_NBYTE=y +CONFIG_NET_EMATCH_U32=y +CONFIG_NET_EMATCH_META=y +CONFIG_NET_EMATCH_TEXT=y +CONFIG_NET_CLS_ACT=y +# CONFIG_NET_ACT_POLICE is not set +# CONFIG_NET_ACT_GACT is not set +# CONFIG_NET_ACT_MIRRED is not set +# CONFIG_NET_ACT_IPT is not set +# CONFIG_NET_ACT_NAT is not set +# CONFIG_NET_ACT_PEDIT is not set +# CONFIG_NET_ACT_SIMP is not set +# CONFIG_NET_ACT_SKBEDIT is not set +# CONFIG_NET_ACT_CSUM is not set +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set +# CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +# CONFIG_NETPRIO_CGROUP is not set +CONFIG_BQL=y +CONFIG_HAVE_BPF_JIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_NET_DROP_MONITOR is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +CONFIG_BT=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y + +# +# Bluetooth device drivers +# +# CONFIG_BT_HCISMD is not set +# CONFIG_BT_HCIBTUSB is not set +# CONFIG_BT_HCIBTSDIO is not set +# CONFIG_BT_HCIUART is not set +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_MSM_SLEEP is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_BT_MRVL is not set +# CONFIG_MSM_BT_POWER is not set +# CONFIG_AF_RXRPC is not set +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=y +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +CONFIG_CFG80211_INTERNAL_REGDB=y +# CONFIG_CFG80211_WEXT is not set +# CONFIG_WIRELESS_EXT_SYSFS is not set +# CONFIG_LIB80211 is not set +# CONFIG_CFG80211_ALLOW_RECONNECT is not set +# CONFIG_MAC80211 is not set +# CONFIG_WIMAX is not set +CONFIG_RFKILL=y +CONFIG_RFKILL_PM=y +CONFIG_RFKILL_LEDS=y +# CONFIG_RFKILL_INPUT is not set +# CONFIG_RFKILL_REGULATOR is not set +# CONFIG_RFKILL_GPIO is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +CONFIG_BCM2079X=y + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +# CONFIG_DEVTMPFS_MOUNT is not set +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_GENLOCK=y +CONFIG_GENLOCK_MISCDEVICE=y +CONFIG_SYNC=y +CONFIG_SW_SYNC=y +# CONFIG_SW_SYNC_USER is not set +# CONFIG_CMA is not set +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +# CONFIG_MTD is not set +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MG_DISK is not set +# CONFIG_BLK_DEV_RBD is not set + +# +# Misc devices +# +# CONFIG_SENSORS_LIS3LV02D is not set +# CONFIG_AD525X_DPOT is not set +CONFIG_ANDROID_PMEM=y +# CONFIG_ATMEL_PWM is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_SENSORS_AK8975 is not set +# CONFIG_DS1682 is not set +# CONFIG_TI_DAC7512 is not set +CONFIG_UID_STAT=y +# CONFIG_BMP085 is not set +# CONFIG_USB_SWITCH_FSA9480 is not set +# CONFIG_WL127X_RFKILL is not set +# CONFIG_TSIF is not set +# CONFIG_TSPP is not set +# CONFIG_HAPTIC_ISA1200 is not set +# CONFIG_PMIC8XXX_VIBRATOR is not set +CONFIG_ANDROID_VIBRATOR=y +# CONFIG_TOUCHSENSE_VIBRATOR is not set +# CONFIG_PMIC8XXX_NFC is not set +# CONFIG_PMIC8XXX_UPL is not set +CONFIG_QSEECOM=y +# CONFIG_QFP_FUSE is not set +CONFIG_USB_HSIC_SMSC_HUB=y +# CONFIG_BU52031NVX is not set +CONFIG_UID_CPUTIME=y +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_AT25 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +# CONFIG_EEPROM_93CX6 is not set +# CONFIG_EEPROM_93XX46 is not set +# CONFIG_IWMC3200TOP is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_TI_ST is not set +# CONFIG_SENSORS_LIS3_SPI is not set +# CONFIG_SENSORS_LIS3_I2C is not set + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set +CONFIG_SLIMPORT_ANX7808=y + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_TGT=y +# CONFIG_SCSI_NETLINK is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_SCH=y +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_LIBFC is not set +# CONFIG_LIBFCOE is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_DH is not set +# CONFIG_SCSI_OSD_INITIATOR is not set +# CONFIG_ATA is not set +CONFIG_MD=y +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=y +CONFIG_DM_CRYPT=y +# CONFIG_DM_SNAPSHOT is not set +# CONFIG_DM_THIN_PROVISIONING is not set +# CONFIG_DM_MIRROR is not set +# CONFIG_DM_RAID is not set +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set +# CONFIG_DM_DELAY is not set +# CONFIG_DM_UEVENT is not set +# CONFIG_DM_FLAKEY is not set +CONFIG_DM_VERITY=y +# CONFIG_TARGET_CORE is not set +CONFIG_NETDEVICES=y +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +CONFIG_DUMMY=y +# CONFIG_EQUALIZER is not set +CONFIG_MII=y +# CONFIG_IFB is not set +# CONFIG_NET_TEAM is not set +# CONFIG_MACVLAN is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_TUN=y +# CONFIG_VETH is not set + +# +# CAIF transport drivers +# +CONFIG_ETHERNET=y +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_CALXEDA_XGMAC is not set +# CONFIG_NET_VENDOR_CHELSIO is not set +# CONFIG_NET_VENDOR_CIRRUS is not set +# CONFIG_DM9000 is not set +# CONFIG_DNET is not set +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_MSM_RMNET is not set +CONFIG_MSM_RMNET_BAM=y +CONFIG_MSM_RMNET_SMUX=y +# CONFIG_QFEC is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +# CONFIG_ETHOC is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_PHYLIB is not set +# CONFIG_MICREL_KS8995MA is not set +CONFIG_PPP=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=y +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOE=y +CONFIG_PPPOL2TP=y +CONFIG_PPPOLAC=y +CONFIG_PPPOPNS=y +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y +CONFIG_SLIP=y +CONFIG_SLHC=y +CONFIG_SLIP_COMPRESSED=y +# CONFIG_SLIP_SMART is not set +CONFIG_SLIP_MODE_SLIP6=y + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +CONFIG_USB_USBNET=y +CONFIG_USB_NET_AX8817X=y +CONFIG_USB_NET_CDCETHER=y +# CONFIG_USB_NET_CDC_EEM is not set +CONFIG_USB_NET_CDC_NCM=y +# CONFIG_USB_NET_DM9601 is not set +# CONFIG_USB_NET_SMSC75XX is not set +# CONFIG_USB_NET_SMSC95XX is not set +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=y +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +CONFIG_USB_NET_CDC_SUBSET=y +# CONFIG_USB_ALI_M5632 is not set +# CONFIG_USB_AN2720 is not set +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +# CONFIG_USB_EPSON2888 is not set +# CONFIG_USB_KC2190 is not set +CONFIG_USB_NET_ZAURUS=y +# CONFIG_USB_NET_CX82310_ETH is not set +# CONFIG_USB_NET_KALMIA is not set +# CONFIG_USB_NET_QMI_WWAN is not set +# CONFIG_USB_HSO is not set +# CONFIG_USB_NET_INT51X1 is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_USB_SIERRA_NET is not set +# CONFIG_USB_VL600 is not set +CONFIG_MSM_RMNET_USB=y +CONFIG_WLAN=y +# CONFIG_USB_ZD1201 is not set +# CONFIG_USB_NET_RNDIS_WLAN is not set +# CONFIG_LIBRA_SDIOIF is not set +# CONFIG_ATH6K_LEGACY_EXT is not set +CONFIG_WCNSS_CORE=y +# CONFIG_ATH_COMMON is not set +# CONFIG_BCMDHD is not set +# CONFIG_BRCMFMAC is not set +# CONFIG_HOSTAP is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_MWIFIEX is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +# CONFIG_WAN is not set +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set +# CONFIG_INPUT_SPARSEKMAP is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +CONFIG_INPUT_KEYRESET=y +# CONFIG_INPUT_LID is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_GPIO is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +CONFIG_KEYBOARD_PMIC8XXX=y +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_OMAP4 is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_QCIKBD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_ADS7846 is not set +# CONFIG_TOUCHSCREEN_AD7877 is not set +# CONFIG_TOUCHSCREEN_ATMEL_MAXTOUCH is not set +# CONFIG_TOUCHSCREEN_AD7879 is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set +# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set +# CONFIG_TOUCHSCREEN_BU21013 is not set +# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set +# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set +# CONFIG_TOUCHSCREEN_DYNAPRO is not set +# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set +# CONFIG_TOUCHSCREEN_EETI is not set +# CONFIG_TOUCHSCREEN_EGALAX is not set +# CONFIG_TOUCHSCREEN_FUJITSU is not set +# CONFIG_TOUCHSCREEN_ILI210X is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set +# CONFIG_TOUCHSCREEN_MAX11801 is not set +# CONFIG_TOUCHSCREEN_MCS5000 is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_INEXIO is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_RMI4_I2C is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +# CONFIG_TOUCHSCREEN_PIXCIR is not set +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set +# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set +# CONFIG_TOUCHSCREEN_TSC_SERIO is not set +# CONFIG_TOUCHSCREEN_TSC2005 is not set +# CONFIG_TOUCHSCREEN_TSC2007 is not set +# CONFIG_TOUCHSCREEN_MSM_LEGACY is not set +# CONFIG_TOUCHSCREEN_W90X900 is not set +# CONFIG_TOUCHSCREEN_ST1232 is not set +# CONFIG_TOUCHSCREEN_TPS6507X is not set +# CONFIG_TOUCHSCREEN_CY8C_TS is not set +# CONFIG_TOUCHSCREEN_CYTTSP_I2C_QC is not set +# CONFIG_TOUCHSCREEN_FT5X06 is not set +CONFIG_TOUCHSCREEN_LGE_COMMON=y +CONFIG_TOUCHSCREEN_LGE_SYNAPTICS=y +CONFIG_TOUCH_REG_MAP_TM2000=y +# CONFIG_TOUCHSCREEN_ELAN_TF_3K is not set +CONFIG_TOUCHSCREEN_CHARGER_NOTIFY=y +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_PM8XXX_VIBRATOR is not set +CONFIG_INPUT_PMIC8XXX_PWRKEY=y +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set +# CONFIG_INPUT_ATI_REMOTE2 is not set +CONFIG_INPUT_KEYCHORD=y +# CONFIG_INPUT_KEYSPAN_REMOTE is not set +# CONFIG_INPUT_KXTJ9 is not set +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set +CONFIG_INPUT_UINPUT=y +# CONFIG_INPUT_GPIO is not set +# CONFIG_INPUT_ISA1200_FF_MEMLESS is not set +# CONFIG_INPUT_PCF8574 is not set +# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set +# CONFIG_BOSCH_BMA150 is not set +# CONFIG_STM_LIS3DH is not set +# CONFIG_BMP18X is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_N_GSM is not set +CONFIG_N_SMUX=y +CONFIG_N_SMUX_LOOPBACK=y +CONFIG_SMUX_CTL=y +# CONFIG_TRACE_SINK is not set +CONFIG_DEVMEM=y +CONFIG_DEVKMEM=y + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX3107 is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_MSM is not set +CONFIG_SERIAL_MSM_HS=y +CONFIG_SERIAL_MSM_HSL=y +CONFIG_SERIAL_MSM_HSL_CONSOLE=y +# CONFIG_SERIAL_BCM_BT_LPM is not set +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_IFX6X60 is not set +# CONFIG_SERIAL_MSM_SMD is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set + +# +# Diag Support +# +CONFIG_DIAG_CHAR=y + +# +# DIAG traffic over USB +# +CONFIG_DIAG_OVER_USB=y + +# +# SDIO support for DIAG +# + +# +# HSIC/SMUX support for DIAG +# +CONFIG_DIAGFWD_BRIDGE_CODE=y +# CONFIG_TTY_PRINTK is not set +# CONFIG_HVC_DCC is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_MSM=y +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_DCC_TTY is not set +# CONFIG_RAMOOPS is not set +CONFIG_MSM_ROTATOR=y +CONFIG_MSM_ADSPRPC=y +# CONFIG_MMC_GENERIC_CSDIO is not set +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_MUX is not set +CONFIG_I2C_HELPER_AUTO=y + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_MSM is not set +CONFIG_I2C_QUP=y +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_PXA_PCI is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +# CONFIG_SPI_BITBANG is not set +# CONFIG_SPI_GPIO is not set +# CONFIG_SPI_OC_TINY is not set +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_SPI_XILINX is not set +CONFIG_SPI_QUP=y +# CONFIG_SPI_DESIGNWARE is not set + +# +# SPI Protocol Masters +# +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_SPMI is not set +CONFIG_SLIMBUS=y +CONFIG_SLIMBUS_MSM_CTRL=y +# CONFIG_HSI is not set + +# +# PPS support +# +# CONFIG_PPS is not set + +# +# PPS generators support +# + +# +# PTP clock support +# + +# +# Enable Device Drivers -> PPS to see the PTP clock options. +# +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIOLIB=y +CONFIG_DEBUG_GPIO=y +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO drivers: +# +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_MSM_V1 is not set +CONFIG_GPIO_MSM_V2=y +# CONFIG_GPIO_MSM_V3 is not set +# CONFIG_GPIO_FSM9XXX is not set + +# +# I2C GPIO expanders: +# +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_SX150X is not set +# CONFIG_GPIO_ADP5588 is not set + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +# CONFIG_GPIO_MAX7301 is not set +# CONFIG_GPIO_MCP23S08 is not set +# CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_74X164 is not set + +# +# AC97 GPIO expanders: +# + +# +# MODULbus GPIO expanders: +# +CONFIG_GPIO_PM8XXX=y +CONFIG_GPIO_PM8XXX_MPP=y +# CONFIG_GPIO_PM8XXX_RPC is not set +# CONFIG_W1 is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_CHARGER_SMB345 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_BATTERY_MSM is not set +# CONFIG_BATTERY_MSM8X60 is not set +CONFIG_ISL9519_CHARGER=y +# CONFIG_SMB137B_CHARGER is not set +# CONFIG_SMB349_CHARGER is not set +# CONFIG_BATTERY_BQ27520 is not set +# CONFIG_BATTERY_BQ27541 is not set +CONFIG_PM8921_CHARGER=y +CONFIG_PM8XXX_CCADC=y +# CONFIG_LTC4088_CHARGER is not set +CONFIG_PM8921_BMS=y +# CONFIG_CHARGER_SMB347 is not set +CONFIG_WIRELESS_CHARGER=y +CONFIG_BQ51051B_CHARGER=y +CONFIG_BATTERY_TEMP_CONTROL=y +# CONFIG_BATTERY_ASUS_BQ27541 is not set +CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +# CONFIG_SENSORS_AD7314 is not set +# CONFIG_SENSORS_AD7414 is not set +# CONFIG_SENSORS_AD7418 is not set +# CONFIG_SENSORS_ADCXX is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ADT7411 is not set +# CONFIG_SENSORS_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_ASC7621 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS620 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_F71882FG is not set +# CONFIG_SENSORS_F75375S is not set +# CONFIG_SENSORS_G760A is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_GPIO_FAN is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_JC42 is not set +# CONFIG_SENSORS_LINEAGE is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM70 is not set +# CONFIG_SENSORS_LM73 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set +# CONFIG_SENSORS_LTC4151 is not set +# CONFIG_SENSORS_LTC4215 is not set +# CONFIG_SENSORS_LTC4245 is not set +# CONFIG_SENSORS_LTC4261 is not set +# CONFIG_SENSORS_LM95241 is not set +# CONFIG_SENSORS_LM95245 is not set +# CONFIG_SENSORS_MAX1111 is not set +# CONFIG_SENSORS_MAX16065 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX1668 is not set +# CONFIG_SENSORS_MAX6639 is not set +# CONFIG_SENSORS_MAX6642 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_MCP3021 is not set +# CONFIG_SENSORS_NTC_THERMISTOR is not set +CONFIG_SENSORS_PM8XXX_ADC=y +# CONFIG_SENSORS_EPM_ADC is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_PMBUS is not set +# CONFIG_SENSORS_SHT15 is not set +# CONFIG_SENSORS_SHT21 is not set +# CONFIG_SENSORS_SMM665 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_EMC1403 is not set +# CONFIG_SENSORS_EMC2103 is not set +# CONFIG_SENSORS_EMC6W201 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_SCH56XX_COMMON is not set +# CONFIG_SENSORS_SCH5627 is not set +# CONFIG_SENSORS_SCH5636 is not set +# CONFIG_SENSORS_ADS1015 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_ADS7871 is not set +# CONFIG_SENSORS_AMC6821 is not set +# CONFIG_SENSORS_THMC50 is not set +# CONFIG_SENSORS_TMP102 is not set +# CONFIG_SENSORS_TMP401 is not set +# CONFIG_SENSORS_TMP421 is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83795 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_CAP1106 is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_HWMON=y +# CONFIG_THERMAL_MSM_POPMEM is not set +# CONFIG_THERMAL_TSENS is not set +CONFIG_THERMAL_TSENS8960=y +# CONFIG_THERMAL_TSENS8974 is not set +CONFIG_THERMAL_PM8XXX=y +CONFIG_THERMAL_MONITOR=y +# CONFIG_WATCHDOG is not set +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_HTC_EGPIO is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_PMIC8058 is not set +# CONFIG_PMIC8901 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_S5M_CORE is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_MC13XXX is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_WL1273_CORE is not set +CONFIG_MFD_PM8XXX=y +CONFIG_MFD_PM8921_CORE=y +CONFIG_MFD_PM8821_CORE=y +# CONFIG_MFD_PM8018_CORE is not set +CONFIG_MFD_PM8038_CORE=y +CONFIG_MFD_PM8XXX_IRQ=y +CONFIG_MFD_PM8821_IRQ=y +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_AAT2870_CORE is not set +CONFIG_MFD_PM8XXX_DEBUG=y +CONFIG_MFD_PM8XXX_PWM=y +CONFIG_MFD_PM8XXX_MISC=y +CONFIG_MFD_PM8XXX_SPK=y +CONFIG_MFD_PM8XXX_BATT_ALARM=y +CONFIG_WCD9304_CODEC=y +CONFIG_WCD9310_CODEC=y +# CONFIG_WCD9320_CODEC is not set +# CONFIG_MFD_RC5T583 is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_GPIO is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_TPS6524X is not set +CONFIG_REGULATOR_PM8XXX=y +CONFIG_REGULATOR_MSM_GPIO=y +# CONFIG_REGULATOR_STUB is not set +CONFIG_MEDIA_SUPPORT=y + +# +# Multimedia core support +# +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_DEV=y +CONFIG_VIDEO_V4L2_COMMON=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +# CONFIG_DVB_CORE is not set +CONFIG_VIDEO_MEDIA=y + +# +# Multimedia drivers +# +# CONFIG_RC_CORE is not set + +# +# Qualcomm MSM Camera And Video +# +CONFIG_MSM_CAMERA=y +# CONFIG_MSM_CAMERA_DEBUG is not set +CONFIG_MSM_CAMERA_V4L2=y + +# +# Camera Sensor Selection +# +# CONFIG_IMX074 is not set +# CONFIG_OV5647 is not set +# CONFIG_MT9M114 is not set +CONFIG_IMX111=y +# CONFIG_IMX111_ACT is not set +CONFIG_SEKONIX_LENS_ACT=y +# CONFIG_IMX091 is not set +# CONFIG_IMX091_ACT is not set +CONFIG_IMX119=y +CONFIG_MSM_CAMERA_FLASH_LM3559=y +# CONFIG_IMX074_ACT is not set +# CONFIG_S5K4E1 is not set +# CONFIG_MSM_CAMERA_FLASH_SC628A is not set +# CONFIG_MSM_CAMERA_FLASH_TPS61310 is not set +# CONFIG_IMX072 is not set +# CONFIG_OV2720 is not set +# CONFIG_OV8825 is not set +CONFIG_MSM_CAMERA_FLASH=y +CONFIG_MSM_CAMERA_SENSOR=y +CONFIG_MSM_ACTUATOR=y +CONFIG_MSM_EEPROM=y +# CONFIG_IMX074_EEPROM is not set +# CONFIG_IMX091_EEPROM is not set +CONFIG_MSM_GEMINI=y +# CONFIG_MSM_MERCURY is not set +# CONFIG_MSM_CAM_IRQ_ROUTER is not set +# CONFIG_MSM_CPP is not set +# CONFIG_MSM_CCI is not set +# CONFIG_QUP_EXCLUSIVE_TO_CAMERA is not set +CONFIG_MSM_CSI20_HEADER=y +# CONFIG_MSM_CSI30_HEADER is not set +# CONFIG_MSM_CSIPHY is not set +# CONFIG_MSM_CSID is not set +# CONFIG_MSM_CSI2_REGISTER is not set +# CONFIG_MSM_ISPIF is not set +# CONFIG_S5K3L1YX is not set +# CONFIG_MSM_V4L2_VIDEO_OVERLAY_DEVICE is not set +# CONFIG_OV7692 is not set +# CONFIG_MSMB_CAMERA is not set +CONFIG_MEDIA_TUNER=y +# CONFIG_MEDIA_TUNER_CUSTOMISE is not set +CONFIG_MEDIA_TUNER_SIMPLE=y +CONFIG_MEDIA_TUNER_TDA8290=y +CONFIG_MEDIA_TUNER_TDA827X=y +CONFIG_MEDIA_TUNER_TDA18271=y +CONFIG_MEDIA_TUNER_TDA9887=y +CONFIG_MEDIA_TUNER_TEA5761=y +CONFIG_MEDIA_TUNER_TEA5767=y +CONFIG_MEDIA_TUNER_MT20XX=y +CONFIG_MEDIA_TUNER_XC2028=y +CONFIG_MEDIA_TUNER_XC5000=y +CONFIG_MEDIA_TUNER_XC4000=y +CONFIG_MEDIA_TUNER_MC44S803=y +CONFIG_VIDEO_V4L2=y +CONFIG_VIDEOBUF2_CORE=y +CONFIG_VIDEOBUF2_MEMOPS=y +CONFIG_VIDEOBUF2_DMA_CONTIG=y +CONFIG_VIDEOBUF2_VMALLOC=y +CONFIG_VIDEOBUF2_DMA_SG=y +CONFIG_VIDEOBUF2_MSM_MEM=y +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y + +# +# Audio decoders, processors and mixers +# + +# +# RDS decoders +# + +# +# Video decoders +# + +# +# Video and audio decoders +# + +# +# MPEG video encoders +# + +# +# Video encoders +# + +# +# Camera sensor devices +# + +# +# Flash devices +# + +# +# Video improvement chips +# + +# +# Miscelaneous helper chips +# +# CONFIG_MSM_VCAP is not set +CONFIG_V4L_USB_DRIVERS=y +CONFIG_USB_VIDEO_CLASS=y +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +# CONFIG_USB_GSPCA is not set +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_HDPVR is not set +# CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_USBVISION is not set +# CONFIG_USB_ET61X251 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_PWC is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_USB_ZR364XX is not set +# CONFIG_USB_STKWEBCAM is not set +# CONFIG_USB_S2255 is not set +CONFIG_V4L_PLATFORM_DRIVERS=y +# CONFIG_SOC_CAMERA is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set +CONFIG_MSM_WFD=y +CONFIG_RADIO_ADAPTERS=y +# CONFIG_RADIO_SI470X is not set +# CONFIG_USB_MR800 is not set +# CONFIG_USB_DSBR is not set +# CONFIG_I2C_SI4713 is not set +# CONFIG_RADIO_SI4713 is not set +# CONFIG_USB_KEENE is not set +# CONFIG_RADIO_TEA5764 is not set +# CONFIG_RADIO_SAA7706H is not set +# CONFIG_RADIO_TEF6862 is not set +# CONFIG_RADIO_WL1273 is not set + +# +# Texas Instruments WL128x FM driver (ST based) +# +# CONFIG_RADIO_WL128X is not set +# CONFIG_RADIO_IRIS is not set + +# +# Graphics support +# +# CONFIG_DRM is not set +CONFIG_ION=y +CONFIG_ION_MSM=y +CONFIG_MSM_KGSL=y +# CONFIG_MSM_KGSL_CFF_DUMP is not set +# CONFIG_MSM_KGSL_PSTMRTMDMP_CP_STAT_NO_DETAIL is not set +# CONFIG_MSM_KGSL_PSTMRTMDMP_NO_IB_DUMP is not set +# CONFIG_MSM_KGSL_PSTMRTMDMP_RB_HEX is not set +CONFIG_MSM_KGSL_2D=y +CONFIG_KGSL_PER_PROCESS_PAGE_TABLE=y +CONFIG_MSM_KGSL_PAGE_TABLE_SIZE=0xFFF0000 +CONFIG_MSM_KGSL_PAGE_TABLE_COUNT=24 +CONFIG_MSM_KGSL_MMU_PAGE_FAULT=y +# CONFIG_MSM_KGSL_DISABLE_SHADOW_WRITES is not set +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_IMAGEBLIT=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=y +# CONFIG_FB_WMT_GE_ROPS is not set +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_UVESA is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_TMIO is not set +# CONFIG_FB_SMSCUFX is not set +# CONFIG_FB_UDL is not set +CONFIG_FB_VIRTUAL=y +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_BROADSHEET is not set +CONFIG_MSM_VIDC=y +CONFIG_MSM_VIDC_1080P=y +CONFIG_MSM_VIDC_VENC=y +CONFIG_MSM_VIDC_VDEC=y +# CONFIG_MSM_VIDC_CONTENT_PROTECTION is not set +CONFIG_FB_MSM=y +# CONFIG_FB_MSM_BACKLIGHT is not set +CONFIG_FB_MSM_LOGO=y +CONFIG_FB_MSM_LCDC_HW=y +CONFIG_FB_MSM_TRIPLE_BUFFER=y +CONFIG_FB_MSM_MDP_HW=y +# CONFIG_FB_MSM_MDP22 is not set +# CONFIG_FB_MSM_MDP30 is not set +# CONFIG_FB_MSM_MDP31 is not set +CONFIG_FB_MSM_MDP40=y +# CONFIG_FB_MSM_MDSS is not set +# CONFIG_FB_MSM_MDP_NONE is not set +# CONFIG_FB_MSM_EBI2 is not set +# CONFIG_FB_MSM_MDDI is not set +CONFIG_FB_MSM_MIPI_DSI=y +# CONFIG_FB_MSM_LCDC is not set +# CONFIG_FB_MSM_LVDS is not set +CONFIG_FB_MSM_OVERLAY=y +CONFIG_FB_MSM_DTV=y +# CONFIG_FB_MSM_EXTMDDI is not set +# CONFIG_FB_MSM_TVOUT is not set +# CONFIG_FB_MSM_MDDI_TOSHIBA_COMMON is not set +# CONFIG_FB_MSM_MDDI_TOSHIBA_COMMON_VGA is not set +# CONFIG_FB_MSM_MDDI_ORISE is not set +# CONFIG_FB_MSM_MDDI_QUICKVX is not set +# CONFIG_FB_MSM_MDDI_AUTO_DETECT is not set +# CONFIG_FB_MSM_LCDC_AUTO_DETECT is not set +# CONFIG_FB_MSM_LCDC_PANEL is not set +# CONFIG_FB_MSM_MIPI_DSI_TOSHIBA is not set +CONFIG_FB_MSM_MIPI_DSI_LGIT=y +# CONFIG_FB_MSM_MIPI_DSI_RENESAS is not set +# CONFIG_FB_MSM_MIPI_DSI_SIMULATOR is not set +# CONFIG_FB_MSM_MIPI_DSI_NOVATEK is not set +# CONFIG_FB_MSM_MIPI_DSI_LG is not set +# CONFIG_FB_MSM_MIPI_DSI_JDI is not set +# CONFIG_FB_MSM_MIPI_DSI_ORISE is not set +# CONFIG_FB_MSM_LCDC_ST15_WXGA is not set +# CONFIG_FB_MSM_LCDC_ST15_PANEL is not set +# CONFIG_FB_MSM_LCDC_PRISM_WVGA is not set +# CONFIG_FB_MSM_LCDC_SAMSUNG_WSVGA is not set +# CONFIG_FB_MSM_LCDC_CHIMEI_WXGA is not set +# CONFIG_FB_MSM_LCDC_GORDON_VGA is not set +# CONFIG_FB_MSM_LCDC_TOSHIBA_WVGA_PT is not set +# CONFIG_FB_MSM_LCDC_TOSHIBA_FWVGA_PT is not set +# CONFIG_FB_MSM_LCDC_SHARP_WVGA_PT is not set +# CONFIG_FB_MSM_LCDC_AUO_WVGA is not set +# CONFIG_FB_MSM_LCDC_TRULY_HVGA_IPS3P2335 is not set +# CONFIG_FB_MSM_LCDC_TRULY_HVGA_IPS3P2335_PT_PANEL is not set +# CONFIG_FB_MSM_LCDC_SAMSUNG_OLED_PT is not set +# CONFIG_FB_MSM_LCDC_NT35582_WVGA is not set +# CONFIG_FB_MSM_LCDC_WXGA is not set +CONFIG_FB_MSM_MIPI_LGIT_VIDEO_WXGA_PT=y +# CONFIG_FB_MSM_LVDS_CHIMEI_WXGA is not set +# CONFIG_FB_MSM_MIPI_TOSHIBA_VIDEO_WVGA_PT is not set +# CONFIG_FB_MSM_MIPI_TOSHIBA_VIDEO_WSVGA_PT is not set +# CONFIG_FB_MSM_MIPI_TOSHIBA_VIDEO_WUXGA is not set +# CONFIG_FB_MSM_MIPI_NOVATEK_VIDEO_QHD_PT is not set +# CONFIG_FB_MSM_MIPI_NOVATEK_CMD_QHD_PT is not set +# CONFIG_FB_MSM_MIPI_NOVATEK_1080_HD_PT is not set +# CONFIG_FB_MSM_MIPI_LG_1080_HD_PT is not set +# CONFIG_FB_MSM_MIPI_JDI_1080_HD_PT is not set +# CONFIG_FB_MSM_MIPI_ORISE_VIDEO_720P_PT is not set +# CONFIG_FB_MSM_MIPI_ORISE_CMD_720P_PT is not set +# CONFIG_FB_MSM_MIPI_RENESAS_VIDEO_FWVGA_PT is not set +# CONFIG_FB_MSM_MIPI_RENESAS_CMD_FWVGA_PT is not set +# CONFIG_FB_MSM_MIPI_NT35510_VIDEO_WVGA_PT is not set +# CONFIG_FB_MSM_MIPI_NT35510_CMD_WVGA_PT is not set +# CONFIG_FB_MSM_MIPI_NT35516_VIDEO_QHD_PT is not set +# CONFIG_FB_MSM_MIPI_NT35516_CMD_QHD_PT is not set +# CONFIG_FB_MSM_MIPI_CHIMEI_WXGA is not set +# CONFIG_FB_MSM_MIPI_CHIMEI_WUXGA is not set +# CONFIG_FB_MSM_MIPI_SIMULATOR_VIDEO is not set +CONFIG_FB_MSM_NO_MDP_PIPE_CTRL=y +CONFIG_FB_MSM_OVERLAY0_WRITEBACK=y +CONFIG_FB_MSM_OVERLAY1_WRITEBACK=y +CONFIG_FB_MSM_WRITEBACK_MSM_PANEL=y +# CONFIG_FB_MSM_MIPI_NOVATEK_VIDEO_MODE is not set +# CONFIG_FB_MSM_MIPI_LG_VIDEO_MODE is not set +# CONFIG_FB_MSM_MIPI_JDI_CMD_MODE is not set +CONFIG_FB_MSM_MIPI_LGIT_VIDEO_WXGA_PT_PANEL=y +CONFIG_LGIT_VIDEO_WXGA_CABC=y +CONFIG_FB_MSM_EXT_INTERFACE_COMMON=y +CONFIG_FB_MSM_HDMI_COMMON=y +CONFIG_FB_MSM_HDMI_3D=y +# CONFIG_FB_MSM_HDMI_ADV7520_PANEL is not set +CONFIG_FB_MSM_HDMI_MSM_PANEL=y +# CONFIG_FB_MSM_HDMI_MSM_PANEL_DVI_SUPPORT is not set +# CONFIG_FB_MSM_HDMI_MSM_PANEL_CEC_SUPPORT is not set +# CONFIG_FB_MSM_HDMI_MHL_9244 is not set +# CONFIG_FB_MSM_HDMI_MHL_8334 is not set +# CONFIG_FB_MSM_TVOUT_NTSC_M is not set +# CONFIG_FB_MSM_TVOUT_NTSC_J is not set +# CONFIG_FB_MSM_TVOUT_PAL_BDGHIN is not set +# CONFIG_FB_MSM_TVOUT_PAL_M is not set +# CONFIG_FB_MSM_TVOUT_PAL_N is not set +CONFIG_FB_MSM_TVOUT_NONE=y +# CONFIG_FB_MSM_DEFAULT_DEPTH_RGB565 is not set +# CONFIG_FB_MSM_DEFAULT_DEPTH_ARGB8888 is not set +CONFIG_FB_MSM_DEFAULT_DEPTH_RGBA8888=y +# CONFIG_FB_MSM_EBI2_EPSON_S1D_QVGA_PANEL is not set +# CONFIG_FB_MSM_EBI2_PANEL_DETECT is not set +# CONFIG_EXYNOS_VIDEO is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GENERIC=y +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LP855X is not set +CONFIG_BACKLIGHT_LM3530=y +# CONFIG_BACKLIGHT_LM3533 is not set + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE is not set +# CONFIG_LOGO is not set +CONFIG_SOUND=y +# CONFIG_SOUND_OSS_CORE is not set +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_HWDEP=y +CONFIG_SND_RAWMIDI=y +CONFIG_SND_COMPRESS_OFFLOAD=y +CONFIG_SND_JACK=y +# CONFIG_SND_SEQUENCER is not set +# CONFIG_SND_MIXER_OSS is not set +# CONFIG_SND_PCM_OSS is not set +# CONFIG_SND_HRTIMER is not set +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_RAWMIDI_SEQ is not set +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_DRIVERS=y +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_ALOOP is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set +# CONFIG_SND_ARM is not set +# CONFIG_SND_SPI is not set +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=y +# CONFIG_SND_USB_UA101 is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_6FIRE is not set +CONFIG_SND_SOC=y + +# +# MSM SoC Audio support +# +CONFIG_SND_SOC_MSM_HOSTLESS_PCM=y +CONFIG_SND_SOC_MSM_QDSP6_HDMI_AUDIO=y +CONFIG_SND_SOC_MSM_QDSP6_INTF=y +# CONFIG_SND_SOC_MSM_QDSP6V2_INTF is not set +CONFIG_SND_SOC_VOICE=y +CONFIG_SND_SOC_QDSP6=y +# CONFIG_SND_SOC_QDSP6V2 is not set +CONFIG_SND_SOC_MSM8960=y +CONFIG_SND_SOC_DUAL_AMIC=y +# CONFIG_ASUSTEK_HEADSET is not set +CONFIG_SND_SOC_I2C_AND_SPI=y +# CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_WCD9304=y +CONFIG_SND_SOC_WCD9310=y +CONFIG_SND_SOC_MSM_STUB=y +CONFIG_SND_SOC_TPA2028D=y +# CONFIG_SOUND_PRIME is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +# CONFIG_HIDRAW is not set +CONFIG_UHID=y + +# +# USB Input Devices +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +CONFIG_USB_HIDDEV=y + +# +# Special HID drivers +# +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_CHERRY is not set +# CONFIG_HID_CHICONY is not set +# CONFIG_HID_PRODIKEYS is not set +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_HOLTEK is not set +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LOGITECH is not set +CONFIG_HID_MAGICMOUSE=y +CONFIG_HID_MICROSOFT=y +# CONFIG_HID_MONTEREY is not set +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PETALYNX is not set +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_ROCCAT is not set +# CONFIG_HID_SAITEK is not set +# CONFIG_HID_SAMSUNG is not set +# CONFIG_HID_SONY is not set +# CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TIVO is not set +# CONFIG_HID_TOPSEED is not set +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_USB_ARCH_HAS_OHCI is not set +CONFIG_USB_ARCH_HAS_EHCI=y +# CONFIG_USB_ARCH_HAS_XHCI is not set +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +# CONFIG_USB_DEVICEFS is not set +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_SUSPEND=y +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_DWC3 is not set +# CONFIG_USB_MON is not set +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_EHSET=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_MSM=y +CONFIG_USB_EHCI_MSM_HSIC=y +# CONFIG_USB_EHCI_MSM_HOST4 is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1760_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_EHCI_HCD_PLATFORM is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_PEHCI_HCD is not set +# CONFIG_USB_MUSB_HDRC is not set +# CONFIG_USB_RENESAS_USBHS is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=y +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +CONFIG_USB_STORAGE_DEBUG=y +# CONFIG_USB_STORAGE_REALTEK is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_ONETOUCH=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +# CONFIG_USB_UAS is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB port drivers +# +CONFIG_USB_SERIAL=y +# CONFIG_USB_SERIAL_CONSOLE is not set +# CONFIG_USB_EZUSB is not set +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_ARK3116 is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_CH341 is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP210X is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +# CONFIG_USB_SERIAL_FTDI_SIO is not set +# CONFIG_USB_SERIAL_FUNSOFT is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_F81232 is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_IUU is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_METRO is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_MOTOROLA is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +# CONFIG_USB_SERIAL_PL2303 is not set +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QCAUX is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_HP4X is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIEMENS_MPI is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OPTION is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set +# CONFIG_USB_SERIAL_ZIO is not set +# CONFIG_USB_SERIAL_SSU100 is not set +CONFIG_USB_SERIAL_CSVT=y +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +CONFIG_USB_EHSET_TEST_FIXTURE=y +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +CONFIG_USB_QCOM_DIAG_BRIDGE=y +# CONFIG_USB_QCOM_DIAG_BRIDGE_TEST is not set +CONFIG_USB_QCOM_MDM_BRIDGE=y +CONFIG_USB_QCOM_KS_BRIDGE=y +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +CONFIG_USB_GADGET_DEBUG_FILES=y +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_VBUS_DRAW=500 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 + +# +# USB Peripheral Controller +# +# CONFIG_USB_FUSB300 is not set +# CONFIG_USB_R8A66597 is not set +# CONFIG_USB_MV_UDC is not set +# CONFIG_USB_M66592 is not set +# CONFIG_USB_NET2272 is not set +CONFIG_USB_CI13XXX_MSM=y +# CONFIG_USB_CI13XXX_MSM_HSIC is not set +# CONFIG_USB_DWC3_MSM is not set +# CONFIG_USB_MSM_72K is not set +# CONFIG_USB_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_GADGET_SUPERSPEED is not set +# CONFIG_USB_ZERO is not set +# CONFIG_USB_AUDIO is not set +# CONFIG_USB_ETH is not set +# CONFIG_USB_G_NCM is not set +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FUNCTIONFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_MASS_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_PRINTER is not set +CONFIG_USB_G_ANDROID=y +# CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_USB_G_ACM_MS is not set +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_G_HID is not set +# CONFIG_USB_G_DBGP is not set +# CONFIG_USB_G_WEBCAM is not set +CONFIG_USB_CSW_HACK=y +# CONFIG_USB_MSC_PROFILING is not set +CONFIG_MODEM_SUPPORT=y +CONFIG_RMNET_SMD_CTL_CHANNEL="" +CONFIG_RMNET_SMD_DATA_CHANNEL="" +# CONFIG_USB_ANDROID_CDC_ECM is not set + +# +# OTG and related infrastructure +# +CONFIG_USB_OTG_UTILS=y +# CONFIG_USB_OTG_WAKELOCK is not set +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ULPI is not set +# CONFIG_USB_MSM_OTG_72K is not set +# CONFIG_NOP_USB_XCEIV is not set +CONFIG_USB_MSM_OTG=y +# CONFIG_USB_MSM_ACA is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_PERF_PROFILING=y +CONFIG_MMC_UNSAFE_RESUME=y +CONFIG_MMC_CLKGATE=y +# CONFIG_MMC_EMBEDDED_SDIO is not set +CONFIG_MMC_PARANOID_SD_INIT=y + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=y +# CONFIG_MMC_SECDISCARD is not set +CONFIG_MMC_BLOCK_MINORS=32 +# CONFIG_MMC_BLOCK_BOUNCE is not set +# CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +# CONFIG_MMC_SDHCI is not set +# CONFIG_MMC_SDHCI_PXAV3 is not set +# CONFIG_MMC_SDHCI_PXAV2 is not set +CONFIG_MMC_MSM=y +CONFIG_MMC_MSM_SDC1_SUPPORT=y +CONFIG_MMC_MSM_SDC1_8_BIT_SUPPORT=y +# CONFIG_MMC_MSM_SDC2_SUPPORT is not set +# CONFIG_MMC_MSM_SDC3_SUPPORT is not set +# CONFIG_MMC_MSM_SDC3_POLLING is not set +# CONFIG_MMC_MSM_SDC4_SUPPORT is not set +# CONFIG_MMC_MSM_SDC5_SUPPORT is not set +CONFIG_MMC_MSM_SPS_SUPPORT=y +# CONFIG_MMC_DW is not set +# CONFIG_MMC_VUB300 is not set +# CONFIG_MMC_USHC is not set +# CONFIG_MEMSTICK is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_GPIO is not set +# CONFIG_LEDS_MSM_PDM is not set +# CONFIG_LEDS_PMIC_MPP is not set +# CONFIG_LEDS_MSM_TRICOLOR is not set +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_CPLD is not set +# CONFIG_LEDS_LP5521 is not set +# CONFIG_LEDS_LP5523 is not set +# CONFIG_LEDS_PCA955X is not set +CONFIG_LEDS_PM8XXX=y +# CONFIG_LEDS_PCA9633 is not set +# CONFIG_LEDS_DAC124S085 is not set +# CONFIG_LEDS_REGULATOR is not set +# CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_MSM_PMIC is not set +# CONFIG_LEDS_LT3593 is not set +# CONFIG_LEDS_RENESAS_TPU is not set +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_OT200 is not set +CONFIG_LEDS_TRIGGERS=y + +# +# LED Triggers +# +# CONFIG_LEDS_TRIGGER_TIMER is not set +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set +# CONFIG_LEDS_TRIGGER_GPIO is not set +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set +# CONFIG_LEDS_TRIGGER_SLEEP is not set + +# +# iptables trigger is under Netfilter config (LED target) +# +CONFIG_SWITCH=y +# CONFIG_SWITCH_GPIO is not set +CONFIG_SWITCH_FSA8008=y +# CONFIG_ACCESSIBILITY is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_ALARM=y +CONFIG_RTC_INTF_ALARM_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_M41T93 is not set +# CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1305 is not set +# CONFIG_RTC_DRV_DS1390 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_DS3234 is not set +# CONFIG_RTC_DRV_PCF2123 is not set + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# +# CONFIG_RTC_DRV_MSM is not set +# CONFIG_RTC_DRV_MSM7X00A is not set +CONFIG_RTC_DRV_PM8XXX=y +# CONFIG_DMADEVICES is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set + +# +# Virtio drivers +# +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# +CONFIG_STAGING=y +# CONFIG_USBIP_CORE is not set +# CONFIG_PRISM2_USB is not set +# CONFIG_ECHO is not set +# CONFIG_ASUS_OLED is not set +# CONFIG_R8712U is not set +# CONFIG_RTS5139 is not set +# CONFIG_TRANZPORT is not set +# CONFIG_LINE6_USB is not set +# CONFIG_USB_SERIAL_QUATECH2 is not set +# CONFIG_USB_SERIAL_QUATECH_USB2 is not set +# CONFIG_IIO is not set +CONFIG_QCACHE=y +# CONFIG_ZSMALLOC is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_STAGING_MEDIA is not set + +# +# Android +# +CONFIG_ANDROID=y +CONFIG_ANDROID_BINDER_IPC=y +CONFIG_ASHMEM=y +CONFIG_ANDROID_PERSISTENT_RAM=y +CONFIG_ANDROID_RAM_CONSOLE=y +# CONFIG_PERSISTENT_TRACER is not set +CONFIG_ANDROID_TIMED_OUTPUT=y +CONFIG_ANDROID_TIMED_GPIO=y +CONFIG_ANDROID_LOW_MEMORY_KILLER=y +CONFIG_ANDROID_LOW_MEMORY_KILLER_AUTODETECT_OOM_ADJ_VALUES=y +# CONFIG_ANDROID_SWITCH is not set +# CONFIG_PHONE is not set +# CONFIG_USB_WPAN_HCD is not set + +# +# Qualcomm Atheros Prima WLAN module +# +CONFIG_PRIMA_WLAN=y +# CONFIG_PRIMA_WLAN_BTAMP is not set +CONFIG_PRIMA_WLAN_LFR=y +CONFIG_PRIMA_WLAN_OKC=y +# CONFIG_PRIMA_WLAN_11AC_HIGH_TP is not set +# CONFIG_QCOM_VOWIFI_11R is not set + +# +# Qualcomm MSM specific device drivers +# +CONFIG_MSM_SSBI=y +CONFIG_SPS=y +# CONFIG_USB_BAM is not set +CONFIG_SPS_SUPPORT_BAMDMA=y +# CONFIG_SPS_SUPPORT_NDP_BAM is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y + +# +# Hardware Spinlock drivers +# +CONFIG_IOMMU_SUPPORT=y +CONFIG_MSM_IOMMU=y +CONFIG_MSM_IOMMU_GPU_SYNC=y +CONFIG_IOMMU_PGTABLES_L2=y + +# +# Remoteproc drivers (EXPERIMENTAL) +# + +# +# Rpmsg drivers (EXPERIMENTAL) +# +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_PM_DEVFREQ is not set +# CONFIG_MOBICORE_SUPPORT is not set +# CONFIG_CORESIGHT is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +# CONFIG_EXT2_FS_POSIX_ACL is not set +# CONFIG_EXT2_FS_SECURITY is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set +CONFIG_EXT3_FS_XATTR=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_XATTR=y +# CONFIG_EXT4_FS_POSIX_ACL is not set +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_FS_POSIX_ACL is not set +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_FANOTIFY is not set +# CONFIG_QUOTA is not set +# CONFIG_QUOTACTL is not set +# CONFIG_AUTOFS4_FS is not set +CONFIG_FUSE_FS=y +# CONFIG_CUSE is not set + +# +# Caches +# +# CONFIG_FSCACHE is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +# CONFIG_MSDOS_FS is not set +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_TMPFS_XATTR is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_LOGFS is not set +# CONFIG_CRAMFS is not set +# CONFIG_SQUASHFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +# CONFIG_NFS_FS is not set +# CONFIG_NFSD is not set +# CONFIG_CEPH_FS is not set +CONFIG_CIFS=y +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Kernel hacking +# +CONFIG_PRINTK_TIME=y +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +CONFIG_MAGIC_SYSRQ=y +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_DETECT_HUNG_TASK is not set +# CONFIG_SCHED_DEBUG is not set +# CONFIG_SCHEDSTATS is not set +CONFIG_TIMER_STATS=y +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_CPU_STALL_VERBOSE=y +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_LKDTM is not set +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_EVENT_POWER_TRACING_DEPRECATED=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +CONFIG_TRACING=y +CONFIG_TRACING_SUPPORT=y +CONFIG_FTRACE=y +# CONFIG_FUNCTION_TRACER is not set +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set +# CONFIG_SCHED_TRACER is not set +CONFIG_ENABLE_DEFAULT_TRACERS=y +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_STACK_TRACER is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_CPU_FREQ_SWITCH_PROFILER is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set +# CONFIG_DYNAMIC_DEBUG is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_PANIC_ON_DATA_CORRUPTION is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_STRICT_DEVMEM is not set +# CONFIG_ARM_UNWIND is not set +CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_LL is not set +CONFIG_PID_IN_CONTEXTIDR=y + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y +CONFIG_SECURITY=y +# CONFIG_SECURITYFS is not set +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +# CONFIG_SECURITY_PATH is not set +CONFIG_LSM_MMAP_MIN_ADDR=4096 +CONFIG_SECURITY_SELINUX=y +# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set +# CONFIG_SECURITY_SELINUX_DISABLE is not set +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_SECURITY_YAMA is not set +# CONFIG_IMA is not set +CONFIG_DEFAULT_SECURITY_SELINUX=y +# CONFIG_DEFAULT_SECURITY_DAC is not set +CONFIG_DEFAULT_SECURITY="selinux" +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_PCRYPT is not set +CONFIG_CRYPTO_WORKQUEUE=y +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_AUTHENC=y + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_SEQIV is not set + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_GHASH is not set +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +CONFIG_CRYPTO_SHA1=y +# CONFIG_CRYPTO_SHA1_ARM is not set +CONFIG_CRYPTO_SHA256=y +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_ARM=y +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_ARC4=y +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_TWOFISH_COMMON=y + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_ZLIB is not set +# CONFIG_CRYPTO_LZO is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +# CONFIG_CRYPTO_HW is not set +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC7 is not set +CONFIG_LIBCRC32C=y +# CONFIG_CRC8 is not set +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +# CONFIG_XZ_DEC is not set +# CONFIG_XZ_DEC_BCJ is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_REED_SOLOMON=y +CONFIG_REED_SOLOMON_ENC8=y +CONFIG_REED_SOLOMON_DEC8=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=y +CONFIG_TEXTSEARCH_BM=y +CONFIG_TEXTSEARCH_FSM=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_NLATTR=y +# CONFIG_AVERAGE is not set +# CONFIG_CORDIC is not set diff --git a/aports/linux-lg-mako/gpu-msm-fix-gcc5-compile.patch b/aports/linux-lg-mako/gpu-msm-fix-gcc5-compile.patch new file mode 100644 index 00000000..91b17cd7 --- /dev/null +++ b/aports/linux-lg-mako/gpu-msm-fix-gcc5-compile.patch @@ -0,0 +1,33 @@ +source: +https://github.com/ShinySide/HispAsian_Lollipop_G6/commit/b7756b6fc4bb728722b14d2dfdbaf1dc843812e9 + +* These need to be static to avoid these errors: + +drivers/built-in.o: In function `.LANCHOR1': +msm_iommu_sec.c:(.data+0x9298): undefined reference to `kgsl_iommu_sync_lock' +msm_iommu_sec.c:(.data+0x929c): undefined reference to `kgsl_iommu_sync_unlock' +Makefile:877: recipe for target '.tmp_vmlinux1' failed +make: *** [.tmp_vmlinux1] Error 1 + +Signed-off-by: Chet Kener + +--- a/drivers/gpu/msm/kgsl_iommu.c ++++ b/drivers/gpu/msm/kgsl_iommu.c +@@ -1010,7 +1010,7 @@ static int kgsl_iommu_init_sync_lock(struct kgsl_mmu *mmu) + * + * Return - int - number of commands. + */ +-inline unsigned int kgsl_iommu_sync_lock(struct kgsl_mmu *mmu, ++static inline unsigned int kgsl_iommu_sync_lock(struct kgsl_mmu *mmu, + unsigned int *cmds) + { + struct kgsl_device *device = mmu->device; +@@ -1080,7 +1080,7 @@ inline unsigned int kgsl_iommu_sync_lock(struct kgsl_mmu *mmu, + * + * Return - int - number of commands. + */ +-inline unsigned int kgsl_iommu_sync_unlock(struct kgsl_mmu *mmu, ++static inline unsigned int kgsl_iommu_sync_unlock(struct kgsl_mmu *mmu, + unsigned int *cmds) + { + struct kgsl_device *device = mmu->device; diff --git a/aports/linux-samsung-i9100/APKBUILD b/aports/linux-samsung-i9100/APKBUILD new file mode 100644 index 00000000..7ccbb494 --- /dev/null +++ b/aports/linux-samsung-i9100/APKBUILD @@ -0,0 +1,131 @@ +# Based on linux-lg-mako. Changes: +# - add findutils makedepend (necessary for the initramfs) +# - it builds an initramfs - do not use ramdisk.cpio and +# ramdisk-recovery-device.cpio, in there, always use the +# initramfs from the recovery partition ("isorec") +# - directly boot to that initramfs, not only when the recovery +# key combination was pressed. +# - use Alpine's busybox-static instead of the pre-compiled +# binary, that comes with the source +# +# Kernel config changes, based on: arch/arm/configs/i9100_defconfig +# - enable devtmpfs (needed for udev -> touch support in weston) +# - change compression from CONFIG_KERNEL_LZMA=y to +# CONFIG_KERNEL_GZIP=y (so it works with busybox) + +# This must be built in the target chroot, so busybox.static can +# be used. +_pmb_build_in_native_chroot="false" + +_vendor=samsung +_flavor=samsung-i9100 +_hash="349a3e91e76d17e67ef6213e1f6712e700695631" +_config="config-${_flavor}.armhf" + +pkgname=linux-${_flavor} +pkgver=3.0.101 +case $pkgver in + *.*.*) _kernver=${pkgver%.*};; + *.*) _kernver=$pkgver;; +esac +pkgrel=5 +arch="armhf" +pkgdesc="Samsung Galaxy SII kernel from LineageOS" +url="https://github.com/LineageOS/android_kernel_samsung_smdk4412" +depends="postmarketos-mkinitfs" +makedepends="perl sed installkernel bash gmp-dev bc linux-headers elfutils-dev +findutils busybox-static" +options="!strip !check !tracedeps" +install= +source=" + https://github.com/LineageOS/android_kernel_samsung_smdk4412/archive/${_hash}.zip + $_config + compiler-gcc6.h + init +" +subpackages="" +license="GPL2" + +_abi_release=${pkgver} +_carch="arm" +HOSTCC="${CC:-gcc}" +HOSTCC="${HOSTCC#${CROSS_COMPILE}}" + +ksrcdir="$srcdir/android_kernel_samsung_smdk4412-${_hash}" + +prepare() { + local _patch_failed= + cd "$ksrcdir" + + # first apply patches in specified order + for i in $source; do + case $i in + *.patch) + msg "Applying $i..." + if ! patch -s -p1 -N -i "$srcdir"/$i; then + echo $i >>failed + _patch_failed=1 + fi + ;; + esac + done + + if ! [ -z "$_patch_failed" ]; then + error "The following patches failed:" + cat failed + return 1 + fi + + # Use Alpine's busybox.static instead of the pre-compiled busybox shipped + # with the source + cp -v /bin/busybox.static "$ksrcdir"/usr/galaxys2_initramfs_files/busybox + + # do not use ramdisk.cpio and ramdisk-recovery-device.cpio, always use + # the initramfs from the recovery partition ("isorec"), so we can build + # it later and independently from the kernel. also directly boot that + # partition, not only when the recovery key combination was used. + cd "$ksrcdir"/usr/ + mv galaxys2_initramfs.list galaxys2_initramfs.list_old + grep -v "../../ramdisk" galaxys2_initramfs.list_old > galaxys2_initramfs.list \ + || return 1 + cp -v "$srcdir"/init "$ksrcdir"/usr/galaxys2_initramfs_files/init || return 1 + + # gcc6 support + cp -v "$srcdir/compiler-gcc6.h" "$ksrcdir/include/linux/" || return 1 + + mkdir -p "$srcdir"/build + cp "$srcdir"/$_config "$srcdir"/build/.config || return 1 + make -C "$ksrcdir" O="$srcdir"/build ARCH="$_carch" HOSTCC="$HOSTCC" \ + silentoldconfig +} + + + +# this is so we can do: 'abuild menuconfig' to reconfigure kernel +menuconfig() { + cd "$srcdir"/build || return 1 + make ARCH="$_carch" menuconfig + cp .config "$startdir"/$_config +} + +build() { + cd "$srcdir"/build + unset LDFLAGS + + make ARCH="$_carch" CC="${CC:-gcc}" \ + KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine" \ + || return 1 +} + +package() { + install -Dm644 "$srcdir/build/arch/arm/boot/zImage" \ + "$pkgdir/boot/vmlinuz-$_flavor" + + install -D "$srcdir/build/include/config/kernel.release" \ + "$pkgdir/usr/share/kernel/$_flavor/kernel.release" +} + +sha512sums="28198b1312d66a1af28e112f3252aa9fbbbee8bf373776c556cdbc1c75517072a1eec6522717df0b2bc4f6b5f06b9ce07d2cb29a2de07fc56c4ea072f4d46c82 349a3e91e76d17e67ef6213e1f6712e700695631.zip +7ce82e81ca8d472f01f8097e3a434fe0130d66b16b29ed3d4c5ce94870fb4efe3b5e79523802b078fcdc737e5a1ee6351bc8427d1271a098eab8e9f35b95e6b1 config-samsung-i9100.armhf +d80980e9474c82ba0ef1a6903b434d8bd1b092c40367ba543e72d2c119301c8b2d05265740e4104ca1ac5d15f6c4aa49e8776cb44264a9a28dc551e0d1850dcc compiler-gcc6.h +dd4094d5f4ec281d32f12af88cb22a782e497c8e52f69cf60b73ac7d6171fc95f1f8040b3d0ad2ff3f016d22ac1d91c5b522e5d03203534a76742bc55a082af5 init" diff --git a/aports/linux-samsung-i9100/compiler-gcc6.h b/aports/linux-samsung-i9100/compiler-gcc6.h new file mode 100644 index 00000000..84470631 --- /dev/null +++ b/aports/linux-samsung-i9100/compiler-gcc6.h @@ -0,0 +1,69 @@ +// SOURCE: +// https://github.com/NextThingCo/CHIP-u-boot/issues/10#issuecomment-287515505 + +#ifndef __LINUX_COMPILER_H +#error "Please don't include directly, include instead." +#endif + +#define __used __attribute__((__used__)) +#define __must_check __attribute__((warn_unused_result)) +#define __compiler_offsetof(a, b) __builtin_offsetof(a, b) + +/* Mark functions as cold. gcc will assume any path leading to a call + to them will be unlikely. This means a lot of manual unlikely()s + are unnecessary now for any paths leading to the usual suspects + like BUG(), printk(), panic() etc. [but let's keep them for now for + older compilers] + + Early snapshots of gcc 4.3 don't support this and we can't detect this + in the preprocessor, but we can live with this because they're unreleased. + Maketime probing would be overkill here. + + gcc also has a __attribute__((__hot__)) to move hot functions into + a special section, but I don't see any sense in this right now in + the kernel context */ +#define __cold __attribute__((__cold__)) + +#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__) + +#ifndef __CHECKER__ +# define __compiletime_warning(message) __attribute__((warning(message))) +# define __compiletime_error(message) __attribute__((error(message))) +#endif /* __CHECKER__ */ + +/* + * Mark a position in code as unreachable. This can be used to + * suppress control flow warnings after asm blocks that transfer + * control elsewhere. + * + * Early snapshots of gcc 4.5 don't support this and we can't detect + * this in the preprocessor, but we can live with this because they're + * unreleased. Really, we need to have autoconf for the kernel. + */ +#define unreachable() __builtin_unreachable() + +/* Mark a function definition as prohibited from being cloned. */ +#define __noclone __attribute__((__noclone__)) + +/* + * Tell the optimizer that something else uses this function or variable. + */ +#define __visible __attribute__((externally_visible)) + +/* + * GCC 'asm goto' miscompiles certain code sequences: + * + * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670 + * + * Work it around via a compiler barrier quirk suggested by Jakub Jelinek. + * + * (asm goto is automatically volatile - the naming reflects this.) + */ +#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) + +#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP +#define __HAVE_BUILTIN_BSWAP32__ +#define __HAVE_BUILTIN_BSWAP64__ +#define __HAVE_BUILTIN_BSWAP16__ +#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */ + diff --git a/aports/linux-samsung-i9100/config-samsung-i9100.armhf b/aports/linux-samsung-i9100/config-samsung-i9100.armhf new file mode 100644 index 00000000..9e504404 --- /dev/null +++ b/aports/linux-samsung-i9100/config-samsung-i9100.armhf @@ -0,0 +1,3243 @@ +# +# Automatically generated make config: don't edit +# Linux/arm 3.0.101 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_HAVE_PWM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +# CONFIG_ARCH_USES_GETTIMEOFFSET is not set +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_KTIME_SCALAR=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_NO_IOPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_LOCKBREAK=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_HAVE_IRQ_WORK=y + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="" +CONFIG_LOCALVERSION="-lineage" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_LZO is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_FHANDLE is not set +# CONFIG_TASKSTATS is not set +CONFIG_AUDIT=y +CONFIG_HAVE_GENERIC_HARDIRQS=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_HARDIRQS=y +CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_CHIP=y +# CONFIG_SPARSE_IRQ is not set + +# +# RCU Subsystem +# +CONFIG_TREE_PREEMPT_RCU=y +CONFIG_PREEMPT_RCU=y +# CONFIG_RCU_TRACE is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_RCU_BOOST is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=20 +CONFIG_CGROUPS=y +CONFIG_CGROUP_DEBUG=y +CONFIG_CGROUP_FREEZER=y +# CONFIG_CGROUP_DEVICE is not set +# CONFIG_CPUSETS is not set +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_CGROUP_MEM_RES_CTLR=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y +CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_RT_GROUP_SCHED=y +# CONFIG_BLK_CGROUP is not set +# CONFIG_NAMESPACES is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_MM_OWNER=y +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="source/usr/galaxys2_initramfs.list" +CONFIG_INITRAMFS_ROOT_UID=0 +CONFIG_INITRAMFS_ROOT_GID=0 +CONFIG_RD_GZIP=y +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +CONFIG_INITRAMFS_COMPRESSION_NONE=y +# CONFIG_INITRAMFS_COMPRESSION_GZIP is not set +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CC_CHECK_WARNING_STRICTLY is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_PANIC_TIMEOUT=1 +CONFIG_EXPERT=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_ASHMEM=y +# CONFIG_AIO is not set +CONFIG_EMBEDDED=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +# CONFIG_PERF_EVENTS is not set +# CONFIG_PERF_COUNTERS is not set +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_SLUB_DEBUG is not set +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_PROFILING=y +# CONFIG_OPROFILE is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_BITS_MAX=16 +CONFIG_ARCH_MMAP_RND_BITS=8 + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_INTEGRITY is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_ROW=y +CONFIG_IOSCHED_SIO=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_ROW is not set +# CONFIG_DEFAULT_SIO is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_INLINE_SPIN_TRYLOCK is not set +# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK is not set +# CONFIG_INLINE_SPIN_LOCK_BH is not set +# CONFIG_INLINE_SPIN_LOCK_IRQ is not set +# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set +# CONFIG_INLINE_SPIN_UNLOCK is not set +# CONFIG_INLINE_SPIN_UNLOCK_BH is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set +# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_READ_TRYLOCK is not set +# CONFIG_INLINE_READ_LOCK is not set +# CONFIG_INLINE_READ_LOCK_BH is not set +# CONFIG_INLINE_READ_LOCK_IRQ is not set +# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set +# CONFIG_INLINE_READ_UNLOCK is not set +# CONFIG_INLINE_READ_UNLOCK_BH is not set +# CONFIG_INLINE_READ_UNLOCK_IRQ is not set +# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set +# CONFIG_INLINE_WRITE_TRYLOCK is not set +# CONFIG_INLINE_WRITE_LOCK is not set +# CONFIG_INLINE_WRITE_LOCK_BH is not set +# CONFIG_INLINE_WRITE_LOCK_IRQ is not set +# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set +# CONFIG_INLINE_WRITE_UNLOCK is not set +# CONFIG_INLINE_WRITE_UNLOCK_BH is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set +# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CNS3XXX is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_MXS is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_LOKI is not set +# CONFIG_ARCH_LPC32XX is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_NUC93X is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_SHMOBILE is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +CONFIG_ARCH_EXYNOS=y +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_TCC_926 is not set +# CONFIG_ARCH_U300 is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_NOMADIK is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_VT8500 is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_KEYBOARD_GPIO_POLLED is not set +CONFIG_PLAT_SAMSUNG=y + +# +# Base Address for SFR mapping +# +CONFIG_S3C_ADDR_BASE=0xFB000000 + +# +# Boot options +# +# CONFIG_S3C_BOOT_ERROR_RESET is not set +CONFIG_S3C_BOOT_UART_FORCE_FIFO=y +CONFIG_S3C_LOWLEVEL_UART_PORT=2 +CONFIG_SAMSUNG_CLKSRC=y +CONFIG_SAMSUNG_IRQ_VIC_TIMER=y +CONFIG_SAMSUNG_IRQ_UART=y +CONFIG_SAMSUNG_GPIOLIB_4BIT=y +CONFIG_S3C_GPIO_CFG_S3C24XX=y +CONFIG_S3C_GPIO_CFG_S3C64XX=y +CONFIG_S3C_GPIO_PULL_UPDOWN=y +CONFIG_S5P_GPIO_DRVSTR=y +CONFIG_SAMSUNG_GPIO_EXTRA=0 +CONFIG_S3C_GPIO_SPACE=0 +CONFIG_S3C_GPIO_TRACK=y +CONFIG_S3C_ADC=y +CONFIG_S3C_DEV_ADC=y +# CONFIG_S3C_DEV_ADC1 is not set +CONFIG_S3C_DEV_HSMMC2=y +CONFIG_S3C_DEV_HSMMC3=y +CONFIG_EXYNOS4_DEV_MSHC=y +CONFIG_S3C_DEV_I2C1=y +CONFIG_S3C_DEV_I2C3=y +CONFIG_S3C_DEV_I2C5=y +CONFIG_S3C_DEV_I2C6=y +CONFIG_S3C_DEV_I2C7=y +CONFIG_S3C_DEV_I2C8_EMUL=y +CONFIG_S3C_DEV_I2C9_EMUL=y +CONFIG_S3C_DEV_I2C11_EMUL=y +CONFIG_S3C_DEV_I2C14_EMUL=y +CONFIG_S3C_DEV_I2C16_EMUL=y +# CONFIG_S3C_DEV_I2C17_EMUL is not set +CONFIG_S3C_DEV_WDT=y +CONFIG_S3C_DEV_RTC=y +CONFIG_SAMSUNG_DEV_ADC=y +CONFIG_SAMSUNG_DEV_TS=y +CONFIG_SAMSUNG_DEV_TS1=y +CONFIG_S3C24XX_PWM=y +CONFIG_S3C_PL330_DMA=y +# CONFIG_DMA_M2M_TEST is not set + +# +# Power management +# +# CONFIG_SAMSUNG_PM_DEBUG is not set +# CONFIG_SAMSUNG_PM_CHECK is not set + +# +# Power Domain +# +CONFIG_SAMSUNG_PD=y +CONFIG_PLAT_S5P=y +CONFIG_S5P_GPIO_INT=y +CONFIG_S5P_SYSTEM_MMU=y +# CONFIG_S5P_SYSTEM_MMU_REFCOUNT is not set +# CONFIG_S5P_SYSTEM_MMU_DEBUG is not set +CONFIG_IOVMM=y +CONFIG_IOMMU_EXYNOS4_API=y +CONFIG_S3C_DEV_FIMC=y +CONFIG_S5P_DEV_MFC=y +CONFIG_S5P_DEV_FIMD0=y +CONFIG_S5P_DEV_TVOUT=y +CONFIG_S5P_DEV_FIMG2D=y +CONFIG_S5P_DEV_CSIS=y +CONFIG_S5P_DEV_JPEG=y +CONFIG_S5P_DEV_USB_EHCI=y +CONFIG_S5P_DEV_FIMD_S5P=y +CONFIG_S5P_DEV_USBGADGET=y +CONFIG_S5P_MEM_CMA=y +# CONFIG_S5P_BTS is not set +# CONFIG_S3C_DEV_TSI is not set +CONFIG_ARCH_EXYNOS4=y +# CONFIG_ARCH_EXYNOS5 is not set +CONFIG_CPU_EXYNOS4210=y +# CONFIG_S5PV310_HI_ARMCLK_THAN_1_2GHZ is not set +CONFIG_EXYNOS4_PM=y +CONFIG_EXYNOS4_CPUIDLE=y +CONFIG_EXYNOS4_LOWPWR_IDLE=y +CONFIG_EXYNOS_MCT=y +CONFIG_EXYNOS4_SETUP_FIMD0=y +CONFIG_EXYNOS_DEV_PD=y +CONFIG_EXYNOS4_SETUP_I2C1=y +CONFIG_EXYNOS4_SETUP_I2C3=y +CONFIG_EXYNOS4_SETUP_I2C5=y +CONFIG_EXYNOS4_SETUP_I2C6=y +CONFIG_EXYNOS4_SETUP_I2C7=y +CONFIG_EXYNOS4_SETUP_MFC=y +CONFIG_EXYNOS4_SETUP_SDHCI=y +CONFIG_EXYNOS4_SETUP_SDHCI_GPIO=y +CONFIG_EXYNOS4_SETUP_MSHCI=y +CONFIG_EXYNOS4_SETUP_MSHCI_GPIO=y +CONFIG_EXYNOS4_SETUP_FIMC0=y +CONFIG_EXYNOS4_SETUP_FIMC1=y +CONFIG_EXYNOS4_SETUP_FIMC2=y +CONFIG_EXYNOS4_SETUP_FIMC3=y +CONFIG_EXYNOS4_SETUP_USB_PHY=y +CONFIG_EXYNOS4_SETUP_CSIS=y +CONFIG_EXYNOS4_SETUP_FB_S5P=y +CONFIG_EXYNOS4_SETUP_TVOUT=y +CONFIG_EXYNOS4_SETUP_THERMAL=y +# CONFIG_EXYNOS_SETUP_THERMAL is not set +# CONFIG_EXYNOS4_ENABLE_CLOCK_DOWN is not set +CONFIG_EXYNOS4_CPUFREQ=y +CONFIG_EXYNOS4210_1200MHZ_SUPPORT=y +# CONFIG_EXYNOS4210_1400MHZ_SUPPORT is not set + +# +# Support dynamic CPU Hotplug +# +CONFIG_EXYNOS_PM_HOTPLUG=y +CONFIG_STAND_ALONE_POLICY=y +# CONFIG_LEGACY_HOTPLUG_POLICY is not set +# CONFIG_WITH_DVFS_POLICY is not set +# CONFIG_DVFS_NR_RUNNING_POLICY is not set +# CONFIG_NR_RUNNING_POLICY is not set + +# +# Busfreq Model +# +CONFIG_BUSFREQ=y +# CONFIG_BUSFREQ_QOS is not set +# CONFIG_BUSFREQ_OPP is not set +# CONFIG_DISPFREQ_OPP is not set +# CONFIG_DEVFREQ_BUS is not set +# CONFIG_BUSFREQ_DEBUG is not set +# CONFIG_BUSFREQ_L2_160M is not set +CONFIG_SEC_THERMISTOR=y +# CONFIG_EXYNOS_SYSREG_PM is not set +# CONFIG_ANDROID_WIP is not set + +# +# EXYNOS4 Machines +# +# CONFIG_MACH_SMDKC210 is not set +# CONFIG_MACH_SMDKV310 is not set +# CONFIG_MACH_ARMLEX4210 is not set +# CONFIG_MACH_UNIVERSAL_C210 is not set +# CONFIG_MACH_NURI is not set +# CONFIG_MACH_U1_NA_SPR is not set +# CONFIG_MACH_U1_NA_USCC is not set +CONFIG_MACH_U1=y +CONFIG_MACH_U1_BD=y +# CONFIG_MACH_Q1_BD is not set +# CONFIG_TARGET_LOCALE_NAATT_TEMP is not set +# CONFIG_MACH_PX is not set +CONFIG_PANEL_U1=y +# CONFIG_PANEL_U1_NA_SPR is not set +CONFIG_TARGET_LOCALE_EUR=y +# CONFIG_TARGET_LOCALE_LTN is not set +# CONFIG_TARGET_LOCALE_KOR is not set +# CONFIG_TARGET_LOCALE_P2EUR_TEMP is not set +# CONFIG_TARGET_LOCALE_P2TMO_TEMP is not set +# CONFIG_TARGET_LOCALE_NA is not set +# CONFIG_TARGET_LOCALE_EUR_U1_NFC is not set +# CONFIG_TARGET_LOCALE_NTT is not set +# CONFIG_TARGET_LOCALE_JPN is not set +# CONFIG_TARGET_LOCALE_CHN is not set +# CONFIG_TARGET_LOCALE_USA is not set +# CONFIG_MACH_SMDK4X12 is not set +# CONFIG_MACH_MIDAS is not set +# CONFIG_MIDAS_COMMON_BD is not set +# CONFIG_P4NOTE_00_BD is not set +# CONFIG_GC1_00_BD is not set +# CONFIG_T0_00_BD is not set +# CONFIG_T0_04_BD is not set +# CONFIG_KONA_00_BD is not set +# CONFIG_KONA_01_BD is not set +# CONFIG_IRON_BD is not set +# CONFIG_GRANDE_BD is not set +# CONFIG_WRITEBACK_ENABLED is not set +# CONFIG_EXYNOS_SOUND_PLATFORM_DATA is not set +# CONFIG_JACK_FET is not set +# CONFIG_JACK_GROUND_DET is not set +# CONFIG_USE_ADC_DET is not set +CONFIG_SAMSUNG_ANALOG_UART_SWITCH=1 +# CONFIG_EXYNOS5_DEV_BTS is not set + +# +# MMC/SD slot setup +# + +# +# SELECT SYNOPSYS CONTROLLER INTERFACE DRIVER +# +# CONFIG_EXYNOS4_MSHC_MPLL_40MHZ is not set +# CONFIG_EXYNOS4_MSHC_VPLL_46MHZ is not set +CONFIG_EXYNOS4_MSHC_EPLL_45MHZ=y + +# +# Use 8-bit bus width +# +CONFIG_EXYNOS4_MSHC_8BIT=y +# CONFIG_EXYNOS4_SDHCI_CH2_8BIT is not set + +# +# Use DDR +# +CONFIG_EXYNOS4_MSHC_DDR=y + +# +# Miscellaneous drivers +# +# CONFIG_WAKEUP_ASSIST is not set + +# +# Debugging Feature +# +CONFIG_SEC_DEBUG=y +CONFIG_SEC_DEBUG_SCHED_LOG=y +# CONFIG_SEC_DEBUG_SOFTIRQ_LOG is not set +CONFIG_SEC_DEBUG_SCHED_LOG_NONCACHED=y +# CONFIG_SEC_DEBUG_SEMAPHORE_LOG is not set +CONFIG_SEC_DEBUG_USER=y +# CONFIG_SEC_DEBUG_PM_TEMP is not set +# CONFIG_SEC_DEBUG_IRQ_EXIT_LOG is not set +# CONFIG_SEC_DEBUG_AUXILIARY_LOG is not set +# CONFIG_SEC_DEBUG_FUPLOAD_DUMP_MORE is not set +# CONFIG_SEC_DEBUG_UMP_ALLOC_FAIL is not set +# CONFIG_SEC_DEBUG_LIST_CORRUPTION is not set +# CONFIG_SEC_WATCHDOG_RESET is not set +CONFIG_SEC_LOG=y +CONFIG_SEC_LOG_NONCACHED=y +CONFIG_SEC_LOG_LAST_KMSG=y +CONFIG_EHCI_IRQ_DISTRIBUTION=y +CONFIG_EHCI_MODEM_PORTNUM=2 + +# +# Samsung Modem Feature +# +# CONFIG_LTE_VIA_SWITCH is not set +# CONFIG_SEC_DUAL_MODEM_MODE is not set +# CONFIG_SEC_MODEM_M0_C2C is not set +# CONFIG_SEC_MODEM_M0 is not set +# CONFIG_SEC_MODEM_M0_CTC is not set +# CONFIG_SEC_MODEM_T0_CU_DUOS is not set +# CONFIG_SEC_MODEM_T0_OPEN_DUOS is not set +# CONFIG_SEC_MODEM_M0_GRANDECTC is not set +# CONFIG_SEC_MODEM_M1 is not set +# CONFIG_SEC_MODEM_C1 is not set +# CONFIG_SEC_MODEM_C1_LGT is not set +# CONFIG_SEC_MODEM_M2 is not set +CONFIG_SEC_MODEM_U1=y +# CONFIG_SEC_MODEM_U1_LGT is not set +# CONFIG_SEC_MODEM_GAIA is not set +# CONFIG_SEC_MODEM_IRON is not set +# CONFIG_SEC_MODEM_P8LTE is not set +# CONFIG_SEC_MODEM_T0_TD_DUAL is not set +# CONFIG_SEC_MODEM_U1_SPR is not set + +# +# Connectivity Feature +# +# CONFIG_GPS_BRCM_475X is not set +# CONFIG_BT_CSR8811 is not set +CONFIG_BT_BCM4330=y +# CONFIG_BT_BCM4334 is not set +# CONFIG_BT_BCM43241 is not set +CONFIG_BT_MGMT=y + +# +# Qualcomm Modem Feature +# +# CONFIG_QC_MODEM is not set +# CONFIG_MSM_SUBSYSTEM_RESTART is not set +# CONFIG_QC_MODEM_MDM9X15 is not set +# CONFIG_MDM_HSIC_PM is not set +# CONFIG_EMI_ERROR_RECOVERY is not set +# CONFIG_SIM_DETECT is not set +CONFIG_USB_CDFS_SUPPORT=y +CONFIG_SAMSUNG_PRODUCT_SHIP=y +# CONFIG_CORESIGHT_ETM is not set +# CONFIG_MACH_KONA_SENSOR is not set + +# +# Processor Type +# +CONFIG_CPU_V7=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_ARM_TRUSTZONE is not set +CONFIG_ARM_THUMB=y +# CONFIG_ARM_THUMBEE is not set +CONFIG_SWP_EMULATE=y +CONFIG_IDIV_EMULATE=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_CACHE_L2X0=y +CONFIG_CACHE_PL310=y +CONFIG_ARM_L1_CACHE_SHIFT=5 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_ARM_PLD_SIZE=32 +CONFIG_CPU_HAS_PMU=y +# CONFIG_ARM_ERRATA_430973 is not set +# CONFIG_ARM_ERRATA_458693 is not set +# CONFIG_ARM_ERRATA_460075 is not set +# CONFIG_ARM_ERRATA_742230 is not set +# CONFIG_ARM_ERRATA_742231 is not set +# CONFIG_PL310_ERRATA_588369 is not set +# CONFIG_ARM_ERRATA_720789 is not set +# CONFIG_ARM_ERRATA_720791 is not set +CONFIG_PL310_ERRATA_727915=y +CONFIG_ARM_ERRATA_743622=y +CONFIG_ARM_ERRATA_751472=y +CONFIG_ARM_ERRATA_753970=y +CONFIG_ARM_ERRATA_754322=y +# CONFIG_ARM_ERRATA_754327 is not set +# CONFIG_ARM_ERRATA_761320 is not set +# CONFIG_ARM_ERRATA_761171 is not set +# CONFIG_ARM_ERRATA_762974 is not set +# CONFIG_ARM_ERRATA_763722 is not set +CONFIG_ARM_ERRATA_764369=y +# CONFIG_PL310_ERRATA_769419 is not set +# CONFIG_ARM_ERRATA_775420 is not set +CONFIG_ARM_GIC=y +CONFIG_PL330=y +# CONFIG_FIQ_DEBUGGER is not set + +# +# Bus support +# +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_HAVE_ARM_SCU=y +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_NR_CPUS=2 +CONFIG_HOTPLUG_CPU=y +CONFIG_LOCAL_TIMERS=y +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +CONFIG_HZ=200 +# CONFIG_THUMB2_KERNEL is not set +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_ARCH_SKIP_SECONDARY_CALIBRATE=y +CONFIG_HIGHMEM=y +# CONFIG_HIGHPTE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_CLEANCACHE is not set +CONFIG_ZSMALLOC=y +# CONFIG_PGTABLE_MAPPING is not set +CONFIG_CMA=y +# CONFIG_CMA_DEVELOPEMENT is not set +CONFIG_CMA_BEST_FIT=y +# CONFIG_DEBUG_VMALLOC is not set +CONFIG_FORCE_MAX_ZONEORDER=12 +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_UACCESS_WITH_MEMCPY is not set +# CONFIG_SECCOMP is not set +# CONFIG_CC_STACKPROTECTOR is not set +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +# CONFIG_ARM_FLUSH_CONSOLE_ON_RESTART is not set + +# +# Boot options +# +# CONFIG_USE_OF is not set +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_CMDLINE="console=ttySAC2,115200 consoleblank=0 androidboot.hardware=smdk4210" +# CONFIG_CMDLINE_FROM_BOOTLOADER is not set +CONFIG_CMDLINE_EXTEND=y +# CONFIG_CMDLINE_FORCE is not set +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +# CONFIG_AUTO_ZRELADDR is not set + +# +# CPU Power Management +# + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ADAPTIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PEGASUSQ is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_ONDEMAND_FLEXRATE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND_FLEXRATE_MAX_DURATION=100 +# CONFIG_CPU_FREQ_GOV_INTERACTIVE is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +# CONFIG_CPU_FREQ_GOV_ADAPTIVE is not set +CONFIG_CPU_FREQ_GOV_PEGASUSQ=y +# CONFIG_CPU_FREQ_GOV_PEGASUSQ_BOOST is not set +# CONFIG_CPU_FREQ_GOV_SLP is not set +# CONFIG_CPU_FREQ_DVFS_MONITOR is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_NEON=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_HAVE_AOUT=y +# CONFIG_BINFMT_AOUT is not set +CONFIG_BINFMT_MISC=y + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_PM_WATCHDOG_TIMEOUT=y +# CONFIG_FAST_BOOT is not set +CONFIG_HAS_WAKELOCK=y +CONFIG_HAS_EARLYSUSPEND=y +CONFIG_WAKELOCK=y +CONFIG_WAKELOCK_STAT=y +CONFIG_USER_WAKELOCK=y +CONFIG_EARLYSUSPEND=y +# CONFIG_NO_USER_SPACE_SCREEN_ACCESS_CONTROL is not set +# CONFIG_CONSOLE_EARLYSUSPEND is not set +CONFIG_FB_EARLYSUSPEND=y +# CONFIG_HIBERNATION is not set +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_RUNTIME=y +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +# CONFIG_APM_EMULATION is not set +CONFIG_ARCH_HAS_OPP=y +CONFIG_PM_OPP=y +CONFIG_PM_RUNTIME_CLK=y +# CONFIG_SUSPEND_TIME is not set +CONFIG_CPU_PM=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_XFRM=y +# CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=y +CONFIG_NET_KEY=y +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_MULTIPLE_TABLES=y +# CONFIG_IP_ROUTE_MULTIPATH is not set +# CONFIG_IP_ROUTE_VERBOSE is not set +# CONFIG_IP_PNP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +# CONFIG_IP_MROUTE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +CONFIG_INET_ESP=y +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +CONFIG_INET_TUNNEL=y +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +# CONFIG_IPV6_ROUTE_INFO is not set +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_INET6_XFRM_TUNNEL=y +CONFIG_INET6_TUNNEL=y +CONFIG_INET6_XFRM_MODE_TRANSPORT=y +CONFIG_INET6_XFRM_MODE_TUNNEL=y +CONFIG_INET6_XFRM_MODE_BEET=y +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +CONFIG_IPV6_SIT=y +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=y +CONFIG_IPV6_MULTIPLE_TABLES=y +# CONFIG_IPV6_SUBTREES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_NETLABEL is not set +CONFIG_ANDROID_PARANOID_NETWORK=y +CONFIG_NET_ACTIVITY_STATS=y +CONFIG_NETWORK_SECMARK=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=y +CONFIG_NETFILTER_NETLINK_QUEUE=y +CONFIG_NETFILTER_NETLINK_LOG=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_SECMARK is not set +CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_TIMESTAMP is not set +CONFIG_NF_CT_PROTO_DCCP=y +CONFIG_NF_CT_PROTO_GRE=y +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y +CONFIG_NF_CONNTRACK_AMANDA=y +CONFIG_NF_CONNTRACK_FTP=y +CONFIG_NF_CONNTRACK_H323=y +CONFIG_NF_CONNTRACK_IRC=y +CONFIG_NF_CONNTRACK_BROADCAST=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=y +# CONFIG_NF_CONNTRACK_SNMP is not set +CONFIG_NF_CONNTRACK_PPTP=y +CONFIG_NF_CONNTRACK_SANE=y +# CONFIG_NF_CONNTRACK_SIP is not set +CONFIG_NF_CONNTRACK_TFTP=y +CONFIG_NF_CT_NETLINK=y +CONFIG_NETFILTER_TPROXY=y +CONFIG_NETFILTER_XTABLES=y + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=y +CONFIG_NETFILTER_XT_CONNMARK=y + +# +# Xtables targets +# +# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set +# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y +CONFIG_NETFILTER_XT_TARGET_CONNMARK=y +# CONFIG_NETFILTER_XT_TARGET_CT is not set +# CONFIG_NETFILTER_XT_TARGET_DSCP is not set +# CONFIG_NETFILTER_XT_TARGET_HL is not set +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_TARGET_NFLOG=y +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set +# CONFIG_NETFILTER_XT_TARGET_TEE is not set +CONFIG_NETFILTER_XT_TARGET_TPROXY=y +CONFIG_NETFILTER_XT_TARGET_TRACE=y +# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set +CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set + +# +# Xtables matches +# +# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set +# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y +CONFIG_NETFILTER_XT_MATCH_CONNMARK=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +# CONFIG_NETFILTER_XT_MATCH_CPU is not set +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set +# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set +# CONFIG_NETFILTER_XT_MATCH_ESP is not set +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y +CONFIG_NETFILTER_XT_MATCH_HELPER=y +CONFIG_NETFILTER_XT_MATCH_HL=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_LENGTH=y +CONFIG_NETFILTER_XT_MATCH_LIMIT=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set +# CONFIG_NETFILTER_XT_MATCH_OSF is not set +# CONFIG_NETFILTER_XT_MATCH_OWNER is not set +CONFIG_NETFILTER_XT_MATCH_POLICY=y +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y +CONFIG_NETFILTER_XT_MATCH_QTAGUID=y +CONFIG_NETFILTER_XT_MATCH_QUOTA=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2_LOG=y +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set +# CONFIG_NETFILTER_XT_MATCH_REALM is not set +# CONFIG_NETFILTER_XT_MATCH_RECENT is not set +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set +CONFIG_NETFILTER_XT_MATCH_TIME=y +CONFIG_NETFILTER_XT_MATCH_U32=y +# CONFIG_IP_SET is not set +# CONFIG_IP_VS is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +# CONFIG_IP_NF_QUEUE is not set +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=y +CONFIG_IP_NF_MATCH_ECN=y +CONFIG_IP_NF_MATCH_RPFILTER=y +CONFIG_IP_NF_MATCH_TTL=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_TARGET_REJECT_SKERR=y +CONFIG_IP_NF_TARGET_LOG=y +# CONFIG_IP_NF_TARGET_ULOG is not set +CONFIG_NF_NAT=y +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_NF_NAT_PROTO_DCCP=y +CONFIG_NF_NAT_PROTO_GRE=y +CONFIG_NF_NAT_PROTO_UDPLITE=y +CONFIG_NF_NAT_PROTO_SCTP=y +CONFIG_NF_NAT_FTP=y +CONFIG_NF_NAT_IRC=y +CONFIG_NF_NAT_TFTP=y +CONFIG_NF_NAT_AMANDA=y +CONFIG_NF_NAT_PPTP=y +CONFIG_NF_NAT_H323=y +# CONFIG_NF_NAT_SIP is not set +CONFIG_IP_NF_MANGLE=y +# CONFIG_IP_NF_TARGET_CLUSTERIP is not set +# CONFIG_IP_NF_TARGET_ECN is not set +# CONFIG_IP_NF_TARGET_TTL is not set +CONFIG_IP_NF_RAW=y +# CONFIG_IP_NF_SECURITY is not set +CONFIG_IP_NF_ARPTABLES=y +CONFIG_IP_NF_ARPFILTER=y +CONFIG_IP_NF_ARP_MANGLE=y + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV6=y +CONFIG_NF_CONNTRACK_IPV6=y +# CONFIG_IP6_NF_QUEUE is not set +CONFIG_IP6_NF_IPTABLES=y +# CONFIG_IP6_NF_MATCH_AH is not set +# CONFIG_IP6_NF_MATCH_EUI64 is not set +# CONFIG_IP6_NF_MATCH_FRAG is not set +# CONFIG_IP6_NF_MATCH_OPTS is not set +# CONFIG_IP6_NF_MATCH_HL is not set +# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set +# CONFIG_IP6_NF_MATCH_MH is not set +CONFIG_IP6_NF_MATCH_RPFILTER=y +# CONFIG_IP6_NF_MATCH_RT is not set +# CONFIG_IP6_NF_TARGET_HL is not set +CONFIG_IP6_NF_TARGET_LOG=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_TARGET_REJECT_SKERR=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +# CONFIG_IP6_NF_SECURITY is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +# CONFIG_BRIDGE is not set +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +CONFIG_PHONET=y +# CONFIG_IEEE802154 is not set +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +# CONFIG_NET_SCH_CBQ is not set +CONFIG_NET_SCH_HTB=y +# CONFIG_NET_SCH_HFSC is not set +# CONFIG_NET_SCH_PRIO is not set +# CONFIG_NET_SCH_MULTIQ is not set +# CONFIG_NET_SCH_RED is not set +# CONFIG_NET_SCH_SFB is not set +# CONFIG_NET_SCH_SFQ is not set +# CONFIG_NET_SCH_TEQL is not set +# CONFIG_NET_SCH_TBF is not set +# CONFIG_NET_SCH_GRED is not set +# CONFIG_NET_SCH_DSMARK is not set +# CONFIG_NET_SCH_NETEM is not set +# CONFIG_NET_SCH_DRR is not set +# CONFIG_NET_SCH_MQPRIO is not set +# CONFIG_NET_SCH_CHOKE is not set +# CONFIG_NET_SCH_QFQ is not set +CONFIG_NET_SCH_INGRESS=y + +# +# Classification +# +CONFIG_NET_CLS=y +# CONFIG_NET_CLS_BASIC is not set +# CONFIG_NET_CLS_TCINDEX is not set +# CONFIG_NET_CLS_ROUTE4 is not set +# CONFIG_NET_CLS_FW is not set +CONFIG_NET_CLS_U32=y +# CONFIG_CLS_U32_PERF is not set +# CONFIG_CLS_U32_MARK is not set +# CONFIG_NET_CLS_RSVP is not set +# CONFIG_NET_CLS_RSVP6 is not set +# CONFIG_NET_CLS_FLOW is not set +# CONFIG_NET_CLS_CGROUP is not set +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +# CONFIG_NET_EMATCH_CMP is not set +# CONFIG_NET_EMATCH_NBYTE is not set +CONFIG_NET_EMATCH_U32=y +# CONFIG_NET_EMATCH_META is not set +# CONFIG_NET_EMATCH_TEXT is not set +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=y +CONFIG_NET_ACT_GACT=y +# CONFIG_GACT_PROB is not set +CONFIG_NET_ACT_MIRRED=y +# CONFIG_NET_ACT_IPT is not set +# CONFIG_NET_ACT_NAT is not set +# CONFIG_NET_ACT_PEDIT is not set +# CONFIG_NET_ACT_SIMP is not set +# CONFIG_NET_ACT_SKBEDIT is not set +# CONFIG_NET_ACT_CSUM is not set +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +# CONFIG_BATMAN_ADV is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +CONFIG_BT=y +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +# CONFIG_BT_BNEP_MC_FILTER is not set +# CONFIG_BT_BNEP_PROTO_FILTER is not set +CONFIG_BT_HIDP=y + +# +# Bluetooth device drivers +# +# CONFIG_BT_HCIBTUSB is not set +# CONFIG_BT_HCIBTSDIO is not set +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_H4=y +# CONFIG_BT_HCIUART_BCSP is not set +# CONFIG_BT_HCIUART_ATH3K is not set +# CONFIG_BT_HCIUART_LL is not set +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_BT_MRVL is not set + +# +# Bluetooth device drivers +# + +# +# Bluetooth device drivers +# +# CONFIG_AF_RXRPC is not set +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_CFG80211=y +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +CONFIG_WIRELESS_EXT_SYSFS=y +# CONFIG_LIB80211 is not set +# CONFIG_CFG80211_ALLOW_RECONNECT is not set +# CONFIG_MAC80211 is not set +# CONFIG_WIMAX is not set +CONFIG_RFKILL=y +CONFIG_RFKILL_PM=y +# CONFIG_RFKILL_INPUT is not set +# CONFIG_RFKILL_REGULATOR is not set +# CONFIG_RFKILL_GPIO is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set + +# +# Device Drivers +# +CONFIG_MALI400=y +CONFIG_MALI_VER_R3P2=y +# CONFIG_MALI400_DEBUG is not set +# CONFIG_MALI400_PROFILING is not set +CONFIG_MALI_DVFS=y +CONFIG_MALI400_UMP=y +# CONFIG_MALI_SHARED_INTERRUPTS is not set +# CONFIG_UMP_DEBUG is not set + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +# CONFIG_DEVTMPFS_MOUNT is not set +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_DMA_SHARED_BUFFER is not set +CONFIG_SYNC=y +CONFIG_SW_SYNC=y +CONFIG_SW_SYNC_USER=y +# CONFIG_DMA_CMA is not set +# CONFIG_CONNECTOR is not set +# CONFIG_MTD is not set +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +CONFIG_ZRAM=y +CONFIG_ZRAM_LZ4_COMPRESS=y +# CONFIG_ZRAM_DEBUG is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +# CONFIG_BLK_DEV_CRYPTOLOOP is not set + +# +# DRBD disabled because PROC_FS, INET or CONNECTOR not selected +# +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=8192 +# CONFIG_BLK_DEV_XIP is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MG_DISK is not set +# CONFIG_BLK_DEV_RBD is not set +# CONFIG_SENSORS_LIS3LV02D is not set +CONFIG_MISC_DEVICES=y +# CONFIG_AD525X_DPOT is not set +# CONFIG_INTEL_MID_PTI is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_SENSORS_AK8975 is not set +# CONFIG_DS1682 is not set +# CONFIG_TI_DAC7512 is not set +CONFIG_UID_STAT=y +# CONFIG_BMP085 is not set +# CONFIG_WL127X_RFKILL is not set +# CONFIG_APANIC is not set +# CONFIG_JACK_MON is not set +# CONFIG_UART_SELECT is not set +# CONFIG_SWITCH_DUAL_MODEM is not set +# CONFIG_WIMAX_CMC is not set +CONFIG_SEC_DEV_JACK=y +# CONFIG_MUIC_DET_JACK is not set +# CONFIG_FM34_WE395 is not set +# CONFIG_AUDIENCE_ES305 is not set +# CONFIG_2MIC_FM34_WE395 is not set +CONFIG_MUIC_MAX8997=y +# CONFIG_MUIC_MAX8997_OVPUI is not set +# CONFIG_USBHUB_USB3503 is not set +# CONFIG_USBHUB_USB3503_OTG_CONN is not set +# CONFIG_USBHUB_USB3803 is not set +CONFIG_PN544=y +# CONFIG_STMPE811_ADC is not set +# CONFIG_MPU_SENSORS_MPU3050 is not set +# CONFIG_MPU_SENSORS_MPU6050 is not set +CONFIG_UID_CPUTIME=y +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_AT25 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +# CONFIG_EEPROM_93CX6 is not set +# CONFIG_IWMC3200TOP is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_TI_ST is not set +# CONFIG_SENSORS_LIS3_SPI is not set +# CONFIG_SENSORS_LIS3_I2C is not set +CONFIG_SEC_MODEM=y +CONFIG_UMTS_MODEM_XMM6260=y +# CONFIG_UMTS_MODEM_XMM6262 is not set +# CONFIG_CDMA_MODEM_CBP71 is not set +# CONFIG_CDMA_MODEM_CBP72 is not set +# CONFIG_CDMA_MODEM_CBP82 is not set +# CONFIG_LTE_MODEM_CMC221 is not set +# CONFIG_UMTS_MODEM_SS222 is not set +# CONFIG_CDMA_MODEM_MDM6600 is not set +# CONFIG_TDSCDMA_MODEM_SPRD8803 is not set +# CONFIG_GSM_MODEM_ESC6270 is not set +# CONFIG_CDMA_MODEM_QSC6085 is not set +# CONFIG_LINK_DEVICE_MIPI is not set +# CONFIG_LINK_DEVICE_DPRAM is not set +# CONFIG_LINK_DEVICE_PLD is not set +# CONFIG_LINK_DEVICE_USB is not set +CONFIG_LINK_DEVICE_HSIC=y +# CONFIG_LINK_DEVICE_C2C is not set +# CONFIG_LINK_DEVICE_SPI is not set +# CONFIG_BOOT_DEVICE_SPI is not set +# CONFIG_WORKQUEUE_FRONT is not set +# CONFIG_IPC_CMC22x_OLD_RFS is not set +# CONFIG_SIPC_VER_5 is not set +# CONFIG_SIM_SLOT_SWITCH is not set +# CONFIG_LTE_MODEM_CMC220 is not set +# CONFIG_INTERNAL_MODEM_IF is not set +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +CONFIG_CHR_DEV_SG=y +# CONFIG_CHR_DEV_SCH is not set +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_LIBFC is not set +# CONFIG_LIBFCOE is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_DH is not set +# CONFIG_SCSI_OSD_INITIATOR is not set +# CONFIG_ATA is not set +CONFIG_MD=y +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=y +# CONFIG_DM_SNAPSHOT is not set +# CONFIG_DM_MIRROR is not set +# CONFIG_DM_RAID is not set +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set +# CONFIG_DM_DELAY is not set +# CONFIG_DM_UEVENT is not set +# CONFIG_DM_FLAKEY is not set +# CONFIG_TARGET_CORE is not set +CONFIG_NETDEVICES=y +# CONFIG_IFB is not set +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set +# CONFIG_EQUALIZER is not set +CONFIG_TUN=y +# CONFIG_VETH is not set +# CONFIG_MII is not set +# CONFIG_PHYLIB is not set +# CONFIG_NET_ETHERNET is not set +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set +CONFIG_WLAN=y +# CONFIG_USB_ZD1201 is not set +# CONFIG_USB_NET_RNDIS_WLAN is not set +CONFIG_WIFI_CONTROL_FUNC=y +# CONFIG_ATH_COMMON is not set +CONFIG_BCM4330=y +# CONFIG_BCM4334 is not set +# CONFIG_BCM4335 is not set +# CONFIG_BCM4339 is not set +# CONFIG_BCM4354 is not set +# CONFIG_BCM43241 is not set +CONFIG_BROADCOM_WIFI=y +CONFIG_BCMDHD_FW_PATH="/system/etc/wifi/bcmdhd_sta.bin" +CONFIG_BCMDHD_NVRAM_PATH="/system/etc/wifi/nvram_net.txt" +CONFIG_BROADCOM_WIFI_RESERVED_MEM=y +CONFIG_WLAN_REGION_CODE=100 +# CONFIG_HOSTAP is not set +# CONFIG_IWM is not set +# CONFIG_LIBERTAS is not set +# CONFIG_MWIFIEX is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_HSO is not set +# CONFIG_USB_CDC_PHONET is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_WAN is not set + +# +# CAIF transport drivers +# +CONFIG_PPP=y +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=y +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_MPPE=y +# CONFIG_PPPOE is not set +CONFIG_PPPOLAC=y +CONFIG_PPPOPNS=y +# CONFIG_SLIP is not set +CONFIG_SLHC=y +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_ISDN is not set +# CONFIG_PHONE is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set +# CONFIG_INPUT_SPARSEKMAP is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_SECBRIDGE is not set +# CONFIG_INPUT_KEYRESET is not set +# CONFIG_INPUT_FBSUSPEND is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_SENSORS_HALL is not set +# CONFIG_KEYBOARD_CYPRESS_TOUCH is not set +CONFIG_KEYBOARD_CYPRESS_TOUCH_BLN=y +CONFIG_TOUCHKEY_BLN=y +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_MELFAS_GC is not set +# CONFIG_TOUCHSCREEN_MELFAS is not set +# CONFIG_TOUCHSCREEN_MELFAS_MMS is not set +# CONFIG_TOUCHSCREEN_MMS152 is not set +# CONFIG_TOUCHSCREEN_MELFAS_NOTE is not set +# CONFIG_TOUCHSCREEN_ADS7846 is not set +# CONFIG_TOUCHSCREEN_AD7877 is not set +# CONFIG_TOUCHSCREEN_AD7879 is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set +CONFIG_TOUCHSCREEN_ATMEL_MXT224_U1=y +# CONFIG_TOUCHSCREEN_ATMEL_MXT224_GRANDE is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT224S_GRANDE is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT224_GC is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT1536E is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT1664S is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT540E is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT224 is not set +# CONFIG_TOUCHSCREEN_BU21013 is not set +# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set +# CONFIG_TOUCHSCREEN_DYNAPRO is not set +# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set +# CONFIG_TOUCHSCREEN_EETI is not set +# CONFIG_TOUCHSCREEN_FUJITSU is not set +# CONFIG_TOUCHSCREEN_S3C2410 is not set +# CONFIG_TOUCHSCREEN_EXYNOS4 is not set +# CONFIG_TOUCHSCREEN_PIXCIR is not set +# CONFIG_TOUCHSCREEN_GUNZE is not set +# CONFIG_TOUCHSCREEN_ELO is not set +# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set +# CONFIG_TOUCHSCREEN_MAX11801 is not set +# CONFIG_TOUCHSCREEN_MCS5000 is not set +# CONFIG_TOUCHSCREEN_MMS114 is not set +# CONFIG_MELFAS_TOUCHKEY is not set +# CONFIG_TOUCHSCREEN_MTOUCH is not set +# CONFIG_TOUCHSCREEN_INEXIO is not set +# CONFIG_TOUCHSCREEN_MK712 is not set +# CONFIG_TOUCHSCREEN_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set +# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set +# CONFIG_TOUCHSCREEN_TSC2005 is not set +# CONFIG_TOUCHSCREEN_TSC2007 is not set +# CONFIG_TOUCHSCREEN_W90X900 is not set +# CONFIG_TOUCHSCREEN_ST1232 is not set +# CONFIG_TOUCHSCREEN_TPS6507X is not set +# CONFIG_TOUCHSCREEN_ZINITIX is not set +# CONFIG_TOUCHSCREEN_MXT1386 is not set +# CONFIG_TOUCHSCREEN_MXT768E is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_S7301 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_S7301_KEYS is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_S7301_WORKAROUND is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_S7301_KEYLED is not set +# CONFIG_TOUCHSCREEN_CYTTSP4 is not set +# CONFIG_SEC_TOUCHSCREEN_DVFS_LOCK is not set +# CONFIG_SEC_TOUCHSCREEN_SURFACE_TOUCH is not set +# CONFIG_KEYPAD_MELFAS_TOUCH is not set +# CONFIG_TOUCHSCREEN_ATMEL_MXT540S is not set +# CONFIG_INPUT_WACOM is not set +# CONFIG_EPEN_WACOM_G5SP is not set +# CONFIG_EPEN_WACOM_G9PM is not set +CONFIG_INPUT_MISC=y +# CONFIG_SENSORS_BH1721FVC is not set +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_ATI_REMOTE is not set +# CONFIG_INPUT_ATI_REMOTE2 is not set +CONFIG_INPUT_KEYCHORD=y +# CONFIG_INPUT_KEYSPAN_REMOTE is not set +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_GPIO=y +# CONFIG_INPUT_PCF8574 is not set +# CONFIG_INPUT_PWM_BEEPER is not set +# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_OPTICAL_GP2A is not set +# CONFIG_OPTICAL_WAKE_ENABLE is not set +# CONFIG_INPUT_CMA3000 is not set +# CONFIG_INPUT_FLIP is not set +# CONFIG_INPUT_KR3DH is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +# CONFIG_VT_CONSOLE is not set +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set +# CONFIG_LEGACY_PTYS is not set +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_N_GSM is not set +# CONFIG_TRACE_SINK is not set +CONFIG_DEVMEM=y +CONFIG_DEVKMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_CONSOLE is not set +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_SAMSUNG=y +CONFIG_SERIAL_SAMSUNG_UARTS_4=y +CONFIG_SERIAL_SAMSUNG_UARTS=4 +CONFIG_SERIAL_SAMSUNG_CONSOLE=y +# CONFIG_SERIAL_SAMSUNG_CONSOLE_SWITCH is not set +CONFIG_SERIAL_S5PV210=y +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX3107 is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_TIMBERDALE is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_IFX6X60 is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_CSR_GSD4T_CDMA is not set + +# +# Diag Support +# +# CONFIG_DIAG_CHAR is not set + +# +# DIAG traffic over USB +# + +# +# SDIO support for DIAG +# + +# +# HSIC support for DIAG +# +# CONFIG_TTY_PRINTK is not set +# CONFIG_HVC_DCC is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_DCC_TTY is not set +# CONFIG_RAMOOPS is not set +CONFIG_S3C_MEM=y +CONFIG_EXYNOS_MEM=y +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_MUX is not set +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_ALGOBIT=y + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_DESIGNWARE is not set +CONFIG_I2C_GPIO=y +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_PXA_PCI is not set +CONFIG_HAVE_S3C2410_I2C=y +CONFIG_I2C_S3C2410=y +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +CONFIG_SPI_BITBANG=y +CONFIG_SPI_GPIO=y +# CONFIG_SPI_OC_TINY is not set +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_SPI_S3C64XX is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_DESIGNWARE is not set + +# +# SPI Protocol Masters +# +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_TLE62X0 is not set + +# +# PPS support +# +# CONFIG_PPS is not set + +# +# PPS generators support +# + +# +# PTP clock support +# + +# +# Enable Device Drivers -> PPS to see the PTP clock options. +# +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIOLIB=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO drivers: +# +# CONFIG_GPIO_BASIC_MMIO is not set +# CONFIG_GPIO_IT8761E is not set +CONFIG_GPIO_EXYNOS4=y +CONFIG_GPIO_PLAT_SAMSUNG=y + +# +# I2C GPIO expanders: +# +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_SX150X is not set +# CONFIG_GPIO_ADP5588 is not set + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +# CONFIG_GPIO_MAX7301 is not set +# CONFIG_GPIO_MCP23S08 is not set +# CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_74X164 is not set + +# +# AC97 GPIO expanders: +# + +# +# MODULbus GPIO expanders: +# +# CONFIG_W1 is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_MAX8997_CHARGER is not set +# CONFIG_BATTERY_MAX17043_FUELGAUGE is not set +# CONFIG_BATTERY_MAX17042_FUELGAUGE is not set +# CONFIG_BATTERY_MAX17047_FUELGAUGE is not set +# CONFIG_BATTERY_MAX17047_C_FUELGAUGE is not set +# CONFIG_BATTERY_SMB136_CHARGER is not set +# CONFIG_BATTERY_SAMSUNG_P1X is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_BQ20Z75 is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_S3C_ADC is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_BATTERY_SAMSUNG is not set +# CONFIG_CHARGER_MAX8997 is not set +CONFIG_CHARGER_MAX8997_U1=y +# CONFIG_CHARGER_MAX8997_PX is not set +CONFIG_BATTERY_SEC_U1=y +# CONFIG_BATTERY_SEC_PX is not set +CONFIG_CHARGER_MAX8922_U1=y +CONFIG_BATTERY_MAX17042_FUELGAUGE_U1=y +# CONFIG_BATTERY_MAX17042_FUELGAUGE_PX is not set +# CONFIG_SMB136_CHARGER is not set +# CONFIG_SMB136_CHARGER_Q1 is not set +# CONFIG_SMB328_CHARGER is not set +# CONFIG_SMB347_CHARGER is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_HWMON is not set +# CONFIG_THERMAL is not set +# CONFIG_SENSORS_EXYNOS4_TMU is not set +# CONFIG_WATCHDOG is not set +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +# CONFIG_BCMA is not set +CONFIG_MFD_SUPPORT=y +CONFIG_MFD_CORE=y +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_HTC_EGPIO is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX8925 is not set +CONFIG_MFD_MAX8997=y +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MAX8698 is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_S5M_CORE is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_MC13XXX is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_TPS65910 is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=y +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_MAX8952_GRANDE is not set +CONFIG_REGULATOR_MAX8997=y +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_LP8720 is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_TPS6524X is not set +CONFIG_MEDIA_SUPPORT=y + +# +# Multimedia core support +# +# CONFIG_MEDIA_CONTROLLER is not set +CONFIG_VIDEO_DEV=y +CONFIG_VIDEO_V4L2_COMMON=y +# CONFIG_DVB_CORE is not set +CONFIG_VIDEO_MEDIA=y + +# +# Multimedia drivers +# +CONFIG_RC_CORE=y +CONFIG_LIRC=y +CONFIG_RC_MAP=y +CONFIG_IR_NEC_DECODER=y +CONFIG_IR_RC5_DECODER=y +CONFIG_IR_RC6_DECODER=y +CONFIG_IR_JVC_DECODER=y +CONFIG_IR_SONY_DECODER=y +CONFIG_IR_RC5_SZ_DECODER=y +CONFIG_IR_LIRC_CODEC=y +# CONFIG_IR_IMON is not set +# CONFIG_IR_MCEUSB is not set +# CONFIG_IR_REDRAT3 is not set +# CONFIG_IR_STREAMZAP is not set +# CONFIG_RC_LOOPBACK is not set +# CONFIG_MEDIA_ATTACH is not set +CONFIG_MEDIA_TUNER=y +CONFIG_MEDIA_TUNER_CUSTOMISE=y + +# +# Customize TV tuners +# +# CONFIG_MEDIA_TUNER_SIMPLE is not set +# CONFIG_MEDIA_TUNER_TDA8290 is not set +# CONFIG_MEDIA_TUNER_TDA827X is not set +# CONFIG_MEDIA_TUNER_TDA18271 is not set +# CONFIG_MEDIA_TUNER_TDA9887 is not set +# CONFIG_MEDIA_TUNER_TEA5761 is not set +# CONFIG_MEDIA_TUNER_TEA5767 is not set +# CONFIG_MEDIA_TUNER_MT20XX is not set +# CONFIG_MEDIA_TUNER_MT2060 is not set +# CONFIG_MEDIA_TUNER_MT2266 is not set +# CONFIG_MEDIA_TUNER_MT2131 is not set +# CONFIG_MEDIA_TUNER_QT1010 is not set +# CONFIG_MEDIA_TUNER_XC2028 is not set +# CONFIG_MEDIA_TUNER_XC5000 is not set +# CONFIG_MEDIA_TUNER_MXL5005S is not set +# CONFIG_MEDIA_TUNER_MXL5007T is not set +# CONFIG_MEDIA_TUNER_MC44S803 is not set +# CONFIG_MEDIA_TUNER_MAX2165 is not set +# CONFIG_MEDIA_TUNER_TDA18218 is not set +# CONFIG_MEDIA_TUNER_TDA18212 is not set +CONFIG_VIDEO_V4L2=y +CONFIG_VIDEOBUF2_CORE=y +CONFIG_VIDEOBUF2_MEMOPS=y +CONFIG_VIDEOBUF2_CMA_PHYS=y +# CONFIG_VIDEOBUF2_ION is not set +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_FIXED_MINOR_RANGES=y +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set +CONFIG_VIDEO_IR_I2C=y + +# +# Encoders, decoders, sensors and other helper chips +# + +# +# Audio decoders, processors and mixers +# +# CONFIG_VIDEO_TVAUDIO is not set +# CONFIG_VIDEO_TDA7432 is not set +# CONFIG_VIDEO_TDA9840 is not set +# CONFIG_VIDEO_TEA6415C is not set +# CONFIG_VIDEO_TEA6420 is not set +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_CS5345 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_TLV320AIC23B is not set +# CONFIG_VIDEO_WM8775 is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_VP27SMPX is not set + +# +# RDS decoders +# +# CONFIG_VIDEO_SAA6588 is not set + +# +# Video decoders +# +# CONFIG_VIDEO_ADV7180 is not set +# CONFIG_VIDEO_BT819 is not set +# CONFIG_VIDEO_BT856 is not set +# CONFIG_VIDEO_BT866 is not set +# CONFIG_VIDEO_KS0127 is not set +# CONFIG_VIDEO_SAA7110 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_SAA7191 is not set +# CONFIG_VIDEO_TVP514X is not set +# CONFIG_VIDEO_TVP5150 is not set +# CONFIG_VIDEO_TVP7002 is not set +# CONFIG_VIDEO_VPX3220 is not set +CONFIG_VIDEO_M5MO=y +# CONFIG_VIDEO_M9MO is not set +CONFIG_VIDEO_S5K5BAFX=y +# CONFIG_VIDEO_S5K5CCGX_COMMON is not set +# CONFIG_VIDEO_SR200PC20 is not set +# CONFIG_VIDEO_SR200PC20M is not set +# CONFIG_VIDEO_ISX012 is not set +# CONFIG_VIDEO_SLP_S5K4ECGX is not set +# CONFIG_VIDEO_SLP_DB8131M is not set +# CONFIG_VIDEO_S5K4EA is not set +# CONFIG_VIDEO_S5C73M3 is not set +# CONFIG_VIDEO_SLP_S5C73M3 is not set +# CONFIG_VIDEO_SR130PC20 is not set +CONFIG_VIDEO_IMPROVE_STREAMOFF=y +CONFIG_CSI_C=y +# CONFIG_CSI_D is not set + +# +# Video and audio decoders +# +# CONFIG_VIDEO_SAA717X is not set +# CONFIG_VIDEO_CX25840 is not set + +# +# MPEG video encoders +# +# CONFIG_VIDEO_CX2341X is not set + +# +# Video encoders +# +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_SAA7185 is not set +# CONFIG_VIDEO_ADV7170 is not set +# CONFIG_VIDEO_ADV7175 is not set +# CONFIG_VIDEO_ADV7343 is not set +# CONFIG_VIDEO_AK881X is not set + +# +# Camera sensor devices +# +# CONFIG_VIDEO_OV7670 is not set +# CONFIG_VIDEO_MT9V011 is not set +# CONFIG_VIDEO_TCM825X is not set + +# +# Video improvement chips +# +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set + +# +# Miscelaneous helper chips +# +# CONFIG_VIDEO_THS7303 is not set +# CONFIG_VIDEO_M52790 is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_SR030PC30 is not set +# CONFIG_VIDEO_NOON010PC30 is not set +# CONFIG_SOC_CAMERA is not set +# CONFIG_VIDEO_SAMSUNG_S5P_FIMC is not set +CONFIG_SAMSUNG_MFC_DRIVERS=y +CONFIG_USE_LEGACY_MFC=y +# CONFIG_USE_V4L2_MFC is not set +CONFIG_V4L_USB_DRIVERS=y +# CONFIG_USB_VIDEO_CLASS is not set +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +# CONFIG_USB_GSPCA is not set +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_HDPVR is not set +# CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_CX231XX is not set +# CONFIG_VIDEO_USBVISION is not set +# CONFIG_USB_ET61X251 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_PWC is not set +# CONFIG_USB_ZR364XX is not set +# CONFIG_USB_STKWEBCAM is not set +# CONFIG_USB_S2255 is not set +CONFIG_VIDEO_SAMSUNG=y +CONFIG_VIDEO_SAMSUNG_V4L2=y +CONFIG_VIDEO_FIMC=y +CONFIG_VIDEO_FIMC_RANGE_NARROW=y +# CONFIG_VIDEO_FIMC_RANGE_WIDE is not set +# CONFIG_VIDEO_FIMC_DEBUG is not set +CONFIG_VIDEO_FIMC_MIPI=y +# CONFIG_VIDEO_FIMC_MIPI_IRQ_DEBUG is not set +CONFIG_VIDEO_FIMC_DMA_AUTO=y +# CONFIG_VIDEO_FIMC_FIFO is not set +CONFIG_VIDEO_TVOUT=y +CONFIG_VIDEO_TVOUT_2CH_AUDIO=y +# CONFIG_VIDEO_TVOUT_5_1CH_AUDIO is not set +# CONFIG_HDMI_CEC is not set +CONFIG_HDMI_EARJACK_MUTE=y +CONFIG_HDMI_HPD=y +# CONFIG_HDMI_CONTROLLED_BY_EXT_IC is not set +# CONFIG_HDMI_TX_STRENGTH is not set +CONFIG_HDMI_SWITCH_HPD=y +# CONFIG_ANALOG_TVENC is not set +CONFIG_TV_FB=y +CONFIG_USER_ALLOC_TVOUT=y +# CONFIG_LSI_HDMI_AUDIO_CH_EVENT is not set +# CONFIG_TV_DEBUG is not set +CONFIG_VIDEO_MFC5X=y +CONFIG_VIDEO_MFC_MAX_INSTANCE=4 +CONFIG_VIDEO_MFC_MEM_PORT_COUNT=2 +# CONFIG_VIDEO_MFC5X_DEBUG is not set +# CONFIG_VIDEO_MALI400MP is not set +# CONFIG_VIDEO_UMP is not set +CONFIG_VIDEO_FIMG2D=y +# CONFIG_VIDEO_FIMG2D_DEBUG is not set +CONFIG_VIDEO_FIMG2D3X=y +# CONFIG_VIDEO_FIMG2D3X_DEBUG is not set +CONFIG_VIDEO_JPEG=y +# CONFIG_VIDEO_JPEG_DEBUG is not set + +# +# Reserved memory configurations +# +CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC0=5120 +CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC1=15360 +CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC2=25600 +CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC3=7168 +CONFIG_VIDEO_SAMSUNG_MEMSIZE_MFC0=20480 +CONFIG_VIDEO_SAMSUNG_MEMSIZE_MFC1=34816 +CONFIG_VIDEO_SAMSUNG_MEMSIZE_JPEG=20480 +CONFIG_VIDEO_SAMSUNG_MEMSIZE_TVOUT=16384 +# CONFIG_VIDEO_EXYNOS is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set + +# +# Mhl(sii9244) device support +# +CONFIG_SAMSUNG_MHL=y +# CONFIG_SAMSUNG_USE_11PIN_CONNECTOR is not set +# CONFIG_SAMSUNG_SMARTDOCK is not set +CONFIG_SAMSUNG_WORKAROUND_HPD_GLANCE=y +# CONFIG_SAMSUNG_MHL_UNPOWERED is not set +# CONFIG_RADIO_ADAPTERS is not set +# CONFIG_TDMB is not set +# CONFIG_ISDBT is not set + +# +# Graphics support +# +# CONFIG_DRM is not set +CONFIG_ION=y +CONFIG_ION_EXYNOS=y +CONFIG_ION_EXYNOS_CONTIGHEAP_SIZE=71680 +# CONFIG_ION_EXYNOS_CONTIGHEAP_DEBUG is not set +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set +# CONFIG_FB_FOREIGN_ENDIAN is not set +# CONFIG_FB_SYS_FOPS is not set +# CONFIG_FB_WMT_GE_ROPS is not set +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +CONFIG_FB_S5P=y +# CONFIG_FB_S5P_SYSMMU is not set +CONFIG_FB_S5P_SPLASH_SCREEN=y +# CONFIG_FB_S5P_LCD_INIT is not set +# CONFIG_FB_S5P_DEBUG is not set +CONFIG_FB_S5P_VSYNC_THREAD=y +# CONFIG_FB_S5P_VSYNC_SEND_UEVENTS is not set +CONFIG_FB_S5P_VSYNC_SYSFS=y +# CONFIG_FB_S5P_TRACE_UNDERRUN is not set +CONFIG_FB_S5P_DEFAULT_WINDOW=2 +CONFIG_FB_S5P_NR_BUFFERS=2 +# CONFIG_FB_S5P_VIRTUAL is not set +CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMD=12000 +CONFIG_FB_S5P_MDNIE=y +# CONFIG_FB_MDNIE_PWM is not set +CONFIG_FB_MDNIE_RGB_ADJUST=y +# CONFIG_FB_S5P_MIPI_DSIM is not set +CONFIG_FB_BGRA_ORDER=y +# CONFIG_FB_RGBA_ORDER is not set +CONFIG_FB_S5P_LD9040=y +# CONFIG_FB_S5P_NT35560 is not set +# CONFIG_FB_S5P_EXTDSP is not set +# CONFIG_S5P_DSIM_SWITCHABLE_DUAL_LCD is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_TMIO is not set +# CONFIG_FB_S3C is not set +# CONFIG_S5P_MIPI_DSI2 is not set +# CONFIG_FB_UDL is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_BROADSHEET is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=y +# CONFIG_LCD_L4F00242T03 is not set +# CONFIG_LCD_LMS283GF05 is not set +# CONFIG_LCD_LTV350QV is not set +# CONFIG_LCD_TDO24M is not set +# CONFIG_LCD_VGG2432A4 is not set +# CONFIG_LCD_PLATFORM is not set +# CONFIG_LCD_S6E63M0 is not set +# CONFIG_LCD_MIPI_S6E63M0 is not set +# CONFIG_LCD_MIPI_S6E8AB0 is not set +# CONFIG_LCD_MIPI_TC358764 is not set +# CONFIG_LCD_LD9040 is not set +# CONFIG_LCD_WA101S is not set +# CONFIG_LCD_LTE480WV is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_BACKLIGHT_GENERIC is not set +# CONFIG_BACKLIGHT_PWM is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LP855X is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE is not set +# CONFIG_LOGO is not set +CONFIG_SOUND=y +# CONFIG_SOUND_OSS_CORE is not set +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_HWDEP=y +CONFIG_SND_JACK=y +# CONFIG_SND_SEQUENCER is not set +# CONFIG_SND_MIXER_OSS is not set +# CONFIG_SND_PCM_OSS is not set +# CONFIG_SND_HRTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +# CONFIG_SND_SUPPORT_OLD_API is not set +# CONFIG_SND_VERBOSE_PROCFS is not set +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_RAWMIDI_SEQ is not set +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +# CONFIG_SND_DRIVERS is not set +# CONFIG_SND_ARM is not set +# CONFIG_SND_SPI is not set +CONFIG_SND_USB=y +# CONFIG_SND_USB_AUDIO is not set +# CONFIG_SND_USB_UA101 is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_6FIRE is not set +CONFIG_SND_SOC=y +# CONFIG_SND_SOC_CACHE_LZO is not set +CONFIG_SND_SOC_SAMSUNG=y +CONFIG_SND_SAMSUNG_I2S=y +CONFIG_SND_SOC_U1_MC1N2=y +# CONFIG_SND_SOC_SAMSUNG_USE_DMA_WRAPPER is not set +# CONFIG_SND_SAMSUNG_NORMAL is not set +# CONFIG_SND_SAMSUNG_LP is not set +# CONFIG_SND_SAMSUNG_ALP is not set +CONFIG_SND_SAMSUNG_RP=y +CONFIG_AUDIO_SAMSUNG_MEMSIZE_SRP=1024 +# CONFIG_SND_SAMSUNG_RP_DEBUG is not set +# CONFIG_SND_SAMSUNG_I2S_MASTER is not set +# CONFIG_SND_DUOS_MODEM_SWITCH is not set +# CONFIG_SND_USE_SUB_MIC is not set +# CONFIG_SND_USE_THIRD_MIC is not set +# CONFIG_SND_USE_STEREO_SPEAKER is not set +# CONFIG_SND_USE_LINEOUT_SWITCH is not set +# CONFIG_SND_USE_MUIC_SWITCH is not set +CONFIG_SND_SOC_I2C_AND_SPI=y +# CONFIG_SND_SOC_ALL_CODECS is not set +CONFIG_SND_SOC_MC1N2=y +CONFIG_SND_SOC_USE_EXTERNAL_MIC_BIAS=y +# CONFIG_SND_SOC_MC1N2_DEBUG is not set +# CONFIG_SOUND_PRIME is not set +CONFIG_HID_SUPPORT=y +CONFIG_HID=y +# CONFIG_HIDRAW is not set +CONFIG_UHID=y + +# +# USB Input Devices +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +# CONFIG_USB_HIDDEV is not set + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_PRODIKEYS is not set +CONFIG_HID_CYPRESS=y +CONFIG_HID_DRAGONRISE=y +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +CONFIG_HID_ELECOM=y +CONFIG_HID_EZKEY=y +# CONFIG_HID_KEYTOUCH is not set +CONFIG_HID_KYE=y +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +CONFIG_HID_GYRATION=y +# CONFIG_HID_TWINHAN is not set +CONFIG_HID_KENSINGTON=y +# CONFIG_HID_LCPOWER is not set +CONFIG_HID_LOGITECH=y +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWII_FF is not set +CONFIG_HID_MAGICMOUSE=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +CONFIG_HID_NTRIG=y +CONFIG_HID_ORTEK=y +CONFIG_HID_PANTHERLORD=y +# CONFIG_PANTHERLORD_FF is not set +CONFIG_HID_PETALYNX=y +CONFIG_HID_PICOLCD=y +# CONFIG_HID_PICOLCD_FB is not set +# CONFIG_HID_PICOLCD_BACKLIGHT is not set +# CONFIG_HID_PICOLCD_LCD is not set +CONFIG_HID_QUANTA=y +CONFIG_HID_ROCCAT=y +CONFIG_HID_ROCCAT_COMMON=y +# CONFIG_HID_ROCCAT_ARVO is not set +CONFIG_HID_ROCCAT_KONE=y +# CONFIG_HID_ROCCAT_KONEPLUS is not set +# CONFIG_HID_ROCCAT_KOVAPLUS is not set +# CONFIG_HID_ROCCAT_PYRA is not set +CONFIG_HID_SAMSUNG=y +CONFIG_HID_SONY=y +CONFIG_HID_SUNPLUS=y +CONFIG_HID_GREENASIA=y +# CONFIG_GREENASIA_FF is not set +CONFIG_HID_SMARTJOYPLUS=y +# CONFIG_SMARTJOYPLUS_FF is not set +CONFIG_HID_TOPSEED=y +CONFIG_HID_THRUSTMASTER=y +# CONFIG_THRUSTMASTER_FF is not set +CONFIG_HID_WACOM=y +# CONFIG_HID_WACOM_POWER_SUPPLY is not set +CONFIG_HID_ZEROPLUS=y +# CONFIG_ZEROPLUS_FF is not set +CONFIG_HID_ZYDACRON=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_XHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +# CONFIG_USB_DEVICEFS is not set +CONFIG_USB_DEVICE_CLASS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_SUSPEND=y +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_HOST_COMPLIANT_TEST is not set +CONFIG_USB_HOST_NOTIFY=y +CONFIG_USB_MON=y +# CONFIG_USB_WUSB is not set +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +# CONFIG_USB_XHCI_HCD is not set +CONFIG_USB_EHCI_HCD=y +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_S5P=y +CONFIG_USB_S5P_HSIC0=y +CONFIG_USB_S5P_HSIC1=y +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1760_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_OHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_HWA_HCD is not set +CONFIG_USB_S3C_OTG_HOST=y +# CONFIG_USB_MUSB_HDRC is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +CONFIG_USB_PRINTER=y +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB port drivers +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +# CONFIG_USB_QCOM_DIAG_BRIDGE is not set +# CONFIG_USB_QCOM_MDM_BRIDGE is not set +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_FUSB300 is not set +# CONFIG_USB_GADGET_R8A66597 is not set +CONFIG_USB_GADGET_S3C_OTGD=y +# CONFIG_USB_GADGET_PXA_U2O is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set + +# +# NOTE: S3C OTG device role enables the controller driver below +# +CONFIG_USB_S3C_OTGD=y +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_ZERO is not set +# CONFIG_USB_AUDIO is not set +# CONFIG_USB_ETH is not set +# CONFIG_USB_G_NCM is not set +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FUNCTIONFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_MASS_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_PRINTER is not set +# CONFIG_USB_G_SLP is not set +CONFIG_USB_G_ANDROID=y +# CONFIG_USB_ANDROID_SAMSUNG_COMPOSITE is not set +# CONFIG_USB_ANDROID_SAMSUNG_MTP is not set +CONFIG_USB_DUN_SUPPORT=y +# CONFIG_USB_ANDROID is not set +# CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_USB_G_NOKIA is not set +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_G_HID is not set +# CONFIG_USB_G_DBGP is not set +# CONFIG_USB_G_WEBCAM is not set + +# +# OTG and related infrastructure +# +# CONFIG_USB_OTG_WAKELOCK is not set +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ULPI is not set +# CONFIG_NOP_USB_XCEIV is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_UNSAFE_RESUME=y +CONFIG_MMC_CLKGATE=y +CONFIG_MMC_EMBEDDED_SDIO=y +# CONFIG_MMC_PARANOID_SD_INIT is not set +# CONFIG_MMC_NOT_USE_SANITIZE is not set +# CONFIG_MMC_POLLING_WAIT_CMD23 is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=12 +CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set +# CONFIG_MMC_SELECTIVE_PACKED_CMD_POLICY is not set +# CONFIG_MMC_CPRM is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_MSHCI=y +# CONFIG_MMC_MSHCI_S3C_DMA_MAP is not set +# CONFIG_MMC_MSHCI_ASYNC_OPS is not set +# CONFIG_MMC_MSHCI_ENABLE_CACHE is not set +CONFIG_MMC_SDHCI=y +# CONFIG_MMC_SDHCI_PLTFM is not set +CONFIG_MMC_SDHCI_S3C=y +CONFIG_MMC_SDHCI_S3C_DMA=y +# CONFIG_MMC_DW is not set +# CONFIG_MMC_VUB300 is not set +# CONFIG_MMC_USHC is not set +# CONFIG_MEMSTICK is not set +# CONFIG_LEDS_SPFCW043 is not set +# CONFIG_NEW_LEDS is not set +# CONFIG_NFC_DEVICES is not set +CONFIG_SWITCH=y +CONFIG_SWITCH_GPIO=y +# CONFIG_ACCESSIBILITY is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +CONFIG_RTC_INTF_ALARM=y +CONFIG_RTC_INTF_ALARM_DEV=y +# CONFIG_RTC_ALARM_BOOT is not set +# CONFIG_RTC_POWER_OFF is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +CONFIG_RTC_DRV_MAX8997=y +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_M41T93 is not set +# CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1305 is not set +# CONFIG_RTC_DRV_DS1390 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_DS3234 is not set +# CONFIG_RTC_DRV_PCF2123 is not set + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# +CONFIG_HAVE_S3C_RTC=y +CONFIG_RTC_DRV_S3C=y +# CONFIG_DMADEVICES is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +CONFIG_STAGING=y +# CONFIG_VIDEO_TM6000 is not set +# CONFIG_USBIP_CORE is not set +# CONFIG_PRISM2_USB is not set +# CONFIG_ECHO is not set +# CONFIG_BRCMUTIL is not set +# CONFIG_ASUS_OLED is not set +# CONFIG_R8712U is not set +# CONFIG_TRANZPORT is not set + +# +# Android +# +CONFIG_ANDROID=y +CONFIG_ANDROID_BINDER_IPC=y +CONFIG_ANDROID_LOGGER=y +CONFIG_ANDROID_RAM_CONSOLE=y +CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y +CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION=y +CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_DATA_SIZE=128 +CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_ECC_SIZE=16 +CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_SYMBOL_SIZE=8 +CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_POLYNOMIAL=0x11d +# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set +CONFIG_ANDROID_TIMED_OUTPUT=y +CONFIG_ANDROID_TIMED_GPIO=y +CONFIG_ANDROID_LOW_MEMORY_KILLER=y +CONFIG_ANDROID_LOW_MEMORY_KILLER_AUTODETECT_OOM_ADJ_VALUES=y +CONFIG_ANDROID_LMK_ADJ_RBTREE=y +# CONFIG_POHMELFS is not set +# CONFIG_LINE6_USB is not set +# CONFIG_VT6656 is not set +# CONFIG_IIO is not set +# CONFIG_FB_SM7XX is not set +# CONFIG_LIRC_STAGING is not set +# CONFIG_EASYCAP is not set +# CONFIG_MACH_C110_WESTBRIDGE_AST_PNAND_HAL is not set +CONFIG_MACH_NO_WESTBRIDGE=y +# CONFIG_ATH6K_LEGACY is not set +# CONFIG_USB_ENESTORAGE is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_VIBETONZ=y +CONFIG_MOTOR_DRV_MAX8997=y +# CONFIG_MOTOR_DRV_ISA1200 is not set +CONFIG_FM_RADIO=y +CONFIG_FM_SI4709=m +# CONFIG_FM_SI4705 is not set +CONFIG_SENSORS_CORE=y +CONFIG_SENSORS_AK8975C=y +# CONFIG_SENSORS_AK8963C is not set +# CONFIG_SENSORS_BMP180 is not set +CONFIG_SENSORS_CM3663=y +# CONFIG_SENSORS_PAS2M110 is not set +# CONFIG_SENSORS_BMA254 is not set +# CONFIG_SENSORS_TAOS is not set +# CONFIG_SENSORS_GP2A is not set +# CONFIG_SENSORS_GP2A_ANALOG is not set +# CONFIG_SENSORS_CM36651 is not set +# CONFIG_SENSORS_BH1721 is not set +# CONFIG_SENSORS_AL3201 is not set +# CONFIG_SENSORS_K2DH is not set +CONFIG_SENSORS_K3DH=y +# CONFIG_SENSOR_K3DH_INPUTDEV is not set +CONFIG_SENSORS_K3G=y +# CONFIG_SENSORS_LSM330DLC is not set +# CONFIG_SENSORS_LPS331 is not set +# CONFIG_SENSORS_YAS532 is not set +# CONFIG_SENSORS_YAS_ORI is not set +CONFIG_INPUT_YAS_MAGNETOMETER_POSITION=0 +# CONFIG_SENSORS_SYSFS is not set +# CONFIG_SENSORS_SSP is not set +# CONFIG_SENSORS_SSP_LSM330 is not set +# CONFIG_SENSORS_SSP_AK8963C is not set +# CONFIG_SENSORS_SSP_CM36651 is not set +# CONFIG_SENSORS_SSP_BMP182 is not set +# CONFIG_SENSORS_SSP_AT32UC3L0128 is not set +# CONFIG_SENSORS_SSP_SENSORHUB is not set +# CONFIG_PM_DEVFREQ is not set +# CONFIG_SAMSUNG_PHONE_SVNET is not set +CONFIG_ACCESSORY=y +# CONFIG_30PIN_CONN is not set +# CONFIG_MHL_SII9234 is not set +# CONFIG_SEC_KEYBOARD_DOCK is not set +# CONFIG_HPD_PULL is not set +# CONFIG_SAMSUNG_MHL_9290 is not set +# CONFIG_IR_REMOCON is not set +# CONFIG_EXTCON is not set +# CONFIG_BARCODE_EMUL is not set +# CONFIG_SAMSUNG_PHONE_TTY is not set +CONFIG_IOMMU_SUPPORT=y +# CONFIG_FELICA is not set +# CONFIG_AUTHENTEC_VPNCLIENT_INTERCEPTOR is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXT4_FS_XATTR=y +# CONFIG_EXT4_FS_POSIX_ACL is not set +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +# CONFIG_DNOTIFY is not set +CONFIG_INOTIFY_USER=y +# CONFIG_FANOTIFY is not set +# CONFIG_QUOTA is not set +# CONFIG_QUOTACTL is not set +# CONFIG_AUTOFS4_FS is not set +CONFIG_FUSE_FS=y +# CONFIG_CUSE is not set +CONFIG_GENERIC_ACL=y + +# +# Caches +# +# CONFIG_FSCACHE is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +CONFIG_ECRYPT_FS=y +CONFIG_WTL_ENCRYPTION_FILTER=y +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_LOGFS is not set +# CONFIG_CRAMFS is not set +# CONFIG_SQUASHFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_F2FS_FS=y +# CONFIG_F2FS_STAT_FS is not set +CONFIG_F2FS_FS_XATTR=y +# CONFIG_F2FS_FS_POSIX_ACL is not set +CONFIG_F2FS_FS_SECURITY=y +# CONFIG_F2FS_CHECK_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NFS_V4_1 is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set +# CONFIG_NFSD is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_CEPH_FS is not set +CONFIG_CIFS=m +CONFIG_CIFS_STATS=y +CONFIG_CIFS_STATS2=y +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_ACL=y +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Kernel hacking +# +CONFIG_PRINTK_TIME=y +CONFIG_PRINTK_CPU_ID=y +# CONFIG_PRINTK_PID is not set +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +CONFIG_MAGIC_SYSRQ=y +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_LOCKUP_DETECTOR=y +# CONFIG_HARDLOCKUP_DETECTOR is not set +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1 +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1 +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1 +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_STATS is not set +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_LOCK_STAT is not set +CONFIG_DEBUG_SPINLOCK_SLEEP=y +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_FRAME_POINTER=y +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_CPU_STALL_VERBOSE=y +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_LKDTM is not set +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_LATENCYTOP is not set +CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_DYNAMIC_DEBUG is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_STRICT_DEVMEM is not set +# CONFIG_ARM_UNWIND is not set +CONFIG_DEBUG_USER=y +# CONFIG_DEBUG_LL is not set +# CONFIG_OC_ETM is not set +CONFIG_DEBUG_S3C_UART=1 +# CONFIG_CACHE_PERF is not set + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +# CONFIG_SECURITY_DMESG_RESTRICT is not set +CONFIG_SECURITY=y +# CONFIG_SECURITYFS is not set +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +# CONFIG_SECURITY_PATH is not set +CONFIG_LSM_MMAP_MIN_ADDR=32768 +CONFIG_SECURITY_SELINUX=y +# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set +# CONFIG_SECURITY_SELINUX_DISABLE is not set +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_IMA is not set +CONFIG_DEFAULT_SECURITY_SELINUX=y +# CONFIG_DEFAULT_SECURITY_DAC is not set +CONFIG_DEFAULT_SECURITY="selinux" +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_FIPS=y +CONFIG_CRYPTO_FIPS_INTEG_OFFSET=0x2B000000 +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER_TESTS=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=y +# CONFIG_CRYPTO_PCRYPT is not set +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_AUTHENC=y +CONFIG_CRYPTO_TEST=y + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +CONFIG_CRYPTO_SEQIV=y + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_CTS=y +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set + +# +# Hash modes +# +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_GHASH=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_ARM=y +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_ARC4=y +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_TWOFISH_COMMON=y + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_ZLIB is not set +CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_LZ4=y +# CONFIG_CRYPTO_LZ4HC is not set + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=y +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +CONFIG_CRYPTO_HW=y +# CONFIG_CRYPTO_S5P_DEV_ACE is not set +# CONFIG_BINARY_PRINTF is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC7 is not set +CONFIG_LIBCRC32C=y +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_LZ4_COMPRESS=y +CONFIG_LZ4_DECOMPRESS=y +# CONFIG_XZ_DEC is not set +# CONFIG_XZ_DEC_BCJ is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_REED_SOLOMON=y +CONFIG_REED_SOLOMON_ENC8=y +CONFIG_REED_SOLOMON_DEC8=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=y +CONFIG_TEXTSEARCH_BM=y +CONFIG_TEXTSEARCH_FSM=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_DMA=y +CONFIG_CPU_RMAP=y +CONFIG_NLATTR=y +# CONFIG_AVERAGE is not set diff --git a/aports/linux-samsung-i9100/init b/aports/linux-samsung-i9100/init new file mode 100644 index 00000000..1011f231 --- /dev/null +++ b/aports/linux-samsung-i9100/init @@ -0,0 +1,29 @@ +#!/stage1/busybox sh + +# Samsung kernels come with their own initramfs, which extract and load another +# initramfs. Usually that depends on the recovery key combination being pressed +# or not. For simplicity, we always boot the recovery image (from the recovery +# partition) here. + +_PATH="$PATH" +export PATH=/stage1 + +busybox cd / +busybox date >>boot.txt +exec >>boot.txt 2>&1 +busybox rm init +busybox mount -t proc proc /proc +busybox mount -t sysfs sysfs /sys + +# always use the "isorec"-style lzop compressed initramfs +# from the recovery partition +load_image=/stage1/isorec.cpio +busybox lzop -dc /dev/block/mmcblk0p6 > ${load_image} +busybox cpio -i < ${load_image} + +busybox umount /sys +busybox umount /proc +busybox date >>boot.txt +busybox rm -fr /stage1 /dev/* +export PATH="${_PATH}" +exec /init diff --git a/aports/mkbootimg/APKBUILD b/aports/mkbootimg/APKBUILD new file mode 100644 index 00000000..1918c75e --- /dev/null +++ b/aports/mkbootimg/APKBUILD @@ -0,0 +1,22 @@ +pkgname=mkbootimg +pkgver="7.1.2_r6" +pkgrel=1 +pkgdesc="Android bootimg (zimage + initramfs) creation tool" +url="https://android.googlesource.com" +arch="noarch" +license="APACHE2" +depends="python3" +subpackages="" +source="$pkgname-$pkgver.py.base64::https://android.googlesource.com/platform/system/core/+/android-${pkgver}/${pkgname}/${pkgname}?format=TEXT" +options="!check" + +build() { + base64 -d $srcdir/$pkgname-$pkgver.py.base64 > $srcdir/$pkgname + sed -i -e 's./usr/bin/env python./usr/bin/env python3.' $srcdir/$pkgname +} + +package() { + install -Dm755 $srcdir/$pkgname $pkgdir/usr/bin/$pkgname +} + +sha512sums="7aac61bf55e0c3627e71a1247ebd5636bc475919b50e34e289639745a051a4e1b31de273bfc75aaecc2e059007721e729c277199b4b4cec514541865a59e3312 mkbootimg-7.1.2_r6.py.base64" diff --git a/aports/musl-armhf/APKBUILD b/aports/musl-armhf/APKBUILD new file mode 100644 index 00000000..b98ae1a4 --- /dev/null +++ b/aports/musl-armhf/APKBUILD @@ -0,0 +1,50 @@ +# Automatically generated aport, do not edit! +# Generator: pmbootstrap aportgen musl-armhf + +pkgname=musl-armhf +pkgver=1.1.16 +pkgrel=9 +subpackages="musl-dev-armhf:package_dev" + +_arch="armhf" +_mirror="https://mirror1.hs-esslingen.de/pub/Mirrors/alpine/" + +url="https://musl-libc.org" +license="MIT" +arch="all" +options="!check !strip" +pkgdesc="the musl library (lib c) implementation for $_arch" + +_target="$(arch_to_hostspec $_arch)" + +source=" + musl-$pkgver-r$pkgrel-$_arch.apk::$_mirror/edge/main/$_arch/musl-$pkgver-r$pkgrel.apk + musl-dev-$pkgver-r$pkgrel-$_arch.apk::$_mirror/edge/main/$_arch/musl-dev-$pkgver-r$pkgrel.apk +" + +package() { + mkdir -p "$pkgdir/usr/$_target" + cd "$pkgdir/usr/$_target" + tar -xf $srcdir/musl-$pkgver-r$pkgrel-$_arch.apk + rm .PKGINFO .SIGN.* +} +package_dev() { + mkdir -p "$subpkgdir/usr/$_target" + cd "$subpkgdir/usr/$_target" + tar -xf $srcdir/musl-dev-$pkgver-r$pkgrel-$_arch.apk + rm .PKGINFO .SIGN.* + + # symlink everything from /usr/$_target/usr/* to /usr/$_target/* + # so the cross-compiler gcc does not fail to build. + for _dir in include lib; do + mkdir -p "$subpkgdir/usr/$_target/$_dir" + cd "$subpkgdir/usr/$_target/usr/$_dir" + for i in *; do + cd "$subpkgdir/usr/$_target/$_dir" + ln -s /usr/$_target/usr/$_dir/$i $i + done + done +} + +sha512sums="865478e9ed9b97e8cedbe18cecb72611fd777c0fa45eebc67eae818084d0a3a5a85c6f37be5a874f48a8dcbb8c51ed4ceef6b33257215358e30ecddbb415c4b8 musl-1.1.16-r9-armhf.apk +b6db9a9697b7bca35052cf5a247f2250d4e134f259584d98a48157c996c319e1e3d682b0cd68b90a86f5ea04eff4c2134f79be7aaff3d1b077934d4e45164e1d musl-dev-1.1.16-r9-armhf.apk" \ No newline at end of file diff --git a/aports/postmarketos-base/APKBUILD b/aports/postmarketos-base/APKBUILD new file mode 100644 index 00000000..12d4c756 --- /dev/null +++ b/aports/postmarketos-base/APKBUILD @@ -0,0 +1,26 @@ +pkgname=postmarketos-base +pkgver=1 +pkgrel=6 +pkgdesc="Meta package for minimal postmarketos base" +url="https://github.com/postmarketOS" +arch="noarch" +license="GPL3+" +depends="alpine-base haveged cryptsetup wpa_supplicant iw openssh mosh +tmux htop nano postmarketos-mkinitfs eudev sudo" +makedepends="" +install="$pkgname.post-install" +subpackages="" +source="profile.sh weston.ini sudoers" +options="!check" + +package() { + install -D -m644 "$srcdir"/profile.sh \ + "$pkgdir"/etc/profile.d/postmarketos.sh || return 1 + install -D -m644 "$srcdir"/weston.ini \ + "$pkgdir"/etc/xdg/weston/weston.ini + install -D -m644 "$srcdir"/sudoers \ + "$pkgdir"/etc/sudoers.d/postmarketos +} +sha512sums="d763c73c42795c05d28eeebfb6ef21e2c9706849331c485dbbf1ec7ea4f95cbeed4f6f615f5815f5a7acb9e0d30232cc7fe38c982ce1c7c4c8dfe8fabfe783ca profile.sh +0f4dcb493503081e0045b768bc81bb41096fdb5a340c4b5f23e7954f2bac7fd723ee00470bef400786725ab143bcc53e51607f28370c0c2533cbba623a5d9b13 weston.ini +c6de3b44bc45b9f9c641a7e34c69a481ee39b99ac0251cd28f2b3aae49c1a8d1ca448f4936b7942b1a8b8f7c18a5415c938098765ed8cf08456543800160e64b sudoers" diff --git a/aports/postmarketos-base/postmarketos-base.post-install b/aports/postmarketos-base/postmarketos-base.post-install new file mode 100644 index 00000000..165f0834 --- /dev/null +++ b/aports/postmarketos-base/postmarketos-base.post-install @@ -0,0 +1,27 @@ +#!/bin/sh + +# Enable OpenRC services +for service in devfs dmesg; do + rc-update -q add $service sysinit +done +for service in hwclock modules sysctl hostname bootmisc wpa_supplicant wifi-handler; do + rc-update -q add $service boot +done +for service in haveged sshd udev; do + rc-update -q add $service default +done +for service in mount-ro killprocs savecache; do + rc-update -q add $service shutdown +done + +# Add user account +adduser -u 1000 -D -h /home/user -G users user 2>/dev/null + +# Autologin on tty1, disable tty 3-5 +autologin="root" +for i in 1 3 4 5 6; do + old="^tty$i::respawn:/sbin/getty 38400 tty$i" + new="# tty$i::respawn:/sbin/getty 38400 tty$i" + [ "$i" == "1" ] && new="tty1::respawn:/bin/login -f $autologin" + sed -i -e "s.$old.$new.g" /etc/inittab +done diff --git a/aports/postmarketos-base/profile.sh b/aports/postmarketos-base/profile.sh new file mode 100644 index 00000000..46a76667 --- /dev/null +++ b/aports/postmarketos-base/profile.sh @@ -0,0 +1,24 @@ +export DISPLAY=:0 + +if test -z "${XDG_RUNTIME_DIR}"; then + # https://wayland.freedesktop.org/building.html + export XDG_RUNTIME_DIR=/tmp/$(id -u)-runtime-dir + if ! test -d "${XDG_RUNTIME_DIR}"; then + mkdir "${XDG_RUNTIME_DIR}" + chmod 0700 "${XDG_RUNTIME_DIR}" + fi + + # Weston autostart on tty1 (Autologin on tty1 is enabled in + # /etc/inittab by postmarketos-base post-install.hook) + if [ $(tty) = "/dev/tty1" ]; then + udevadm trigger + udevadm settle + (sleep 2; postmarketos-demos) & + weston --backend=fbdev-backend.so >/tmp/weston.log 2>&1 + + # In case of failure, restart after 1s + sleep 1 + exit + fi +fi + diff --git a/aports/postmarketos-base/sudoers b/aports/postmarketos-base/sudoers new file mode 100644 index 00000000..7124d548 --- /dev/null +++ b/aports/postmarketos-base/sudoers @@ -0,0 +1,2 @@ +# Allow running all commands as root, when the user password is known +user ALL=(ALL) ALL diff --git a/aports/postmarketos-base/weston.ini b/aports/postmarketos-base/weston.ini new file mode 100644 index 00000000..fd6f5222 --- /dev/null +++ b/aports/postmarketos-base/weston.ini @@ -0,0 +1,2 @@ +[core] +modules=xwayland.so diff --git a/aports/postmarketos-demos/APKBUILD b/aports/postmarketos-demos/APKBUILD new file mode 100644 index 00000000..88d2cefb --- /dev/null +++ b/aports/postmarketos-demos/APKBUILD @@ -0,0 +1,24 @@ +pkgname=postmarketos-demos +pkgver=3 +pkgrel=1 +pkgdesc="Simple touch menu for a few demo programs" +url="https://github.com/postmarketOS" +arch="all" +license="GPL3+" +depends="weston-clients firefox" +makedepends="gtk+3.0-dev" +subpackages="" +source="main.c Makefile" +options="!check" + +build() { + cd "$srcdir" + make +} + +package() { + install -D -m755 "$srcdir"/postmarketos-demos \ + "$pkgdir"/usr/bin/postmarketos-demos || return 1 +} +sha512sums="7cb25e4d6a0224800703d0ee138edbf1b4ab71120190445d1fa57bec0835a9ab0b37fb343a4f6e01de3e3c7ffc2fc5c0c9bbcb15f9e867a9f9014ed682a10275 main.c +83d8a95e9e1e95dffa8661e547444e83e72e572dcd0c637376f678bbd20a351c4b971a315311edefeb58a4cca14fd3e586fb581a262b2d217e25092459539b98 Makefile" diff --git a/aports/postmarketos-demos/Makefile b/aports/postmarketos-demos/Makefile new file mode 100755 index 00000000..63f85ef8 --- /dev/null +++ b/aports/postmarketos-demos/Makefile @@ -0,0 +1,3 @@ +postmarketos-demos: main.c + $(CC) `pkg-config --cflags gtk+-3.0` -o postmarketos-demos \ + main.c `pkg-config --libs gtk+-3.0` -Werror diff --git a/aports/postmarketos-demos/main.c b/aports/postmarketos-demos/main.c new file mode 100644 index 00000000..b296c032 --- /dev/null +++ b/aports/postmarketos-demos/main.c @@ -0,0 +1,59 @@ +#include +#include + +static void onclick(GtkWidget *widget, gpointer command) +{ + system((const char*)command); +} + +static void activate(GtkApplication *app, gpointer user_data) +{ + GtkWidget *window = gtk_application_window_new(app); + gtk_window_set_title(GTK_WINDOW (window), "postmarketOS demos"); + + GtkWidget *button_box = gtk_button_box_new( + GTK_ORIENTATION_VERTICAL); + gtk_container_add(GTK_CONTAINER (window), button_box); + + const char *programs[] = { + "weston-presentation-shm (Animation)", + "weston-presentation-shm &", + "weston-simple-damage (Animation)", + "weston-simple-damage &", + "weston-smoke (Touch)", + "weston-smoke &", + "weston-editor (Touch)", + "weston-editor &", + "htop (Terminal)", + "weston-terminal --shell=/usr/bin/htop &", + "Firefox (XWayland)", + "firefox &", + "GTK3 Demo", + "gtk3-demo &", + "Restart Weston", + "killall weston &" + }; + + for(int i=0;i<(sizeof(programs) / sizeof(const char*));i+=2) + { + const char *title = programs[i]; + const char *command = programs[i+1]; + + GtkWidget *button = gtk_button_new_with_label(title); + gtk_widget_set_size_request(button, 200, 80); + g_signal_connect(button, "clicked", G_CALLBACK (onclick), + (void*)command); + gtk_container_add(GTK_CONTAINER(button_box), button); + } + gtk_widget_show_all (window); +} + +int main (int argc, char **argv) +{ + GtkApplication *app = gtk_application_new("org.postmarketos.demos", + G_APPLICATION_FLAGS_NONE); + g_signal_connect (app, "activate", G_CALLBACK(activate), NULL); + int status = g_application_run(G_APPLICATION(app), argc, argv); + g_object_unref(app); + return status; +} diff --git a/aports/postmarketos-mkinitfs-hook-usb-shell/20-usb-shell.sh b/aports/postmarketos-mkinitfs-hook-usb-shell/20-usb-shell.sh new file mode 100644 index 00000000..7fc09df6 --- /dev/null +++ b/aports/postmarketos-mkinitfs-hook-usb-shell/20-usb-shell.sh @@ -0,0 +1,12 @@ +#!/bin/sh +IP=192.168.2.15 +TELNET_PORT=24 + +telnetd -b "${IP}:${TELNET_PORT}" -l /bin/sh + +echo "---" +echo "WARNING: usb shell is active on ${IP}:${TELNET_PORT}." +echo "This is a security hole! Only use it for debugging, and" +echo "uninstall the usb-shell hook afterwards!" +echo "---" + diff --git a/aports/postmarketos-mkinitfs-hook-usb-shell/APKBUILD b/aports/postmarketos-mkinitfs-hook-usb-shell/APKBUILD new file mode 100644 index 00000000..69a4b60b --- /dev/null +++ b/aports/postmarketos-mkinitfs-hook-usb-shell/APKBUILD @@ -0,0 +1,21 @@ +pkgname=postmarketos-mkinitfs-hook-usb-shell +pkgver=0.0.1 +pkgrel=1 +pkgdesc="Root shell in the initramfs (security hole, for debugging only)" +url="https://github.com/postmarketOS" +# multipath-tools: kpartx +depends="postmarketos-mkinitfs" +source="20-usb-shell.sh" +arch="noarch" +license="GPL2" + +build() { + return 0 +} + +package() { + mkdir -p "$pkgdir"/etc/postmarketos-mkinitfs/hooks/ + install -Dm644 "$srcdir"/20-usb-shell.sh \ + "$pkgdir"/etc/postmarketos-mkinitfs/hooks/ +} +sha512sums="0e8631d66131368ace5650afcb29abc718e0dd2d62aac49655b5e9ecd24ca3ceb1e0d51c51f38440e6ef44c88e03921bfc70fff8712201fae1f96456068480e4 20-usb-shell.sh" diff --git a/aports/postmarketos-mkinitfs/10-usb-unlock.sh b/aports/postmarketos-mkinitfs/10-usb-unlock.sh new file mode 100644 index 00000000..28ef730b --- /dev/null +++ b/aports/postmarketos-mkinitfs/10-usb-unlock.sh @@ -0,0 +1,51 @@ +#!/bin/sh +IP=192.168.2.15 +TELNET_PORT=23 + +usb_setup_android() { + SYS=/sys/class/android_usb/android0 + [ -e "$SYS" ] || return + printf "%s" "0" > "$SYS/enable" + printf "%s" "18D1" > "$SYS/idVendor" + printf "%s" "D001" > "$SYS/idProduct" + printf "%s" "rndis" > "$SYS/functions" + printf "%s" "1" > "$SYS/enable" +} + +dhcpcd_start() +{ + # get usb interface + INTERFACE="" + ifconfig rndis0 "$IP" && INTERFACE=rndis0 + if [ -z $INTERFACE ]; then + ifconfig usb0 "$IP" && INTERFACE=usb0 + fi + + # create /etc/udhcpd.conf + { + echo "start 192.168.2.20" + echo "end 192.168.2.90" + echo "lease_file /var/udhcpd.leases" + echo "interface $INTERFACE" + echo "option subnet 255.255.255.0" + } > /etc/udhcpd.conf + udhcpd +} + +telnetd_start() +{ + mkdir -p /dev/pts + mount -t devpts devpts /dev/pts + { + echo '#!/bin/sh' + echo '. /init_functions.sh' + echo 'unlock_root_partition' + echo 'killall cryptsetup telnetd' + } > /telnet_connect.sh + chmod +x /telnet_connect.sh + telnetd -b "${IP}:${TELNET_PORT}" -l /telnet_connect.sh +} + +usb_setup_android +dhcpcd_start +telnetd_start diff --git a/aports/postmarketos-mkinitfs/APKBUILD b/aports/postmarketos-mkinitfs/APKBUILD new file mode 100644 index 00000000..16505ed6 --- /dev/null +++ b/aports/postmarketos-mkinitfs/APKBUILD @@ -0,0 +1,35 @@ +pkgname=postmarketos-mkinitfs +pkgver=0.0.5 +pkgrel=1 +pkgdesc="Tool to generate initramfs images for postmarketos" +url="https://github.com/postmarketOS" +# multipath-tools: kpartx +depends="busybox-extras lddtree cryptsetup kmod multipath-tools" +triggers="$pkgname.trigger=/usr/share/kernel/*" +source="init.sh.in init_functions.sh mkinitfs.sh 10-usb-unlock.sh splash1.ppm.gz splash2.ppm.gz" +arch="noarch" +license="GPL2" +provides="mkinitfs=0.0.1" + +build() { + return 0 +} + +package() { + mkdir -p "$pkgdir/usr/share/postmarketos-mkinitfs/" + for file in init.sh.in init_functions.sh splash*.ppm.gz; do + install -Dm644 "$srcdir/$file" \ + "$pkgdir/usr/share/postmarketos-mkinitfs/$file" + done + install -Dm755 "$srcdir/mkinitfs.sh" \ + "$pkgdir/sbin/mkinitfs" + mkdir -p "$pkgdir/etc/postmarketos-mkinitfs/hooks/" + install -Dm644 "$srcdir/10-usb-unlock.sh" \ + "$pkgdir/etc/postmarketos-mkinitfs/hooks/" +} +sha512sums="ec45d62b2c064dc5cb209871a2665f84cc47092e87ce0b535967f79c1a65b956fbec41f91b4b6d1fbc8f974d8c7a50915bcb551a275be61dda69c45e43c1fa69 init.sh.in +3ebc5fa2220a8da920ebca67f14c38b0c296eafdbcf312997b442a020d1683bd622a42a946a61b4d80cbecf28853c915480e26ffe59eda57769855303b67bbdf init_functions.sh +b100af464cae8b4fb178201ff9cc99733a081ae5d6308bfdf10262c75031390206a59e1b6e5b55a494f9f7a9bdd95a85955c05fdbcf0929e6a05f30443987b54 mkinitfs.sh +330cd7dd31d7685f732a4c3dc2720aba33e467a5b76ccf2304bcf5663cffcbc469443152b64c684e1025121f0e429aabe5c24b73278feb0cc2296c19a4552103 10-usb-unlock.sh +b8562b2e944971a7b9849b9d463aaee417595f2c56f16cfb252535acf0b48c026372b0b49a53bdd5d9dc29312f05d3f3d3ee444d64401f0c2e13bc2132efb63e splash1.ppm.gz +bf11d8b3a50db984cfbb2cafe6687de327242c1f6f56c6fdd02ca579b05213f9c886aa1c0527530fdec21b16e65e68962e40a600c4ce155819df2f610b435087 splash2.ppm.gz" diff --git a/aports/postmarketos-mkinitfs/TODO b/aports/postmarketos-mkinitfs/TODO new file mode 100644 index 00000000..0fbb3e5a --- /dev/null +++ b/aports/postmarketos-mkinitfs/TODO @@ -0,0 +1,8 @@ +- use device labels or uuids inside init to properly detect the right + partition + +- support for adding files/modules in hooks (one file per hook): + - add build() function + - should have add_module and add_file functions + - add run() function + diff --git a/aports/postmarketos-mkinitfs/init.sh.in b/aports/postmarketos-mkinitfs/init.sh.in new file mode 100644 index 00000000..5075bdb3 --- /dev/null +++ b/aports/postmarketos-mkinitfs/init.sh.in @@ -0,0 +1,37 @@ +#!/bin/sh +. ./init_functions.sh + +export PATH=/usr/bin:/bin:/usr/sbin:/sbin +/bin/busybox --install -s + +# kernel modules +modprobe -a @MODULES@ + +# mdev +mount -t proc -o nodev,noexec,nosuid proc /proc +mount -t sysfs -o nodev,noexec,nosuid sysfs /sys +echo /sbin/mdev > /proc/sys/kernel/hotplug +mdev -s + +# subpartitions +mount_subpartitions + +# hooks +for hook in /etc/postmarketos-mkinitfs/hooks/*.sh; do + [ -e "$hook" ] || continue + sh "$hook" +done +show_splash /splash1.ppm.gz + +# unlock root partition +unlock_root_partition + +# switch root +show_splash /splash2.ppm.gz +killall telnetd mdev 2&> /dev/null +mount -w -t ext4 /dev/mapper/root /sysroot +umount /proc +umount /sys +umount /dev/pts +umount /dev +exec switch_root /sysroot /sbin/init diff --git a/aports/postmarketos-mkinitfs/init_functions.sh b/aports/postmarketos-mkinitfs/init_functions.sh new file mode 100644 index 00000000..ac6ba150 --- /dev/null +++ b/aports/postmarketos-mkinitfs/init_functions.sh @@ -0,0 +1,49 @@ +#!/bin/sh +# This file will be in /init_functions.sh inside the initramfs. + +mount_subpartitions() +{ + for i in /dev/mmcblk*; do + case "$(kpartx -l "$i" 2> /dev/null | wc -l)" in + 2) + echo "mount subpartitions of $i" + kpartx -afs "$i" + break + ;; + *) + continue + ;; + esac + done +} + +find_root_partition() +{ + for i in /dev/mapper/* /dev/mmcblk*; do + cryptsetup isLuks "$i" || continue + echo "$i" + break + done +} + +unlock_root_partition() +{ + while ! [ -e /dev/mapper/root ]; do + partition="$(find_root_partition)" + if [ -z "$partition" ]; then + echo "Could not find cryptsetup partition." + echo "Maybe you need to insert the sdcard, if your device has" + echo "any? Trying again in one second..." + sleep 1 + else + cryptsetup luksOpen "$partition" root + fi + done +} + +# $1: path to ppm.gz file +show_splash() +{ + gzip -c -d "$1" > /tmp/splash.ppm + fbsplash -s /tmp/splash.ppm +} diff --git a/aports/postmarketos-mkinitfs/mkinitfs.sh b/aports/postmarketos-mkinitfs/mkinitfs.sh new file mode 100644 index 00000000..a61551a8 --- /dev/null +++ b/aports/postmarketos-mkinitfs/mkinitfs.sh @@ -0,0 +1,163 @@ +#!/bin/sh + +source_deviceinfo() +{ + if [ ! -e "/etc/deviceinfo" ]; then + echo "ERROR: Missing /etc/deviceinfo!" + exit 1 + fi + . /etc/deviceinfo + if [ -z "${deviceinfo_modules_initfs}" ]; then + echo "WARNING: deviceinfo_modules_initfs is empty!" + fi +} + +parse_commandline() +{ + if [ "$1" != "-o" ]; then + echo "postmarketos-mkinitfs" + echo "usage: $(basename $0) -o OUTFILE KERNELVERSION" + exit 1 + fi + + outfile=$2 + kernel=$3 + modules_path="/lib/modules/${kernel}" + + if [ ! -d ${abi_path} ]; then + echo "ERROR: Modules path not found: ${modules_path}" + exit 1 + fi +} + +create_folders() +{ + for dir in /bin /sbin /usr/bin /usr/sbin /proc /sys /dev /tmp /lib \ + /sysroot; do + mkdir -p "$tmpdir$dir" + done +} + +get_modules_by_globs() +{ + globs=" + # base.modules + kernel/drivers/block/loop.ko + kernel/fs/overlayfs + + # cryptsetup.modules + kernel/crypto/* + kernel/arch/*/crypto/* + kernel/drivers/md/dm-crypt.ko + + # kms.modules + kernel/drivers/char/agp + kernel/drivers/gpu + kernel/drivers/i2c + kernel/drivers/video + kernel/arch/x86/video/fbdev.ko + + # mmc.modules + kernel/drivers/mmc + + # required for modprobe + modules.* + " + + for glob in $globs; do + for file in /lib/modules/$kernel/$glob; do + if [ -d "$file" ]; then + find $file -type f + elif [ -e "$file" ]; then + echo $file + fi + done + done +} + +# NOTE: This does not work with busybox' modprobe +# That's why postmarketos-mkinitfs depends on kmod +get_modules_by_name() +{ + MODULES="drm_kms_helper drm dm_crypt ext4 \ + ${deviceinfo_modules_initfs}" + modprobe \ + -a \ + --dry-run \ + --show-depends \ + --set-version="$kernel" \ + $MODULES \ + | sort -u \ + | cut -d ' ' -f 2 +} + +get_modules() +{ + get_modules_by_globs + get_modules_by_name +} + +# Get the paths to all binaries and their dependencies +get_binaries() +{ + BINARIES="/bin/busybox /sbin/cryptsetup /usr/sbin/telnetd /sbin/kpartx" + lddtree -l $BINARIES | sort -u +} + +# Copy files to the same destination in the initramfs +# FIXME: this is a performance bottleneck +# $1: files +copy_files() +{ + for file in $1; do + install -Dm755 $file $tmpdir$file + done +} + +create_device_nodes() +{ + mknod -m 666 $tmpdir/dev/null c 1 3 + mknod -m 644 $tmpdir/dev/random c 1 8 + mknod -m 644 $tmpdir/dev/urandom c 1 9 +} + +replace_init_variables() +{ + sed -i "s:@MODULES@:${deviceinfo_modules_initfs} ext4:g" $tmpdir/init +} + +create_cpio_image() +{ + cd "$tmpdir" + find . -print0 \ + | cpio --quiet -o -H newc \ + | gzip -1 > "$outfile" +} + +# initialize +source_deviceinfo +parse_commandline $1 $2 $3 +echo "==> initramfs: creating $outfile" +tmpdir=$(mktemp -d /tmp/mkinitfs.XXXXXX) + +# set up initfs in temp folder +create_folders +copy_files "$(get_modules)" +copy_files "$(get_binaries)" +copy_files "/etc/postmarketos-mkinitfs/hooks/*.sh" +create_device_nodes +ln -s "/bin/busybox" "$tmpdir/bin/sh" +install -Dm755 "/usr/share/postmarketos-mkinitfs/init.sh.in" \ + "$tmpdir/init" +install -Dm755 "/usr/share/postmarketos-mkinitfs/init_functions.sh" \ + "$tmpdir/init_functions.sh" + +for i in /usr/share/postmarketos-mkinitfs/splash*.ppm.gz; do + install -Dm644 "$i" "$tmpdir"/"$(basename $i)" +done + +# finish up +replace_init_variables +create_cpio_image +rm -rf "$tmpdir" +exit 0 diff --git a/aports/postmarketos-mkinitfs/postmarketos-mkinitfs.trigger b/aports/postmarketos-mkinitfs/postmarketos-mkinitfs.trigger new file mode 100644 index 00000000..e6f928cb --- /dev/null +++ b/aports/postmarketos-mkinitfs/postmarketos-mkinitfs.trigger @@ -0,0 +1,27 @@ +#!/bin/sh + +for i in "$@"; do + # get last element in path + flavor=${i##*/} + if ! [ -f "$i"/kernel.release ]; then + # kernel was uninstalled + rm -f $( readlink -f /boot/initramfs-$flavor ) \ + /boot/initramfs-$flavor /boot/vmlinuz-$flavor \ + /boot/$flavor /boot/$flavor.gz /$flavor /$flavor.gz + continue + fi + abi_release=$(cat "$i"/kernel.release) + initfs=initramfs-$flavor + mkinitfs -o /boot/$initfs $abi_release +done + +# cleanup unused initramfs +for i in /boot/initramfs-[0-9]*; do + [ -f $i ] || continue + if ! [ -f /boot/vmlinuz-${i#/boot/initramfs-} ]; then + rm "$i" + fi +done + +sync +exit 0 diff --git a/aports/postmarketos-mkinitfs/splash1.ppm.gz b/aports/postmarketos-mkinitfs/splash1.ppm.gz new file mode 100644 index 0000000000000000000000000000000000000000..5b7c2a1bbe9fc1f984ede3ca8fb0838284d3fcf5 GIT binary patch literal 58937 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 uz|R%J-m+!VHx_q*`J@=z!kN*L|`JEB~ literal 0 HcmV?d00001 diff --git a/aports/postmarketos-mkinitfs/splash2.ppm.gz b/aports/postmarketos-mkinitfs/splash2.ppm.gz new file mode 100644 index 0000000000000000000000000000000000000000..42e686d03efe6749947d9c59272fa2a938e4b225 GIT binary patch literal 31586 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

4S{- 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 literal 0 HcmV?d00001 diff --git a/aports/qemu-user-static-repack/APKBUILD b/aports/qemu-user-static-repack/APKBUILD new file mode 100644 index 00000000..c90335a4 --- /dev/null +++ b/aports/qemu-user-static-repack/APKBUILD @@ -0,0 +1,53 @@ +pkgname=qemu-user-static-repack +pkgver=2.8 +_debver=${pkgver}+dfsg-5+b1_amd64 +pkgrel=5 +pkgdesc="QEMU user mode emulation binaries (static version)" +arch=x86_64 +url="https://wiki.debian.org/DebianKernel/ARMMP" +license="GPL2" +source="https://ftp.us.debian.org/debian/pool/main/q/qemu/qemu-user-static_${_debver}.deb" +makedepends="tar xz" +subpackages="$pkgname-doc $pkgname-binfmt:binfmt:noarch" +options="!check" + +unpack() { + cd "$srcdir" + for i in $source; do + case $i in + *.deb) ar x ${i##*/} || return 1 ;; + esac + done + + # postinst in this archive contains the binfmt information + tar -xf "$srcdir/control.tar.gz" || return 1 +} + +package() { + mkdir -p "$pkgdir" + tar -xJf "$srcdir"/data.tar.xz -C $pkgdir || return 1 + return 0 +} + +_binfmtout="$srcdir/qemu-user-binfmt.txt" +build() { + cd "$srcdir" + for line in \ + "# Non-standard file format with grepped binfmt information" \ + "# from Debians postinst script. Used in pmbootstrap." + do + echo "$line" >> $_binfmtout || return 1 + done + + for suffix in mask magic; do + grep "_${suffix}=" postinst >> $_binfmtout || return 1 + done +} + +binfmt() { + mkdir -p "$pkgdir-binfmt" + install -Dm644 $_binfmtout \ + "$pkgdir-binfmt/usr/share/qemu-user-binfmt.txt" || return 1 +} + +sha512sums="4dd4aab9a8c1040d93d0846b419b2b5b206c18cc92ec6e292ba0b8ffd347dd66ec76065e6737b4dd7c3504439d9332e1cda3865bdcd03f470330990d6cb1b6e6 qemu-user-static_2.8+dfsg-5+b1_amd64.deb" diff --git a/aports/weston/APKBUILD b/aports/weston/APKBUILD new file mode 100644 index 00000000..22f90058 --- /dev/null +++ b/aports/weston/APKBUILD @@ -0,0 +1,130 @@ +# Based on the upstream weston aport +# Changes: +# - framebuffer no 0 hz patch for lg-mako, upstreaming here: +# https://patchwork.freedesktop.org/patch/150943/ +pkgname=weston +pkgver=9999 +_pkgver=2.0.0 +pkgrel=0 +_libname=lib$pkgname +_libdir=$_libname-${_pkgver%%.*} +pkgdesc="The reference Wayland server" +url="http://wayland.freedesktop.org" +arch="x86_64 armhf" +license="MIT" +depends="" +makedepends="wayland-protocols libxkbcommon-dev xkeyboard-config libinput-dev libunwind-dev mtdev-dev libxcursor-dev glu-dev pango-dev colord-dev freerdp-dev libwebp-dev libva-dev dbus-dev" +_cms="cms-colord cms-static" +_shell="shell-desktop shell-fullscreen shell-ivi" +_client="info terminal wcap-decode" +_backend="backend-drm backend-fbdev backend-headless + backend-rdp backend-x11 backend-wayland + " +options="!check" + +for _sub in $_cms $_shell $_client $_backend; do + subpackages="$subpackages $pkgname-$_sub:_sub" +done +subpackages="$pkgname-dev $pkgname-doc $subpackages + $pkgname-clients $_libname-desktop:_libd $_libname:libs + $pkgname-xwayland $pkgname-desktop-x11:_x11:noarch + " +source="http://wayland.freedesktop.org/releases/$pkgname-$_pkgver.tar.xz no_0hz_refresh_rate.patch" +builddir="$srcdir/$pkgname-$_pkgver" + +build() { + cd "$builddir" + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + --libexecdir=/usr/lib/$pkgname \ + --enable-rdp-compositor \ + --enable-screen-sharing \ + --enable-vaapi-recorder \ + --enable-clients \ + --enable-demo-clients-install \ + --disable-weston-launch \ + --disable-setuid-install \ + || return 1 + make +} + +check() { + make -C "$builddir" check + return 0 +} + +package() { + make -C "$builddir" DESTDIR="$pkgdir" install +} + +libs() { + depends="xkeyboard-config" + default_libs +} + +_libd() { + pkgdesc="Desktop shells abstraction library for libweston compositors" + mkdir -p "$subpkgdir"/usr/lib || return 1 + mv "$pkgdir"/usr/lib/*desktop* "$subpkgdir"/usr/lib +} + +clients() { + pkgdesc="Weston example clients" + mkdir -p "$subpkgdir"/usr/bin || return 1 + mv "$pkgdir"/usr/bin/$pkgname-* "$subpkgdir"/usr/bin +} + +xwayland() { + pkgdesc="Wayland module to run X Clients" + mkdir -p "$subpkgdir"/usr/lib/$_libdir || return 1 + mv "$pkgdir"/usr/lib/$_libdir/xwayland.so \ + "$subpkgdir"/usr/lib/$_libdir +} + +_x11() { + pkgdesc="Weston desktop helper pack (x11 backend)" + depends="$pkgname $pkgname-shell-desktop $pkgname-xwayland + $pkgname-backend-x11 $pkgname-terminal" + mkdir -p "$subpkgdir" +} + +_sub() { + local name path + case $subpkgname in + *-cms-*) + name=${subpkgname#$pkgname-cms-} + path=/usr/lib/$pkgname + pkgdesc="Weston CMS module: $name" + name=cms-$name.so + ;; + *-shell-*) + name=${subpkgname#$pkgname-shell-} + path=/usr/lib/$pkgname + pkgdesc="Weston shell: $name" + name=*$name-shell* + ;; + *-backend-*) + name=${subpkgname#$pkgname-backend-} + path=/usr/lib/$_libdir + pkgdesc="Weston backend: $name" + name=$name-backend.so + grep -q cairo "$pkgdir"/$path/$name && depends="mesa-dri-swrast" + ;; + *) + name=$subpkgname + path=/usr/bin + [ -x "$pkgdir"/$path/$name ] || name=${subpkgname#$pkgname-} + pkgdesc="Weston client: $name" + ;; + esac + mkdir -p "$subpkgdir"/$path || return 1 + mv "$pkgdir"/$path/$name "$subpkgdir"/$path +} + +sha512sums="085a0ba278932d41b50edd6e89db5df31cd6a1179c6cfe9a8ac5ac64e63b25cfc3da1ad8c587259273c3812593029b803867195e2d82b12b5cdd2588ac59acc6 weston-2.0.0.tar.xz +68d8485eed6a536924a8ebef7e0b45738330c38326fe659443c26d674f9538ec1c66033f83a7971914dcd72bc52333e3f55486c5a01e067e3f5fee8f5b489728 no_0hz_refresh_rate.patch" diff --git a/aports/weston/no_0hz_refresh_rate.patch b/aports/weston/no_0hz_refresh_rate.patch new file mode 100644 index 00000000..b893c2d1 --- /dev/null +++ b/aports/weston/no_0hz_refresh_rate.patch @@ -0,0 +1,14 @@ +diff --git a/libweston/compositor-fbdev.c b/libweston/compositor-fbdev.c +index 32d71e0..e80a504 100644 +--- a/libweston/compositor-fbdev.c ++++ b/libweston/compositor-fbdev.c +@@ -253,7 +253,8 @@ calculate_refresh_rate(struct fb_var_screeninfo *vinfo) + if (refresh_rate > 200000) + refresh_rate = 200000; /* cap at 200 Hz */ + +- return refresh_rate; ++ if (refresh_rate >= 1000) /* at least 1 Hz */ ++ return refresh_rate; + } + + return 60 * 1000; /* default to 60 Hz */ diff --git a/pmb/config/__init__.py b/pmb/config/__init__.py index 24a97045..46b02537 100644 --- a/pmb/config/__init__.py +++ b/pmb/config/__init__.py @@ -43,7 +43,7 @@ apk_tools_static_min_version = "2.7.1-r0" # overriden on the commandline) defaults = { "alpine_version": "edge", # alternatively: latest-stable - "aports": os.path.normpath(pmb_src + "/../aports"), + "aports": os.path.normpath(pmb_src + "/aports"), "config": os.path.expanduser("~") + "/.config/pmbootstrap.cfg", "device": "samsung-i9100", "log": "$WORK/log.txt",