浏览代码

Merge branch 'next'

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Peter Korsgaard 9 年之前
父节点
当前提交
577021e81b
共有 100 个文件被更改,包括 1731 次插入2497 次删除
  1. 171 151
      Config.in
  2. 27 4
      Config.in.legacy
  3. 0 1
      board/freescale/imx53loco/create-boot-sd.sh
  4. 42 0
      board/freescale/imx53loco/genimage.cfg
  5. 47 0
      board/freescale/imx53loco/patches/uboot/0001-video-ipu_common-fix-build-error.patch
  6. 16 0
      board/freescale/imx53loco/post-image.sh
  7. 2 1
      board/freescale/imx6ulevk/post-image.sh
  8. 41 0
      board/freescale/imx7dsdb/genimage.cfg
  9. 16 0
      board/freescale/imx7dsdb/post-image.sh
  10. 54 0
      board/freescale/imx7dsdb/readme.txt
  11. 43 0
      board/roseapplepi/genimage.cfg
  12. 31 0
      board/roseapplepi/patches/linux/0001-unbreak-xhci-trace.patch
  13. 18 0
      board/roseapplepi/post-image.sh
  14. 3 0
      board/roseapplepi/uEnv.txt
  15. 2 1
      board/via/imx6_vab820/post-image.sh
  16. 2 1
      board/wandboard/post-image.sh
  17. 1 0
      boot/Config.in
  18. 2 2
      boot/barebox/Config.in
  19. 3 3
      boot/barebox/barebox.hash
  20. 17 0
      boot/s500-bootloader/Config.in
  21. 2 0
      boot/s500-bootloader/s500-bootloader.hash
  22. 34 0
      boot/s500-bootloader/s500-bootloader.mk
  23. 8 4
      boot/uboot/Config.in
  24. 1 1
      boot/uboot/uboot.hash
  25. 4 3
      boot/uboot/uboot.mk
  26. 1 1
      configs/beaglebone_defconfig
  27. 1 1
      configs/calao_qil_a9260_defconfig
  28. 1 1
      configs/calao_tny_a9g20_lpw_defconfig
  29. 1 1
      configs/calao_usb_a9263_defconfig
  30. 1 1
      configs/calao_usb_a9g20_lpw_defconfig
  31. 4 4
      configs/cubieboard2_defconfig
  32. 36 0
      configs/freescale_imx7dsabresd_defconfig
  33. 19 8
      configs/mx53loco_defconfig
  34. 1 1
      configs/olimex_a20_olinuxino_lime_defconfig
  35. 3 3
      configs/orangepipc_defconfig
  36. 40 0
      configs/roseapplepi_defconfig
  37. 4 4
      configs/sheevaplug_defconfig
  38. 1 1
      configs/stm32f429_disco_defconfig
  39. 1 1
      configs/stm32f469_disco_defconfig
  40. 1 1
      configs/warpboard_defconfig
  41. 2 2
      linux/Config.in
  42. 3 0
      linux/linux.mk
  43. 10 0
      package/Config.in
  44. 3 0
      package/Makefile.in
  45. 0 1
      package/audit/audit.mk
  46. 3 3
      package/batctl/batctl.hash
  47. 1 1
      package/batctl/batctl.mk
  48. 35 0
      package/batman-adv/Config.in
  49. 2 0
      package/batman-adv/batman-adv.hash
  50. 35 0
      package/batman-adv/batman-adv.mk
  51. 0 29
      package/binutils/2.23.2/120-sh-conf.patch
  52. 0 24
      package/binutils/2.23.2/300-001_ld_makefile_patch.patch
  53. 0 21
      package/binutils/2.23.2/300-012_check_ldrunpath_length.patch
  54. 0 846
      package/binutils/2.23.2/900-xtensa-trampolines.patch
  55. 0 51
      package/binutils/2.23.2/901-xtensa-gas-first-frag-alignment.patch
  56. 0 133
      package/binutils/2.23.2/902-xtensa-gas-ld-diff-relocation-signed.patch
  57. 0 47
      package/binutils/2.23.2/903-xtensa-fix-ld-segfault-when-linking-linux-modules.patch
  58. 0 79
      package/binutils/2.23.2/904-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch
  59. 0 90
      package/binutils/2.23.2/905-Fix-trampolines-search-code-for-conditional-branches.patch
  60. 0 57
      package/binutils/2.23.2/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch
  61. 0 56
      package/binutils/2.23.2/912-xtensa-fix-gas-segfault-with-text-section-literals.patch
  62. 0 47
      package/binutils/2.23.2/914-xtensa-fix-signedness-of-gas-relocations.patch
  63. 0 70
      package/binutils/2.23.2/915-xtensa-fix-.init-.fini-literals-moving.patch
  64. 1 11
      package/binutils/Config.in.host
  65. 0 236
      package/binutils/arc-2015.12/0001-PR-other-56780.patch
  66. 0 279
      package/binutils/arc-2015.12/600-poison-system-directories.patch
  67. 41 0
      package/binutils/arc-2016.03/0300-ld-makefile.patch
  68. 36 0
      package/binutils/arc-2016.03/0301-check-ldrunpath-length.patch
  69. 17 2
      package/binutils/arc-2016.03/0500-add-sysroot-fix-from-bug-3049.patch
  70. 121 94
      package/binutils/arc-2016.03/0600-poison-system-directories.patch
  71. 34 0
      package/binutils/arc-2016.03/0700-Fix-issue-with-dynamic-relocs-not-being-generated-wi.patch
  72. 3 3
      package/binutils/binutils.hash
  73. 1 1
      package/binutils/binutils.mk
  74. 0 5
      package/boost/Config.in
  75. 0 2
      package/cc-tool/Config.in
  76. 3 3
      package/dmidecode/0001-build-system-fixes.patch
  77. 2 2
      package/dmidecode/dmidecode.hash
  78. 2 1
      package/dmidecode/dmidecode.mk
  79. 1 1
      package/dnsmasq/dnsmasq.hash
  80. 1 1
      package/dnsmasq/dnsmasq.mk
  81. 1 1
      package/dos2unix/dos2unix.hash
  82. 1 1
      package/dos2unix/dos2unix.mk
  83. 42 0
      package/dosfstools/0001-mkfs-Default-to-64-32-heads-sectors-for-targets-smalle.patch
  84. 0 45
      package/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch
  85. 1 1
      package/dosfstools/dosfstools.hash
  86. 24 40
      package/dosfstools/dosfstools.mk
  87. 9 0
      package/e2fsprogs/Config.in
  88. 2 2
      package/e2fsprogs/e2fsprogs.hash
  89. 12 5
      package/e2fsprogs/e2fsprogs.mk
  90. 47 0
      package/ficl/0001-fix-Makefile.patch
  91. 9 0
      package/ficl/Config.in
  92. 2 0
      package/ficl/ficl.hash
  93. 59 0
      package/ficl/ficl.mk
  94. 1 1
      package/file/file.hash
  95. 1 1
      package/file/file.mk
  96. 1 1
      package/fmc/fmc.mk
  97. 1 1
      package/fmlib/fmlib.mk
  98. 153 0
      package/gcc/4.8.5/130-fix_build_with_gcc-6.patch
  99. 153 0
      package/gcc/4.9.3/130-fix_build_with_gcc-6.patch
  100. 153 0
      package/gcc/5.3.0/130-fix_build_with_gcc-6.patch

+ 171 - 151
Config.in

@@ -120,9 +120,9 @@ config BR2_ZCAT
 	string "zcat command"
 	default "gzip -d -c"
 	help
-	  Command to be used to extract a gzip'ed file to stdout.
-	  zcat is identical to gunzip -c except that the former may
-	  not be available on your system.
+	  Command to be used to extract a gzip'ed file to stdout. zcat
+	  is identical to gunzip -c except that the former may not be
+	  available on your system.
 	  Default is "gzip -d -c"
 	  Other possible values include "gunzip -c" or "zcat".
 
@@ -162,8 +162,8 @@ config BR2_DEFCONFIG
 	default BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
 	default "$(CONFIG_DIR)/defconfig"
 	help
-	  When running 'make savedefconfig', the defconfig file will be saved
-	  in this location.
+	  When running 'make savedefconfig', the defconfig file will be
+	  saved in this location.
 
 config BR2_DL_DIR
 	string "Download dir"
@@ -171,7 +171,8 @@ config BR2_DL_DIR
 	help
 	  Directory to store all the source files that we need to fetch.
 	  If the Linux shell environment has defined the BR2_DL_DIR
-	  environment variable, then this overrides this configuration item.
+	  environment variable, then this overrides this configuration
+	  item.
 
 	  The default is $(TOPDIR)/dl
 
@@ -179,9 +180,9 @@ config BR2_HOST_DIR
 	string "Host dir"
 	default "$(BASE_DIR)/host"
 	help
-	  Directory to store all the binary files that are built for the host.
-	  This includes the cross compilation toolchain when building the
-	  internal buildroot toolchain.
+	  Directory to store all the binary files that are built for the
+	  host. This includes the cross compilation toolchain when
+	  building the internal buildroot toolchain.
 
 	  The default is $(BASE_DIR)/host
 
@@ -191,9 +192,9 @@ config BR2_PRIMARY_SITE
 	string "Primary download site"
 	default ""
 	help
-	  Primary site to download from. If this option is set then buildroot
-	  will try to download package source first from this site and try the
-	  default if the file is not found.
+	  Primary site to download from. If this option is set then
+	  buildroot will try to download package source first from this
+	  site and try the default if the file is not found.
 	  Valid URIs are:
 	    - URIs recognized by $(WGET)
 	    - local URIs of the form file://absolutepath
@@ -206,11 +207,11 @@ config BR2_PRIMARY_SITE_ONLY
 	  If this option is enabled, downloads will only be attempted
 	  from the primary download site. Other locations, like the
 	  package's official download location or the backup download
-	  site, will not be considered. Therefore, if the package is
-	  not present on the primary site, the download fails.
+	  site, will not be considered. Therefore, if the package is not
+	  present on the primary site, the download fails.
 
-	  This is useful for project developers who want to ensure
-	  that the project can be built even if the upstream tarball
+	  This is useful for project developers who want to ensure that
+	  the project can be built even if the upstream tarball
 	  locations disappear.
 
 if !BR2_PRIMARY_SITE_ONLY
@@ -219,32 +220,36 @@ config BR2_BACKUP_SITE
 	string "Backup download site"
 	default "http://sources.buildroot.net"
 	help
-	  Backup site to download from. If this option is set then buildroot
-	  will fall back to download package sources from here if the
-	  normal location fails.
+	  Backup site to download from. If this option is set then
+	  buildroot will fall back to download package sources from here
+	  if the normal location fails.
 
 config BR2_KERNEL_MIRROR
 	string "Kernel.org mirror"
-	default "https://www.kernel.org/pub"
+	default "https://cdn.kernel.org/pub"
 	help
-	  kernel.org is mirrored on a number of servers around the world.
-	  The following allows you to select your preferred mirror.
+	  kernel.org is mirrored on a number of servers around the
+	  world. The following allows you to select your preferred
+	  mirror. By default, a CDN is used, which automatically
+	  redirects to a mirror geographically close to you.
 
-	  Have a look on the kernel.org site for a list of mirrors, then enter
-	  the URL to the base directory.  Examples:
+	  Have a look on the kernel.org site for a list of mirrors, then
+	  enter the URL to the base directory. Examples:
 
 	     http://www.XX.kernel.org/pub (XX = country code)
 	     http://mirror.aarnet.edu.au/pub/ftp.kernel.org
 
 config BR2_GNU_MIRROR
 	string "GNU Software mirror"
-	default "http://ftp.gnu.org/pub/gnu"
+	default "http://ftpmirror.gnu.org"
 	help
-	  GNU has multiple software mirrors scattered around the world.
-	  The following allows you to select your preferred mirror.
+	  GNU has multiple software mirrors scattered around the
+	  world. The following allows you to select your preferred
+	  mirror. By default, a generic address is used, which
+	  automatically selects an up-to-date and local mirror.
 
-	  Have a look on the gnu.org site for a list of mirrors, then enter
-	  the URL to the base directory.  Examples:
+	  Have a look on the gnu.org site for a list of mirrors, then
+	  enter the URL to the base directory. Examples:
 
 	     http://ftp.gnu.org/pub/gnu
 	     http://mirror.aarnet.edu.au/pub/gnu
@@ -261,8 +266,8 @@ config BR2_CPAN_MIRROR
 	string "CPAN mirror (Perl packages)"
 	default "http://cpan.metacpan.org"
 	help
-	  CPAN (Comprehensive Perl Archive Network) is a repository
-	  of Perl packages. It has multiple software mirrors scattered
+	  CPAN (Comprehensive Perl Archive Network) is a repository of
+	  Perl packages. It has multiple software mirrors scattered
 	  around the world. This option allows you to select a mirror.
 
 	  The list of mirrors is available at:
@@ -276,24 +281,22 @@ config BR2_JLEVEL
 	int "Number of jobs to run simultaneously (0 for auto)"
 	default "0"
 	help
-	  Number of jobs to run simultaneously.  If 0, determine
-	  automatically according to number of CPUs on the host
-	  system.
+	  Number of jobs to run simultaneously. If 0, determine
+	  automatically according to number of CPUs on the host system.
 
 config BR2_CCACHE
 	bool "Enable compiler cache"
 	help
-	  This option will enable the use of ccache, a compiler
-	  cache. It will cache the result of previous builds to speed
-	  up future builds. By default, the cache is stored in
+	  This option will enable the use of ccache, a compiler cache.
+	  It will cache the result of previous builds to speed up future
+	  builds. By default, the cache is stored in
 	  $HOME/.buildroot-ccache.
 
 	  Note that Buildroot does not try to invalidate the cache
-	  contents when the compiler changes in an incompatible
-	  way. Therefore, if you make a change to the compiler version
-	  and/or configuration, you are responsible for purging the
-	  ccache cache by removing the $HOME/.buildroot-ccache
-	  directory.
+	  contents when the compiler changes in an incompatible way.
+	  Therefore, if you make a change to the compiler version and/or
+	  configuration, you are responsible for purging the ccache
+	  cache by removing the $HOME/.buildroot-ccache directory.
 
 if BR2_CCACHE
 
@@ -306,16 +309,19 @@ config BR2_CCACHE_DIR
 config BR2_CCACHE_INITIAL_SETUP
 	string "Compiler cache initial setup"
 	help
-	  Initial ccache settings to apply, such as --max-files or --max-size.
+	  Initial ccache settings to apply, such as --max-files or
+	  --max-size.
 
-	  For example, if your project is known to require more space than the
-	  default max cache size, then you might want to increase the cache size
-	  to a suitable amount using the -M (--max-size) option.
+	  For example, if your project is known to require more space
+	  than the default max cache size, then you might want to
+	  increase the cache size to a suitable amount using the -M
+	  (--max-size) option.
 
-	  The string you specify here is passed verbatim to ccache.  Refer to
-	  ccache documentation for more details.
+	  The string you specify here is passed verbatim to ccache.
+	  Refer to ccache documentation for more details.
 
-	  These initial settings are applied after ccache has been compiled.
+	  These initial settings are applied after ccache has been
+	  compiled.
 
 config BR2_CCACHE_USE_BASEDIR
 	bool "Use relative paths"
@@ -324,25 +330,25 @@ config BR2_CCACHE_USE_BASEDIR
 	  Allow ccache to convert absolute paths within the output
 	  directory into relative paths.
 
-	  During the build, many -I include directives are given with
-	  an absolute path. These absolute paths end up in the hashes
-	  that are computed by ccache. Therefore, when you build from a
-	  different directory, the hash will be different and the
-	  cached object will not be used.
+	  During the build, many -I include directives are given with an
+	  absolute path. These absolute paths end up in the hashes that
+	  are computed by ccache. Therefore, when you build from a
+	  different directory, the hash will be different and the cached
+	  object will not be used.
 
 	  To improve cache performance, set this option to y. This
 	  allows ccache to rewrite absolute paths within the output
-	  directory into relative paths. Note that only paths within
-	  the output directory will be rewritten; therefore, if you
-	  change BR2_HOST_DIR to point outside the output directory and
+	  directory into relative paths. Note that only paths within the
+	  output directory will be rewritten; therefore, if you change
+	  BR2_HOST_DIR to point outside the output directory and
 	  subsequently move it to a different location, this will lead
 	  to cache misses.
 
 	  This option has as a result that the debug information in the
 	  object files also has only relative paths. Therefore, make
 	  sure you cd to the build directory before starting gdb. See
-	  the section "COMPILING IN DIFFERENT DIRECTORIES" in the
-	  ccache manual for more information.
+	  the section "COMPILING IN DIFFERENT DIRECTORIES" in the ccache
+	  manual for more information.
 
 endif
 
@@ -396,11 +402,11 @@ choice
 config BR2_DEBUG_1
 	bool "debug level 1"
 	help
-	  Debug level 1 produces minimal information, enough
-	  for making backtraces in parts of the program that
-	  you don't plan to debug. This includes descriptions
-	  of functions and external variables, but no information
-	  about local variables and no line numbers.
+	  Debug level 1 produces minimal information, enough for making
+	  backtraces in parts of the program that you don't plan to
+	  debug. This includes descriptions of functions and external
+	  variables, but no information about local variables and no
+	  line numbers.
 
 config BR2_DEBUG_2
 	bool "debug level 2"
@@ -410,9 +416,9 @@ config BR2_DEBUG_2
 config BR2_DEBUG_3
 	bool "debug level 3"
 	help
-	  Level 3 includes extra information, such as all the
-	  macro definitions present in the program. Some debuggers
-	  support macro expansion when you use -g3.
+	  Level 3 includes extra information, such as all the macro
+	  definitions present in the program. Some debuggers support
+	  macro expansion when you use -g3.
 endchoice
 endif
 
@@ -425,16 +431,15 @@ config BR2_STRIP_strip
 	depends on !BR2_PACKAGE_HOST_ELF2FLT
 	help
 	  Binaries and libraries in the target filesystem will be
-	  stripped using the normal 'strip' command. This allows to
-	  save space, mainly by removing debugging symbols. Debugging
-	  symbols on the target are needed for native debugging, but
-	  not when remote debugging is used.
+	  stripped using the normal 'strip' command. This allows to save
+	  space, mainly by removing debugging symbols. Debugging symbols
+	  on the target are needed for native debugging, but not when
+	  remote debugging is used.
 
 config BR2_STRIP_none
 	bool "none"
 	help
-	  Do not strip binaries and libraries in the target
-	  filesystem.
+	  Do not strip binaries and libraries in the target filesystem.
 endchoice
 
 config BR2_STRIP_EXCLUDE_FILES
@@ -442,19 +447,19 @@ config BR2_STRIP_EXCLUDE_FILES
 	depends on !BR2_STRIP_none
 	default ""
 	help
-	  You may specify a space-separated list of binaries and libraries
-	  here that should not be stripped on the target.
+	  You may specify a space-separated list of binaries and
+	  libraries here that should not be stripped on the target.
 
 config BR2_STRIP_EXCLUDE_DIRS
 	string "directories that should be skipped when stripping"
 	depends on !BR2_STRIP_none
 	default ""
 	help
-	  You may specify a space-separated list of directories that should
-	  be skipped when stripping. Binaries and libraries in these
-	  directories will not be touched.
-	  The directories should be specified relative to the target directory,
-	  without leading slash.
+	  You may specify a space-separated list of directories that
+	  should be skipped when stripping. Binaries and libraries in
+	  these directories will not be touched. The directories should
+	  be specified relative to the target directory, without leading
+	  slash.
 
 choice
 	prompt "gcc optimization level"
@@ -470,54 +475,67 @@ config BR2_OPTIMIZE_0
 config BR2_OPTIMIZE_1
 	bool "optimization level 1"
 	help
-	  Optimize. Optimizing compilation takes somewhat more time,
-	  and a lot more memory for a large function. With -O, the
-	  compiler tries to reduce code size and execution time,
-	  without performing any optimizations that take a great deal
-	  of compilation time. -O turns on the following optimization
+	  Optimize. Optimizing compilation takes somewhat more time, and
+	  a lot more memory for a large function. With -O, the compiler
+	  tries to reduce code size and execution time, without
+	  performing any optimizations that take a great deal of
+	  compilation time. -O turns on the following optimization
 	  flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
 	  -fcprop-registers -floop-optimize -fif-conversion
 	  -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
 	  -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
-	  -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants
-	  -O also turns on -fomit-frame-pointer on machines where doing
-	  so does not interfere with debugging.
+	  -ftree-fre -ftree-ch -funit-at-a-time -fmerge-constants. -O
+	  also turns on -fomit-frame-pointer on machines where doing so
+	  does not interfere with debugging.
 
 config BR2_OPTIMIZE_2
 	bool "optimization level 2"
 	help
-	  Optimize even more. GCC performs nearly all supported optimizations
-	  that do not involve a space-speed tradeoff. The compiler does not
-	  perform loop unrolling or function inlining when you specify -O2.
-	  As compared to -O, this option increases both compilation time and
-	  the performance of the generated code. -O2 turns on all optimization
-	  flags specified by -O. It also turns on the following optimization
-	  flags: -fthread-jumps -fcrossjumping -foptimize-sibling-calls
+	  Optimize even more. GCC performs nearly all supported
+	  optimizations that do not involve a space-speed tradeoff. The
+	  compiler does not perform loop unrolling or function inlining
+	  when you specify -O2. As compared to -O, this option increases
+	  both compilation time and the performance of the generated
+	  code. -O2 turns on all optimization flags specified by -O. It
+	  also turns on the following optimization flags:
+	  -fthread-jumps -fcrossjumping -foptimize-sibling-calls
 	  -fcse-follow-jumps -fcse-skip-blocks -fgcse  -fgcse-lm
-	  -fexpensive-optimizations -fstrength-reduce -frerun-cse-after-loop
-	  -frerun-loop-opt -fcaller-saves -fpeephole2 -fschedule-insns
-	  -fschedule-insns2 -fsched-interblock -fsched-spec -fregmove
-	  -fstrict-aliasing -fdelete-null-pointer-checks -freorder-blocks
-	  -freorder-functions -falign-functions -falign-jumps -falign-loops
-	  -falign-labels -ftree-vrp -ftree-pre
-	  Please note the warning under -fgcse about invoking -O2 on programs
+	  -fexpensive-optimizations -fstrength-reduce
+	  -frerun-cse-after-loop -frerun-loop-opt -fcaller-saves
+	  -fpeephole2 -fschedule-insns -fschedule-insns2
+	  -fsched-interblock -fsched-spec -fregmove -fstrict-aliasing
+	  -fdelete-null-pointer-checks -freorder-blocks
+	  -freorder-functions -falign-functions -falign-jumps
+	  -falign-loops -falign-labels -ftree-vrp -ftree-pre. Please
+	  note the warning under -fgcse about invoking -O2 on programs
 	  that use computed gotos.
 
 config BR2_OPTIMIZE_3
 	bool "optimization level 3"
 	help
-	  Optimize yet more. -O3 turns on all optimizations specified by -O2
-	  and also turns on the -finline-functions, -funswitch-loops and
-	  -fgcse-after-reload options.
+	  Optimize yet more. -O3 turns on all optimizations specified by
+	  -O2 and also turns on the -finline-functions, -funswitch-loops
+	  and -fgcse-after-reload options.
+
+config BR2_OPTIMIZE_G
+	bool "optimize for debugging"
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+	help
+	  Optimize for debugging. This enables optimizations that do not
+	  interfere with debugging. It should be the optimization level
+	  of choice for the standard edit-compile-debug cycle, offering
+	  a reasonable level of optimization while maintaining fast
+	  compilation and a good debugging experience.
 
 config BR2_OPTIMIZE_S
 	bool "optimize for size"
 	help
-	  Optimize for size. -Os enables all -O2 optimizations that do not
-	  typically increase code size. It also performs further optimizations
-	  designed to reduce code size. -Os disables the following optimization
-	  flags: -falign-functions -falign-jumps -falign-loops -falign-labels
-	  -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays
+	  Optimize for size. -Os enables all -O2 optimizations that do
+	  not typically increase code size. It also performs further
+	  optimizations designed to reduce code size. -Os disables the
+	  following optimization flags: -falign-functions -falign-jumps
+	  -falign-loops -falign-labels -freorder-blocks
+	  -freorder-blocks-and-partition -fprefetch-loop-arrays
 	  -ftree-vect-loop-version
 
 endchoice
@@ -529,13 +547,13 @@ config BR2_GOOGLE_BREAKPAD_ENABLE
 	depends on BR2_TOOLCHAIN_USES_GLIBC
 	depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
 	help
-	  This option will enable the use of google breakpad, a
-	  library and tool suite that allows you to distribute an
-	  application to users with compiler-provided debugging
-	  information removed, record crashes in compact "minidump"
-	  files, send them back to your server and produce C and C++
-	  stack traces from these minidumps.  Breakpad can also write
-	  minidumps on request for programs that have not crashed.
+	  This option will enable the use of google breakpad, a library
+	  and tool suite that allows you to distribute an application to
+	  users with compiler-provided debugging information removed,
+	  record crashes in compact "minidump" files, send them back to
+	  your server and produce C and C++ stack traces from these
+	  minidumps. Breakpad can also write minidumps on request for
+	  programs that have not crashed.
 
 if BR2_GOOGLE_BREAKPAD_ENABLE
 
@@ -563,12 +581,13 @@ choice
 	  Enable stack smashing protection support using GCC's
 	  -fstack-protector option family.
 
-	  See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
+	  See
+	  http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt
 	  for details.
 
-	  Note that this requires the toolchain to have SSP
-	  support. This is always the case for glibc and eglibc
-	  toolchain, but is optional in uClibc toolchains.
+	  Note that this requires the toolchain to have SSP support.
+	  This is always the case for glibc and eglibc toolchain, but is
+	  optional in uClibc toolchains.
 
 config BR2_SSP_NONE
 	bool "None"
@@ -616,20 +635,19 @@ choice
 	help
 	  Select the type of libraries you want to use on the target.
 
-	  The default is to build dynamic libraries and use those on
-	  the target filesystem, except when the architecture and/or
-	  the selected binary format does not support shared
-	  libraries.
+	  The default is to build dynamic libraries and use those on the
+	  target filesystem, except when the architecture and/or the
+	  selected binary format does not support shared libraries.
 
 config BR2_STATIC_LIBS
 	bool "static only"
 	help
-	  Build and use only static libraries. No shared libraries
-	  will be instaled on the target. This potentially increases
-	  your code size and should only be used if you know what you
-	  are doing. Note that some packages may not be available when
-	  this option is enabled, due to their need for dynamic
-	  library support.
+	  Build and use only static libraries. No shared libraries will
+	  be instaled on the target. This potentially increases your
+	  code size and should only be used if you know what you are
+	  doing. Note that some packages may not be available when this
+	  option is enabled, due to their need for dynamic library
+	  support.
 
 config BR2_SHARED_LIBS
 	bool "shared only"
@@ -655,43 +673,45 @@ config BR2_PACKAGE_OVERRIDE_FILE
 	default "$(CONFIG_DIR)/local.mk"
 	help
 	  A package override file is a short makefile that contains
-	  variable definitions of the form <pkg>_OVERRIDE_SRCDIR,
-	  which allows to tell Buildroot to use an existing directory
-	  as the source directory for a particular package. See the
-	  Buildroot documentation for more details on this feature.
+	  variable definitions of the form <pkg>_OVERRIDE_SRCDIR, which
+	  allows to tell Buildroot to use an existing directory as the
+	  source directory for a particular package. See the Buildroot
+	  documentation for more details on this feature.
 
 config BR2_GLOBAL_PATCH_DIR
 	string "global patch directories"
 	help
-	  You may specify a space separated list of one or more directories
-	  containing global package patches. For a specific version
-	  <packageversion> of a specific package <packagename>, patches are
-	  applied as follows:
+	  You may specify a space separated list of one or more
+	  directories containing global package patches. For a specific
+	  version <packageversion> of a specific package <packagename>,
+	  patches are applied as follows:
 
-	  First, the default Buildroot patch set for the package is applied
-	  from the package's directory in Buildroot.
+	  First, the default Buildroot patch set for the package is
+	  applied from the package's directory in Buildroot.
 
 	  Then for every directory - <global-patch-dir> - that exists in
 	  BR2_GLOBAL_PATCH_DIR, if the directory
-	  <global-patch-dir>/<packagename>/<packageversion>/ exists, then all
-	  *.patch files in this directory will be applied.
+	  <global-patch-dir>/<packagename>/<packageversion>/ exists,
+	  then all *.patch files in this directory will be applied.
 
-	  Otherwise, if the directory <global-patch-dir>/<packagename> exists,
-	  then all *.patch files in the directory will be applied.
+	  Otherwise, if the directory <global-patch-dir>/<packagename>
+	  exists, then all *.patch files in the directory will be
+	  applied.
 
 menu "Advanced"
 
 config BR2_COMPILER_PARANOID_UNSAFE_PATH
 	bool "paranoid check of library/header paths"
+	default y
 	help
 	  By default, when this option is disabled, when the Buildroot
-	  cross-compiler will encounter an unsafe library or header
-	  path (such as /usr/include, or /usr/lib), the compiler will
-	  display a warning.
+	  cross-compiler will encounter an unsafe library or header path
+	  (such as /usr/include, or /usr/lib), the compiler will display
+	  a warning.
 
-	  By enabling this option, this warning is turned into an
-	  error, which will completely abort the build when such
-	  unsafe paths are encountered.
+	  By enabling this option, this warning is turned into an error,
+	  which will completely abort the build when such unsafe paths
+	  are encountered.
 
 	  Note that this mechanism is available for both the internal
 	  toolchain (through the toolchain wrapper and binutils patches)

+ 27 - 4
Config.in.legacy

@@ -142,6 +142,31 @@ comment "build, or run, in unpredictable ways.               "
 comment "----------------------------------------------------"
 endif
 
+###############################################################################
+comment "Legacy options removed in 2016.08"
+
+config BR2_BINUTILS_VERSION_2_23_X
+	bool "binutils 2.23 removed"
+	select BR2_LEGACY
+	help
+	  Binutils 2.23 has been removed, using a newer version is
+	  recommended.
+
+config BR2_TOOLCHAIN_BUILDROOT_EGLIBC
+	bool "eglibc support has been removed"
+	select BR2_LEGACY
+	help
+	  The eglibc project no longer exists, as it has been merged
+	  back into the glibc project. Therefore, support for eglibc
+	  has been removed, and glibc should be used instead.
+
+config BR2_GDB_VERSION_7_8
+	bool "gdb 7.8 has been removed"
+	select BR2_LEGACY
+	help
+	  The 7.8 version of gdb has been removed. Use a newer version
+	  instead.
+
 ###############################################################################
 comment "Legacy options removed in 2016.05"
 
@@ -913,11 +938,9 @@ config BR2_PACKAGE_KODI_PVR_ADDONS
 config BR2_BINUTILS_VERSION_2_23_2
 	bool "binutils 2.23 option renamed"
 	select BR2_LEGACY
-	select BR2_BINUTILS_VERSION_2_23_X
 	help
-	  The binutils version option has been renamed to match the
-	  same patchlevel logic used by gcc. The new option is now
-	  BR2_BINUTILS_VERSION_2_23_X.
+	  Binutils 2.23.2 has been removed, using a newer version is
+	  recommended.
 
 config BR2_BINUTILS_VERSION_2_24
 	bool "binutils 2.24 option renamed"

+ 0 - 1
board/freescale/imx53loco/create-boot-sd.sh

@@ -1 +0,0 @@
-../create-boot-sd.sh

+ 42 - 0
board/freescale/imx53loco/genimage.cfg

@@ -0,0 +1,42 @@
+# Minimal microSD card image for the Freescale's i.MX53 QSB board
+#
+# We mimic the .sdcard Freescale's image format for i.MX53:
+# * the microSD card must have 1 kB free space at the beginning,
+# * U-Boot is dumped as is,
+# * a FAT partition at offset 8 MB is containing zImage and dtbs,
+# * a single root filesystem partition is required (Ext4 in this case).
+#
+
+image boot.vfat {
+  vfat {
+    files = {
+      "imx53-qsb.dtb",
+      "imx53-qsrb.dtb",
+      "zImage"
+    }
+  }
+  size = 16M
+}
+
+image sdcard.img {
+  hdimage {
+  }
+
+  partition u-boot {
+    in-partition-table = "no"
+    image = "u-boot.imx"
+    offset = 1024
+  }
+
+  partition boot {
+    partition-type = 0xC
+    bootable = "true"
+    image = "boot.vfat"
+    offset = 8M
+  }
+
+  partition rootfs {
+    partition-type = 0x83
+    image = "rootfs.ext4"
+  }
+}

+ 47 - 0
board/freescale/imx53loco/patches/uboot/0001-video-ipu_common-fix-build-error.patch

@@ -0,0 +1,47 @@
+From c510f2e436008e55a50b063f2180cb1e63984224 Mon Sep 17 00:00:00 2001
+From: Peng Fan <van.freenix@gmail.com>
+Date: Thu, 28 Apr 2016 10:07:53 +0800
+Subject: [PATCH] video: ipu_common: fix build error
+
+Some toolchains fail to build
+"clk->rate = (u64)(clk->parent->rate * 16) / div;"
+And the cast usage is wrong.
+
+Use the following code to fix the issue,
+"
+  do_div(parent_rate, div);
+  clk->rate = parent_rate;
+"
+
+Reported-by: Peter Robinson <pbrobinson@gmail.com>
+Signed-off-by: Peng Fan <van.freenix@gmail.com>
+Cc: Stefano Babic <sbabic@denx.de>
+Cc: Fabio Estevam <fabio.estevam@nxp.com>
+Cc: Tom Rini <trini@konsulko.com>
+Cc: Anatolij Gustschin <agust@denx.de>
+Cc: Peter Robinson <pbrobinson@gmail.com>
+Reviewed-by: Tom Rini <trini@konsulko.com>
+Tested-by: Peter Robinson <pbrobinson@gmail.com>
+Signed-off-by: Fabio Estevam <festevam@gmail.com>
+---
+ drivers/video/ipu_common.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c
+index 36d4b23..5676a0f 100644
+--- a/drivers/video/ipu_common.c
++++ b/drivers/video/ipu_common.c
+@@ -352,7 +352,9 @@ static int ipu_pixel_clk_set_rate(struct clk *clk, unsigned long rate)
+ 	 */
+ 	__raw_writel((div / 16) << 16, DI_BS_CLKGEN1(clk->id));
+ 
+-	clk->rate = (u64)(clk->parent->rate * 16) / div;
++	do_div(parent_rate, div);
++
++	clk->rate = parent_rate;
+ 
+ 	return 0;
+ }
+-- 
+1.9.1
+

+ 16 - 0
board/freescale/imx53loco/post-image.sh

@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+BOARD_DIR="$(dirname $0)"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+
+rm -rf "${GENIMAGE_TMP}"
+
+genimage \
+  --rootpath "${TARGET_DIR}" \
+  --tmppath "${GENIMAGE_TMP}" \
+  --inputpath "${BINARIES_DIR}" \
+  --outputpath "${BINARIES_DIR}" \
+  --config "${GENIMAGE_CFG}"
+
+exit $?

+ 2 - 1
board/freescale/imx6ulevk/post-image.sh

@@ -1,6 +1,7 @@
 #!/usr/bin/env bash
 
-GENIMAGE_CFG="board/freescale/imx6ulevk/genimage.cfg"
+BOARD_DIR="$(dirname $0)"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
 GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
 
 rm -rf "${GENIMAGE_TMP}"

+ 41 - 0
board/freescale/imx7dsdb/genimage.cfg

@@ -0,0 +1,41 @@
+# Minimal microSD card image for the Freescale's i.MX7D SDB board
+#
+# We mimic the .sdcard Freescale's image format for i.MX7D:
+# * the microSD card must have 1 kB free space at the beginning,
+# * U-Boot is dumped as is,
+# * a FAT partition at offset 8 MB is containing zImage and dtbs,
+# * a single root filesystem partition is required (Ext4 in this case).
+#
+
+image boot.vfat {
+  vfat {
+    files = {
+      "imx7d-sdb.dtb",
+      "zImage"
+    }
+  }
+  size = 16M
+}
+
+image sdcard.img {
+  hdimage {
+  }
+
+  partition u-boot {
+    in-partition-table = "no"
+    image = "u-boot.imx"
+    offset = 1024
+  }
+
+  partition boot {
+    partition-type = 0xC
+    bootable = "true"
+    image = "boot.vfat"
+    offset = 8M
+  }
+
+  partition rootfs {
+    partition-type = 0x83
+    image = "rootfs.ext4"
+  }
+}

+ 16 - 0
board/freescale/imx7dsdb/post-image.sh

@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+BOARD_DIR="$(dirname $0)"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+
+rm -rf "${GENIMAGE_TMP}"
+
+genimage \
+  --rootpath "${TARGET_DIR}" \
+  --tmppath "${GENIMAGE_TMP}" \
+  --inputpath "${BINARIES_DIR}" \
+  --outputpath "${BINARIES_DIR}" \
+  --config "${GENIMAGE_CFG}"
+
+exit $?

+ 54 - 0
board/freescale/imx7dsdb/readme.txt

@@ -0,0 +1,54 @@
+***************************
+Freescale i.MX7D SDB board
+***************************
+
+This file documents the Buildroot support for the Freescale i.MX7D SDB board.
+
+Build
+=====
+
+First, configure Buildroot for your i.MX7D SDB board:
+
+  make freescale_imx7dsabresd_defconfig
+
+Build all components:
+
+  make
+
+You will find in output/images/ the following files:
+  - imx7d-sdb.dtb
+  - rootfs.ext4
+  - rootfs.tar
+  - sdcard.img
+  - u-boot.imx
+  - zImage
+
+Create a bootable SD card
+=========================
+
+To determine the device associated to the SD card have a look in the
+/proc/partitions file:
+
+  cat /proc/partitions
+
+Buildroot prepares a bootable "sdcard.img" image in the output/images/
+directory, ready to be dumped on a SD card. Launch the following
+command as root:
+
+  dd if=./output/images/sdcard.img of=/dev/<your-sd-device>
+
+*** WARNING! This will destroy all the card content. Use with care! ***
+
+For details about the medium image layout, see the definition in
+board/freescale/imx7dsdb/genimage.cfg.
+
+Boot the i.MX7D SDB board
+=========================
+
+To boot your newly created system:
+- insert the SD card in the SD slot of the board;
+- put a micro USB cable into the Debug USB Port and connect using a terminal
+  emulator at 115200 bps, 8n1;
+- power on the board.
+
+Enjoy!

+ 43 - 0
board/roseapplepi/genimage.cfg

@@ -0,0 +1,43 @@
+# Minimal SD card image for the Roseapple Pi
+#
+image boot.vfat {
+	vfat {
+		files = {
+		     "uEnv.txt",
+		     "uImage"
+		}
+		file kernel.dtb {
+		     image = "actduino_bubble_gum_sdboot_linux.dtb"
+		}
+	}
+	size = 10M
+}
+
+image sdcard.img {
+	hdimage {
+	}
+
+	partition s500-bootloader {
+		in-partition-table = "no"
+		image = "s500-bootloader.bin"
+		offset = 0x200200
+	}
+
+	partition u-boot {
+		in-partition-table = "no"
+		image = "u-boot-dtb.img"
+		offset = 0x300000
+	}
+
+	partition boot {
+		partition-type = 0xC
+		bootable = "true"
+		image = "boot.vfat"
+	}
+
+	partition rootfs {
+		partition-type = 0x83
+		image = "rootfs.ext4"
+		size = 512M
+	}
+}

+ 31 - 0
board/roseapplepi/patches/linux/0001-unbreak-xhci-trace.patch

@@ -0,0 +1,31 @@
+[PATCH] unbreak xhci-trace compilation
+
+When commit 84a99f6fc5d4 (xhci: add traces for debug messages in
+xhci_address_device) was backported to the owl tree as part of commit
+5b2ea66f15396 (usb: add owl usb driver), the specific CFLAGS needed for
+xhci-trace.c were missed, causing build breakage:
+
+  CC      drivers/usb/host/xhci-trace.o
+In file included from drivers/usb/host/xhci-trace.h:151:0,
+                 from drivers/usb/host/xhci-trace.c:15:
+include/trace/define_trace.h:79:43: fatal error: ./xhci-trace.h: No such file or directory
+
+Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
+---
+ drivers/usb/host/Makefile |    3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: linux-59dbf6a4998e967eb9c6bdcc9b506c0d96acb26b/drivers/usb/host/Makefile
+===================================================================
+--- linux-59dbf6a4998e967eb9c6bdcc9b506c0d96acb26b.orig/drivers/usb/host/Makefile
++++ linux-59dbf6a4998e967eb9c6bdcc9b506c0d96acb26b/drivers/usb/host/Makefile
+@@ -4,6 +4,9 @@
+ 
+ ccflags-$(CONFIG_USB_DEBUG) := -DDEBUG
+ 
++# tell define_trace.h where to find the xhci trace header
++CFLAGS_xhci-trace.o := -I$(src)
++
+ isp1760-y := isp1760-hcd.o isp1760-if.o
+ 
+ fhci-y := fhci-hcd.o fhci-hub.o fhci-q.o

+ 18 - 0
board/roseapplepi/post-image.sh

@@ -0,0 +1,18 @@
+#!/bin/sh
+
+BOARD_DIR="$(dirname $0)"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
+GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+
+rm -rf "${GENIMAGE_TMP}"
+
+cp "${BOARD_DIR}/uEnv.txt" "${BINARIES_DIR}"
+
+genimage                           \
+	--rootpath "${TARGET_DIR}"     \
+	--tmppath "${GENIMAGE_TMP}"    \
+	--inputpath "${BINARIES_DIR}"  \
+	--outputpath "${BINARIES_DIR}" \
+	--config "${GENIMAGE_CFG}"
+
+exit $?

+ 3 - 0
board/roseapplepi/uEnv.txt

@@ -0,0 +1,3 @@
+# no ramdisk
+ramdisk_addr_r=-
+bootargs=clk_ignore_unused root=/dev/mmcblk0p2

+ 2 - 1
board/via/imx6_vab820/post-image.sh

@@ -1,6 +1,7 @@
 #!/bin/bash
 
-GENIMAGE_CFG="board/via/imx6_vab820/genimage.cfg"
+BOARD_DIR="$(dirname $0)"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
 GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
 
 rm -rf "${GENIMAGE_TMP}"

+ 2 - 1
board/wandboard/post-image.sh

@@ -1,6 +1,7 @@
 #!/usr/bin/env bash
 
-GENIMAGE_CFG="board/wandboard/genimage.cfg"
+BOARD_DIR="$(dirname $0)"
+GENIMAGE_CFG="${BOARD_DIR}/genimage.cfg"
 GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
 
 rm -rf "${GENIMAGE_TMP}"

+ 1 - 0
boot/Config.in

@@ -11,6 +11,7 @@ source "boot/grub2/Config.in"
 source "boot/gummiboot/Config.in"
 source "boot/lpc32xxcdl/Config.in"
 source "boot/mxs-bootlets/Config.in"
+source "boot/s500-bootloader/Config.in"
 source "boot/syslinux/Config.in"
 source "boot/uboot/Config.in"
 source "boot/xloader/Config.in"

+ 2 - 2
boot/barebox/Config.in

@@ -12,7 +12,7 @@ choice
 	  Select the specific Barebox version you want to use
 
 config BR2_TARGET_BAREBOX_LATEST_VERSION
-	bool "2016.04.0"
+	bool "2016.05.0"
 
 config BR2_TARGET_BAREBOX_CUSTOM_VERSION
 	bool "Custom version"
@@ -40,7 +40,7 @@ endif
 
 config BR2_TARGET_BAREBOX_VERSION
 	string
-	default "2016.04.0"	if BR2_TARGET_BAREBOX_LATEST_VERSION
+	default "2016.05.0"	if BR2_TARGET_BAREBOX_LATEST_VERSION
 	default BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE if BR2_TARGET_BAREBOX_CUSTOM_VERSION
 	default "custom"	if BR2_TARGET_BAREBOX_CUSTOM_TARBALL
 	default BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION if BR2_TARGET_BAREBOX_CUSTOM_GIT

+ 3 - 3
boot/barebox/barebox.hash

@@ -1,5 +1,5 @@
-# http://www.barebox.org/download/barebox-2016.04.0.tar.bz2.md5
-md5 178150b9d7fa9a27db513a629b9200c2 barebox-2016.04.0.tar.bz2
+# http://www.barebox.org/download/barebox-2016.05.0.tar.bz2.md5
+md5 4df21ad084faa54ea0310288c7b03049 barebox-2016.05.0.tar.bz2
 
 # Locally calculated
-sha256 ad2618a7df5fe5e923d8fd4c8d99f95a8b44166ff7d016bba73e5cb677802027 barebox-2016.04.0.tar.bz2
+sha256 e3a85fd0d9b4c92421258ba38f5bee112ec9dcae87246c93a2353c62bf16d988 barebox-2016.05.0.tar.bz2

+ 17 - 0
boot/s500-bootloader/Config.in

@@ -0,0 +1,17 @@
+config BR2_TARGET_S500_BOOTLOADER
+	bool "s500-bootloader"
+	depends on BR2_arm
+	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	select BR2_HOSTARCH_NEEDS_IA32_LIBS
+	help
+	  1st level bootloader for Actions Semiconductor S500 SoC.
+
+	  https://github.com/xapp-le/owl
+
+config BR2_TARGET_S500_BOOTLOADER_BOARD
+	string "board to configure for"
+	depends on BR2_TARGET_S500_BOOTLOADER
+	help
+	  Specify the board to configure the bootloader for.
+	  This should be the name of a directory under s500/boards
+	  containing a suitable bootloader.ini file.

+ 2 - 0
boot/s500-bootloader/s500-bootloader.hash

@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 b183024ac69f51ea7befd28d03b2ec35a7280e270405600fb4f37aa91d9c9571  s500-bootloader-a8d7fa1d9a7f353ec4613febf30f4ca99a10a106.tar.gz

+ 34 - 0
boot/s500-bootloader/s500-bootloader.mk

@@ -0,0 +1,34 @@
+################################################################################
+#
+# s500-bootloader
+#
+################################################################################
+
+S500_BOOTLOADER_VERSION = a8d7fa1d9a7f353ec4613febf30f4ca99a10a106
+S500_BOOTLOADER_SITE = $(call github,xapp-le,owl,$(S500_BOOTLOADER_VERSION))
+S500_BOOTLOADER_LICENSE = PROPRIETARY
+S500_BOOTLOADER_INSTALL_TARGET = NO
+S500_BOOTLOADER_INSTALL_IMAGES = YES
+
+S500_BOOTLOADER_BOARD = $(call qstrip,$(BR2_TARGET_S500_BOOTLOADER_BOARD))
+
+define S500_BOOTLOADER_BUILD_CMDS
+	cd $(@D) && ./tools/utils/bootloader_pack \
+		s500/bootloader/bootloader.bin \
+		s500/boards/$(S500_BOOTLOADER_BOARD)/bootloader.ini \
+		s500-bootloader.bin
+endef
+
+define S500_BOOTLOADER_INSTALL_IMAGES_CMDS
+	$(INSTALL) -m 0644 -D $(@D)/s500-bootloader.bin \
+		$(BINARIES_DIR)/s500-bootloader.bin
+endef
+
+$(eval $(generic-package))
+
+ifeq ($(BR2_TARGET_S500_BOOTLOADER)$(BR_BUILDING),yy)
+# we NEED a board name
+ifeq ($(S500_BOOTLOADER_BOARD),)
+$(error No s500-bootloader board specified. Check your BR2_TARGET_S500_BOOTLOADER settings)
+endif
+endif

+ 8 - 4
boot/uboot/Config.in

@@ -38,7 +38,7 @@ choice
 	  Select the specific U-Boot version you want to use
 
 config BR2_TARGET_UBOOT_LATEST_VERSION
-	bool "2016.03"
+	bool "2016.05"
 
 config BR2_TARGET_UBOOT_CUSTOM_VERSION
 	bool "Custom version"
@@ -86,7 +86,7 @@ endif
 
 config BR2_TARGET_UBOOT_VERSION
 	string
-	default "2016.03"	if BR2_TARGET_UBOOT_LATEST_VERSION
+	default "2016.05"	if BR2_TARGET_UBOOT_LATEST_VERSION
 	default BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE \
 		if BR2_TARGET_UBOOT_CUSTOM_VERSION
 	default "custom"	if BR2_TARGET_UBOOT_CUSTOM_TARBALL
@@ -348,9 +348,13 @@ menuconfig BR2_TARGET_UBOOT_ENVIMAGE
 if BR2_TARGET_UBOOT_ENVIMAGE
 
 config BR2_TARGET_UBOOT_ENVIMAGE_SOURCE
-	string "Source file for environment"
+	string "Source files for environment"
 	help
-	  Text file describing the environment.
+	  Text files describing the environment. Files should have
+	  lines of the form var=value, one per line. Blank lines and
+	  lines starting with a # are ignored.
+
+	  Multiple source files are concatenated in the order listed.
 
 config BR2_TARGET_UBOOT_ENVIMAGE_SIZE
 	string "Size of environment"

+ 1 - 1
boot/uboot/uboot.hash

@@ -1,2 +1,2 @@
 # Locally computed:
-sha256  e49337262ecac44dbdeac140f2c6ebd1eba345e0162b0464172e7f05583ed7bb  u-boot-2016.03.tar.bz2
+sha256  87d02275615aaf0cd007b54cbe9fbadceef2bee7c79e6c323ea1ae8956dcb171  u-boot-2016.05.tar.bz2

+ 4 - 3
boot/uboot/uboot.mk

@@ -168,9 +168,10 @@ define UBOOT_INSTALL_IMAGES_CMDS
 	$(if $(BR2_TARGET_UBOOT_SPL),
 		cp -dpf $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) $(BINARIES_DIR)/)
 	$(if $(BR2_TARGET_UBOOT_ENVIMAGE),
-		$(HOST_DIR)/usr/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \
-		$(if $(BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT),-r) \
-		-o $(BINARIES_DIR)/uboot-env.bin $(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE))
+		cat $(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)) | \
+			$(HOST_DIR)/usr/bin/mkenvimage -s $(BR2_TARGET_UBOOT_ENVIMAGE_SIZE) \
+			$(if $(BR2_TARGET_UBOOT_ENVIMAGE_REDUNDANT),-r) \
+			-o $(BINARIES_DIR)/uboot-env.bin -)
 endef
 
 define UBOOT_INSTALL_OMAP_IFT_IMAGE

+ 1 - 1
configs/beaglebone_defconfig

@@ -31,7 +31,7 @@ BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git"
 BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="7f280334068b7c875ade51f8f3921ab311f0c824"
-BR2_LINUX_KERNEL_PATCH="board/beaglebone/patches/linux/"
+BR2_LINUX_KERNEL_PATCH="board/beaglebone/patches/linux"
 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/beaglebone/linux-3.12.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y

+ 1 - 1
configs/calao_qil_a9260_defconfig

@@ -1,6 +1,6 @@
 BR2_arm=y
 BR2_arm926t=y
-BR2_GLOBAL_PATCH_DIR="board/calao/qil-a9260/patches/"
+BR2_GLOBAL_PATCH_DIR="board/calao/qil-a9260/patches"
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS1"
 # Linux headers same as kernel, a 3.4 series
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_4=y

+ 1 - 1
configs/calao_tny_a9g20_lpw_defconfig

@@ -13,7 +13,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_9=y
 
 # bootloaders
 BR2_TARGET_AT91BOOTSTRAP=y
-BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR="board/calao/tny-a9g20-lpw/"
+BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR="board/calao/tny-a9g20-lpw"
 BR2_TARGET_AT91BOOTSTRAP_BOARD="tny_a9g20_lpw"
 BR2_TARGET_AT91BOOTSTRAP_NANDFLASH=y
 BR2_TARGET_BAREBOX=y

+ 1 - 1
configs/calao_usb_a9263_defconfig

@@ -5,7 +5,7 @@ BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y
 BR2_PACKAGE_HOST_SAM_BA=y
 BR2_TARGET_ROOTFS_UBIFS=y
 BR2_TARGET_AT91BOOTSTRAP=y
-BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR="board/calao/usb-a9263/"
+BR2_TARGET_AT91BOOTSTRAP_CUSTOM_PATCH_DIR="board/calao/usb-a9263"
 BR2_TARGET_AT91BOOTSTRAP_BOARD="usb_a9263"
 BR2_TARGET_AT91BOOTSTRAP_NANDFLASH=y
 BR2_TARGET_BAREBOX=y

+ 1 - 1
configs/calao_usb_a9g20_lpw_defconfig

@@ -2,7 +2,7 @@ BR2_arm=y
 BR2_arm926t=y
 # Linux headers same as kernel, a 3.10 series
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y
-BR2_GLOBAL_PATCH_DIR="board/calao/usb-a9g20-lpw/patches/"
+BR2_GLOBAL_PATCH_DIR="board/calao/usb-a9g20-lpw/patches"
 BR2_PACKAGE_HOST_SAM_BA=y
 BR2_TARGET_ROOTFS_UBIFS=y
 BR2_TARGET_AT91BOOTSTRAP=y

+ 4 - 4
configs/cubieboard2_defconfig

@@ -1,8 +1,8 @@
 BR2_arm=y
 BR2_cortex_a7=y
 BR2_ARM_FPU_NEON_VFPV4=y
-# Linux headers same as kernel, a 4.3 series
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_3=y
+# Linux headers same as kernel, a 4.6 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y
 BR2_TARGET_GENERIC_HOSTNAME="Cubieboard2"
 BR2_TARGET_GENERIC_ISSUE="Welcome to Cubieboard2!"
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
@@ -10,7 +10,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="board/cubietech/cubieboard2/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/cubietech/cubieboard2/post-image.sh"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.3.3"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6"
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-cubieboard2"
@@ -19,7 +19,7 @@ BR2_TARGET_ROOTFS_EXT2_4=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2015.10"
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05"
 BR2_TARGET_UBOOT_BOARD_DEFCONFIG="Cubieboard2"
 BR2_TARGET_UBOOT_NEEDS_DTC=y
 BR2_TARGET_UBOOT_SPL=y

+ 36 - 0
configs/freescale_imx7dsabresd_defconfig

@@ -0,0 +1,36 @@
+# architecture
+BR2_arm=y
+BR2_cortex_a7=y
+
+# Linux headers same as kernel, a 4.1 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_1=y
+
+# system
+BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
+
+# Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.0.0_ga"
+BR2_LINUX_KERNEL_DEFCONFIG="imx_v7"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7d-sdb"
+
+# filesystem
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+
+# bootloader
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="mx7dsabresd"
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://git.freescale.com/imx/uboot-imx.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="rel_imx_4.1.15_1.0.0_ga"
+BR2_TARGET_UBOOT_FORMAT_IMX=y
+
+# required tools to create the microSD image
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imx7dsdb/post-image.sh"

+ 19 - 8
configs/mx53loco_defconfig

@@ -2,25 +2,36 @@
 BR2_arm=y
 BR2_cortex_a8=y
 
-# Linux headers same as kernel, a 2.6 series (so, no option selected)
+# Linux headers same as kernel, a 4.6 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y
 
 # System
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 
+# patches
+BR2_GLOBAL_PATCH_DIR="board/freescale/imx53loco/patches/"
+
+# required tools to create the SD card image
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+
 # Filesystem
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imx53loco/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
 
 # Bootloader
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BOARDNAME="mx53loco"
-BR2_TARGET_UBOOT_CUSTOM_GIT=y
-BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/Freescale/u-boot-fslc.git"
-BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="e36968af0a033e9d66535928886103370620cb4d"
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05"
 BR2_TARGET_UBOOT_FORMAT_IMX=y
 
 # Kernel
 BR2_LINUX_KERNEL=y
-BR2_LINUX_KERNEL_CUSTOM_GIT=y
-BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.freescale.com/imx/linux-2.6-imx.git"
-BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="b3912bb8a4caf3ec50909135e88af959982c43ca"
-BR2_LINUX_KERNEL_DEFCONFIG="imx5"
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6"
+BR2_LINUX_KERNEL_DEFCONFIG="imx_v6_v7"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx53-qsb imx53-qsrb"

+ 1 - 1
configs/olimex_a20_olinuxino_lime_defconfig

@@ -34,7 +34,7 @@ BR2_TARGET_ROOTFS_EXT2_4=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BOARDNAME="A20-OLinuXino-Lime"
 BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.01"
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05"
 BR2_TARGET_UBOOT_NEEDS_DTC=y
 BR2_TARGET_UBOOT_FORMAT_BIN=y
 BR2_TARGET_UBOOT_SPL=y

+ 3 - 3
configs/orangepipc_defconfig

@@ -1,14 +1,14 @@
 BR2_arm=y
 BR2_cortex_a7=y
 BR2_ARM_FPU_VFPV4=y
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y
 BR2_TARGET_GENERIC_HOSTNAME="OrangePi_PC"
 BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi PC"
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/orangepi/orangepipc/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/orangepi/orangepipc/post-image.sh"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.5"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6"
 BR2_LINUX_KERNEL_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-orangepi-plus"
@@ -18,7 +18,7 @@ BR2_TARGET_ROOTFS_EXT2_4=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.03"
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05"
 BR2_TARGET_UBOOT_BOARD_DEFCONFIG="orangepi_pc"
 BR2_TARGET_UBOOT_NEEDS_DTC=y
 BR2_TARGET_UBOOT_FORMAT_CUSTOM=y

+ 40 - 0
configs/roseapplepi_defconfig

@@ -0,0 +1,40 @@
+BR2_arm=y
+BR2_cortex_a9=y
+BR2_ARM_ENABLE_NEON=y
+BR2_ARM_ENABLE_VFP=y
+
+BR2_GLOBAL_PATCH_DIR="board/roseapplepi/patches"
+# Linux headers same as kernel, a 3.10 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/roseapplepi/post-image.sh"
+
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/xapp-le/kernel.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="59dbf6a4998e967eb9c6bdcc9b506c0d96acb26b"
+BR2_LINUX_KERNEL_DEFCONFIG="actduino_bubble_gum_linux"
+BR2_LINUX_KERNEL_UIMAGE=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="actduino_bubble_gum_sdboot_linux"
+
+# Filesystem / image
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
+
+# Bootloaders
+BR2_TARGET_S500_BOOTLOADER=y
+BR2_TARGET_S500_BOOTLOADER_BOARD="linux/bubble_gum_sd"
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="https://github.com/xapp-le/u-boot.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="a035d2673a90143a1a74557503b2e137b1447ae6"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="actduino_bubble_gum_v10"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y
+
+# Required tools to create the SD image
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y

+ 4 - 4
configs/sheevaplug_defconfig

@@ -11,22 +11,22 @@ BR2_SYSTEM_DHCP="eth0"
 BR2_TARGET_ROOTFS_JFFS2=y
 BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K=y
 
-# Linux headers same as kernel, a 4.5 series
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5=y
+# Linux headers same as kernel, a 4.6 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_6=y
 
 # bootloader
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sheevaplug"
 BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.01"
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.05"
 BR2_TARGET_UBOOT_FORMAT_KWB=y
 # BR2_TARGET_UBOOT_NETWORK is not set
 
 # Kernel
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.5.2"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.6"
 BR2_LINUX_KERNEL_DEFCONFIG="mvebu_v5"
 BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
 BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000"

+ 1 - 1
configs/stm32f429_disco_defconfig

@@ -1,6 +1,6 @@
 BR2_arm=y
 BR2_cortex_m4=y
-BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f429-disco/patches/"
+BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f429-disco/patches"
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5=y
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/stm32-post-build.sh"
 BR2_LINUX_KERNEL=y

+ 1 - 1
configs/stm32f469_disco_defconfig

@@ -1,6 +1,6 @@
 BR2_arm=y
 BR2_cortex_m4=y
-BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f469-disco/patches/"
+BR2_GLOBAL_PATCH_DIR="board/stmicroelectronics/stm32f469-disco/patches"
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5=y
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/stm32-post-build.sh"
 BR2_LINUX_KERNEL=y

+ 1 - 1
configs/warpboard_defconfig

@@ -3,7 +3,7 @@ BR2_arm=y
 BR2_cortex_a9=y
 
 # patches
-BR2_GLOBAL_PATCH_DIR="board/freescale/warpboard/patches/"
+BR2_GLOBAL_PATCH_DIR="board/freescale/warpboard/patches"
 
 # Linux headers same as kernel, a 4.0 series
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_0=y

+ 2 - 2
linux/Config.in

@@ -27,7 +27,7 @@ choice
 	prompt "Kernel version"
 
 config BR2_LINUX_KERNEL_LATEST_VERSION
-	bool "Latest version (4.5.4)"
+	bool "Latest version (4.6)"
 
 config BR2_LINUX_KERNEL_CUSTOM_VERSION
 	bool "Custom version"
@@ -110,7 +110,7 @@ config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH
 
 config BR2_LINUX_KERNEL_VERSION
 	string
-	default "4.5.4" if BR2_LINUX_KERNEL_LATEST_VERSION
+	default "4.6" if BR2_LINUX_KERNEL_LATEST_VERSION
 	default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
 		if BR2_LINUX_KERNEL_CUSTOM_VERSION
 	default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL

+ 3 - 0
linux/linux.mk

@@ -351,6 +351,9 @@ define LINUX_INSTALL_HOST_TOOLS
 	# Installing dtc (device tree compiler) as host tool, if selected
 	if grep -q "CONFIG_DTC=y" $(@D)/.config; then 	\
 		$(INSTALL) -D -m 0755 $(@D)/scripts/dtc/dtc $(HOST_DIR)/usr/bin/linux-dtc ;	\
+		if [ ! -e $(HOST_DIR)/usr/bin/dtc ]; then	\
+			ln -sf linux-dtc $(HOST_DIR)/usr/bin/dtc ;	\
+		fi	\
 	fi
 endef
 

+ 10 - 0
package/Config.in

@@ -494,6 +494,7 @@ menu "Erlang libraries/modules"
 	source "package/erlang-p1-zlib/Config.in"
 endmenu
 endif
+	source "package/ficl/Config.in"
 	source "package/gauche/Config.in"
 	source "package/guile/Config.in"
 	source "package/haserl/Config.in"
@@ -630,6 +631,7 @@ endif
 if BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3
 menu "External python modules"
 	source "package/python-alsaaudio/Config.in"
+	source "package/python-argh/Config.in"
 	source "package/python-autobahn/Config.in"
 	source "package/python-backports-abc/Config.in"
 	source "package/python-beautifulsoup4/Config.in"
@@ -658,6 +660,8 @@ menu "External python modules"
 	source "package/python-enum/Config.in"
 	source "package/python-enum34/Config.in"
 	source "package/python-flask/Config.in"
+	source "package/python-flask-jsonrpc/Config.in"
+	source "package/python-flask-login/Config.in"
 	source "package/python-flup/Config.in"
 	source "package/python-gobject/Config.in"
 	source "package/python-html5lib/Config.in"
@@ -692,6 +696,7 @@ menu "External python modules"
 	source "package/python-paho-mqtt/Config.in"
 	source "package/python-pam/Config.in"
 	source "package/python-paramiko/Config.in"
+	source "package/python-pathtools/Config.in"
 	source "package/python-pexpect/Config.in"
 	source "package/python-posix-ipc/Config.in"
 	source "package/python-protobuf/Config.in"
@@ -748,10 +753,12 @@ menu "External python modules"
 	source "package/python-treq/Config.in"
 	source "package/python-twisted/Config.in"
 	source "package/python-txaio/Config.in"
+	source "package/python-ubjson/Config.in"
 	source "package/python-ujson/Config.in"
 	source "package/python-urllib3/Config.in"
 	source "package/python-urwid/Config.in"
 	source "package/python-versiontools/Config.in"
+	source "package/python-watchdog/Config.in"
 	source "package/python-web2py/Config.in"
 	source "package/python-webpy/Config.in"
 	source "package/python-werkzeug/Config.in"
@@ -1104,6 +1111,7 @@ endmenu
 
 menu "Networking"
 	source "package/agentpp/Config.in"
+	source "package/batman-adv/Config.in"
 	source "package/c-ares/Config.in"
 	source "package/canfestival/Config.in"
 	source "package/cgic/Config.in"
@@ -1177,6 +1185,7 @@ menu "Networking"
 	source "package/omniorb/Config.in"
 	source "package/openldap/Config.in"
 	source "package/openpgm/Config.in"
+	source "package/openzwave/Config.in"
 	source "package/ortp/Config.in"
 	source "package/qdecoder/Config.in"
 	source "package/qpid-proton/Config.in"
@@ -1425,6 +1434,7 @@ endif
 	source "package/kismet/Config.in"
 	source "package/knock/Config.in"
 	source "package/leafnode2/Config.in"
+	source "package/lft/Config.in"
 	source "package/lftp/Config.in"
 	source "package/lighttpd/Config.in"
 	source "package/linknx/Config.in"

+ 3 - 0
package/Makefile.in

@@ -122,6 +122,9 @@ endif
 ifeq ($(BR2_OPTIMIZE_3),y)
 TARGET_OPTIMIZATION = -O3
 endif
+ifeq ($(BR2_OPTIMIZE_G),y)
+TARGET_OPTIMIZATION = -Og
+endif
 ifeq ($(BR2_OPTIMIZE_S),y)
 TARGET_OPTIMIZATION = -Os
 endif

+ 0 - 1
package/audit/audit.mk

@@ -46,7 +46,6 @@ define AUDIT_INSTALL_INIT_SYSTEMD
 	ln -fs ../../../../usr/lib/systemd/system/auditd.service \
 		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/auditd.service
 
-	mkdir -p $(TARGET_DIR)/usr/lib/tmpfiles.d
 	$(INSTALL) -D -m 644 package/audit/audit_tmpfiles.conf \
 		$(TARGET_DIR)/usr/lib/tmpfiles.d/audit.conf
 endef

+ 3 - 3
package/batctl/batctl.hash

@@ -1,4 +1,4 @@
-# http://downloads.open-mesh.org/batman/releases/batman-adv-2015.1/batctl-2015.1.tar.gz.sha1
-sha1	ae086f334ff912ab2a8116caedf0a2a1816acf1a	batctl-2015.1.tar.gz
+# http://downloads.open-mesh.org/batman/releases/batman-adv-2016.1/batctl-2016.1.tar.gz.sha1
+sha1 72b974bde707594e2cf0cc122d7d7da0f1f65160 batctl-2016.1.tar.gz
 # Locally calculated
-sha256	ea67ee22785e6fcd5149472bdf2df4e9f21716968e025e7dd41556a010a8d14a	batctl-2015.1.tar.gz
+sha256 c854397b2ddd2cb8d15d1e65839819380648ccb37507d0303e133011fe6f03c9  batctl-2016.1.tar.gz

+ 1 - 1
package/batctl/batctl.mk

@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-BATCTL_VERSION = 2015.1
+BATCTL_VERSION = 2016.1
 BATCTL_SITE = http://downloads.open-mesh.org/batman/releases/batman-adv-$(BATCTL_VERSION)
 BATCTL_LICENSE = GPLv2
 BATCTL_DEPENDENCIES = libnl host-pkgconf

+ 35 - 0
package/batman-adv/Config.in

@@ -0,0 +1,35 @@
+comment "batman-adv needs a Linux kernel to be built"
+	depends on !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_BATMAN_ADV
+	bool "batman-adv"
+	depends on BR2_LINUX_KERNEL
+	help
+	  batman-adv mesh networking kernel module
+
+	  https://www.open-mesh.org/projects/batman-adv/
+
+if BR2_PACKAGE_BATMAN_ADV
+
+config BR2_PACKAGE_BATMAN_ADV_DEBUG
+	bool "enable debugging"
+	help
+	  Enables B.A.T.M.A.N. debugging.
+
+config BR2_PACKAGE_BATMAN_ADV_NC
+	bool "enable network coding"
+	help
+	  Enables B.A.T.M.A.N. network coding.
+	  Note: this requires promiscuous mode on ALL nodes!
+
+	  https://www.open-mesh.org/projects/batman-adv/wiki/NetworkCoding
+
+config BR2_PACKAGE_BATMAN_ADV_BATMAN_V
+	bool "enable B.A.T.M.A.N. V protocol (experimental)"
+	help
+	  Enables B.A.T.M.A.N. V network protocol.
+	  This is the next-gen protocol and is experimental at this time.
+
+	  https://www.open-mesh.org/projects/batman-adv/wiki/BATMAN_V
+
+endif

+ 2 - 0
package/batman-adv/batman-adv.hash

@@ -0,0 +1,2 @@
+# From https://downloads.open-mesh.org/batman/stable/sources/batman-adv/batman-adv-2016.1.tar.gz.sha1
+sha1 c9ca52c913fbf81aca266695a77359ecdbcc8bd8 batman-adv-2016.1.tar.gz

+ 35 - 0
package/batman-adv/batman-adv.mk

@@ -0,0 +1,35 @@
+################################################################################
+#
+# batman-adv
+#
+################################################################################
+
+BATMAN_ADV_VERSION = 2016.1
+BATMAN_ADV_SITE = https://downloads.open-mesh.org/batman/stable/sources/batman-adv
+BATMAN_ADV_SOURCE = batman-adv-$(BATMAN_ADV_VERSION).tar.gz
+BATMAN_ADV_LICENSE = GPLv2
+
+# Bridge Loop Avoidance, Distributed Arp Table are always enabled
+BATMAN_ADV_CFLAGS = \
+	-I$(@D)/compat-include/ \
+	-include $(@D)/compat.h \
+	-DBATADV_SOURCE_VERSION=\"\\\"$(BATMAN_ADV_VERSION)\\\"\"
+BATMAN_ADV_MODULE_MAKE_OPTS = \
+	KVER=$(LINUX_VERSION_PROBED) \
+	INSTALL_MOD_DIR=updates/net/batman-adv \
+	NOSTDINC_FLAGS="$(BATMAN_ADV_CFLAGS)" \
+	CONFIG_BATMAN_ADV=m \
+	CONFIG_BATMAN_ADV_BATMAN_V=$(BR2_PACKAGE_BATMAN_ADV_BATMAN_V) \
+	CONFIG_BATMAN_ADV_BLA=y \
+	CONFIG_BATMAN_ADV_DAT=y \
+	CONFIG_BATMAN_ADV_DEBUG=$(BR2_PACKAGE_BATMAN_ADV_DEBUG) \
+	CONFIG_BATMAN_ADV_MCAST=y \
+	CONFIG_BATMAN_ADV_NC=$(BR2_PACKAGE_BATMAN_ADV_NC)
+BATMAN_ADV_MODULE_SUBDIRS = net/batman-adv
+
+define BATMAN_ADV_CONFIGURE_CMDS
+	$(BATMAN_ADV_MODULE_MAKE_OPTS) $(@D)/gen-compat-autoconf.sh $(@D)/compat-autoconf.h
+endef
+
+$(eval $(kernel-module))
+$(eval $(generic-package))

+ 0 - 29
package/binutils/2.23.2/120-sh-conf.patch

@@ -1,29 +0,0 @@
-r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines
-
-Likewise, binutils has no idea about any of these new targets either, so we 
-fix that up too.. now we're able to actually build a real toolchain for 
-sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more 
-inept targets than that one, really. Go look, I promise).
-
---- a/configure
-+++ b/configure
-@@ -1495,7 +1495,7 @@
-   mips*-*-*)
-     noconfigdirs="$noconfigdirs gprof"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;
---- a/configure.ac
-+++ b/configure.ac
-@@ -712,7 +712,7 @@
-   mips*-*-*)
-     noconfigdirs="$noconfigdirs gprof"
-     ;;
--  sh-*-* | sh64-*-*)
-+  sh*-*-* | sh64-*-*)
-     case "${target}" in
-       sh*-*-elf)
-          ;;

+ 0 - 24
package/binutils/2.23.2/300-001_ld_makefile_patch.patch

@@ -1,24 +0,0 @@
-diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
---- binutils-2.17.50.0.17.oorig/ld/Makefile.am	2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.am	2007-06-25 10:00:36.000000000 +0200
-@@ -18,7 +18,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- 
- EMUL = @EMUL@
- EMULATION_OFILES = @EMULATION_OFILES@
-diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
---- binutils-2.17.50.0.17.oorig/ld/Makefile.in	2007-06-18 19:29:29.000000000 +0200
-+++ binutils-2.17.50.0.17/ld/Makefile.in	2007-06-25 10:00:36.000000000 +0200
-@@ -287,7 +287,7 @@
- # We put the scripts in the directory $(scriptdir)/ldscripts.
- # We can't put the scripts in $(datadir) because the SEARCH_DIR
- # directives need to be different for native and cross linkers.
--scriptdir = $(tooldir)/lib
-+scriptdir = $(libdir)
- BASEDIR = $(srcdir)/..
- BFDDIR = $(BASEDIR)/bfd
- INCDIR = $(BASEDIR)/include

+ 0 - 21
package/binutils/2.23.2/300-012_check_ldrunpath_length.patch

@@ -1,21 +0,0 @@
-diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
---- binutils-2.21.orig/ld/emultempl/elf32.em	2010-10-29 09:10:36.000000000 -0300
-+++ binutils-2.21/ld/emultempl/elf32.em	2010-12-10 09:26:56.746102724 -0300
-@@ -1270,6 +1270,8 @@
- 	      && command_line.rpath == NULL)
- 	    {
- 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
-+	      if ((lib_path) && (strlen (lib_path) == 0))
-+	      	lib_path = NULL;
- 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
- 						      force))
- 		break;
-@@ -1497,6 +1499,8 @@
-   rpath = command_line.rpath;
-   if (rpath == NULL)
-     rpath = (const char *) getenv ("LD_RUN_PATH");
-+  if ((rpath) && (strlen (rpath) == 0))
-+  	rpath = NULL;
- 
-   for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next)
-     if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)

+ 0 - 846
package/binutils/2.23.2/900-xtensa-trampolines.patch

@@ -1,846 +0,0 @@
-From a82c7d9030b67a6a76a5403d0e1641f9e42141ac Mon Sep 17 00:00:00 2001
-From: David Weatherford <weath@cadence.com>
-Date: Fri, 21 Mar 2014 11:53:42 +0000
-Subject: [PATCH] Add support to the Xtensa target for creating trampolines for
- out-of-range branches.
-
-    * tc-xtensa.c (xtensa_check_frag_count, xtensa_create_trampoline_frag)
-    (xtensa_maybe_create_trampoline_frag, init_trampoline_frag)
-    (find_trampoline_seg, search_trampolines, get_best_trampoline)
-    (check_and_update_trampolines, add_jump_to_trampoline)
-    (dump_trampolines): New function.
-    (md_parse_option): Add cases for --[no-]trampolines options.
-    (md_assemble, finish_vinsn, xtensa_end): Add call to
-    xtensa_check_frag_count.
-    (xg_assemble_vliw_tokens): Add call to
-    xtensa_maybe_create_trampoline_frag.
-    (xtensa_relax_frag): Relax fragments with RELAX_TRAMPOLINE state.
-    (relax_frag_immed): Relax jump instructions that cannot reach its
-    target.
-    * tc-xtensa.h (xtensa_relax_statesE::RELAX_TRAMPOLINE): New relax
-    state.
-
-    * as.texinfo: Document --[no-]trampolines command-line options.
-    * c-xtensa.texi: Document trampolines relaxation and command line
-    options.
-
-    * frags.c (get_frag_count, clear_frag_count): New function.
-    (frag_alloc): Increment totalfrags counter.
-    * frags.h (get_frag_count, clear_frag_count): New function.
-
-    * all.exp: Add test for trampoline relaxation.
-    * trampoline.d: Trampoline relaxation expected dump.
-    * trampoline.s: Trampoline relaxation test source.
----
-Backported from: a82c7d9030b67a6a76a5403d0e1641f9e42141ac
-Changes to Changelog files are dropped.
-
- gas/config/tc-xtensa.c                | 558 +++++++++++++++++++++++++++++++++-
- gas/config/tc-xtensa.h                |   5 +
- gas/frags.c                           |  15 +
- gas/frags.h                           |   3 +
- gas/testsuite/gas/xtensa/all.exp      |   1 +
- gas/testsuite/gas/xtensa/trampoline.d |  26 ++
- gas/testsuite/gas/xtensa/trampoline.s |  21 ++
- 11 files changed, 753 insertions(+), 2 deletions(-)
- create mode 100644 gas/testsuite/gas/xtensa/trampoline.d
- create mode 100644 gas/testsuite/gas/xtensa/trampoline.s
-
-diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
-index fe8ec0f..ea23c96 100644
---- a/gas/config/tc-xtensa.c
-+++ b/gas/config/tc-xtensa.c
-@@ -468,6 +468,12 @@ static void xtensa_set_frag_assembly_state (fragS *);
- static void finish_vinsn (vliw_insn *);
- static bfd_boolean emit_single_op (TInsn *);
- static int total_frag_text_expansion (fragS *);
-+static bfd_boolean use_trampolines = TRUE;
-+static void xtensa_check_frag_count (void);
-+static void xtensa_create_trampoline_frag (bfd_boolean);
-+static void xtensa_maybe_create_trampoline_frag (void);
-+struct trampoline_frag;
-+static int init_trampoline_frag (struct trampoline_frag *);
- 
- /* Alignment Functions.  */
- 
-@@ -520,6 +526,7 @@ static void tinsn_from_chars (TInsn *, char *, int);
- static void tinsn_immed_from_frag (TInsn *, fragS *, int);
- static int get_num_stack_text_bytes (IStack *);
- static int get_num_stack_literal_bytes (IStack *);
-+static bfd_boolean tinsn_to_slotbuf (xtensa_format, int, TInsn *, xtensa_insnbuf);
- 
- /* vliw_insn functions.  */
- 
-@@ -687,7 +694,10 @@ enum
-   option_prefer_l32r,
-   option_prefer_const16,
- 
--  option_target_hardware
-+  option_target_hardware,
-+
-+  option_trampolines,
-+  option_no_trampolines,
- };
- 
- const char *md_shortopts = "";
-@@ -760,6 +770,9 @@ struct option md_longopts[] =
- 
-   { "target-hardware", required_argument, NULL, option_target_hardware },
- 
-+  { "trampolines", no_argument, NULL, option_trampolines },
-+  { "no-trampolines", no_argument, NULL, option_no_trampolines },
-+
-   { NULL, no_argument, NULL, 0 }
- };
- 
-@@ -940,6 +953,14 @@ md_parse_option (int c, char *arg)
-       directive_state[directive_transform] = FALSE;
-       return 1;
- 
-+    case option_trampolines:
-+      use_trampolines = TRUE;
-+      return 1;
-+
-+    case option_no_trampolines:
-+      use_trampolines = FALSE;
-+      return 1;
-+
-     default:
-       return 0;
-     }
-@@ -963,7 +984,9 @@ Xtensa options:\n\
-                           flix bundles\n\
-   --no-allow-flix         neither allow hand-written nor generate\n\
-                           flix bundles\n\
--  --rename-section old=new Rename section 'old' to 'new'\n", stream);
-+  --rename-section old=new Rename section 'old' to 'new'\n\
-+  --[no-]trampolines      [Do not] generate trampolines (jumps to jumps)\n\
-+                          when jumps do not reach their targets\n", stream);
- }
- 
- 
-@@ -5568,6 +5591,8 @@ md_assemble (char *str)
- 
-   /* We've just emitted a new instruction so clear the list of labels.  */
-   xtensa_clear_insn_labels ();
-+
-+  xtensa_check_frag_count ();
- }
- 
- 
-@@ -6372,6 +6397,8 @@ finish_vinsn (vliw_insn *vinsn)
-   xg_assemble_vliw_tokens (vinsn);
- 
-   xg_clear_vinsn (vinsn);
-+
-+  xtensa_check_frag_count ();
- }
- 
- 
-@@ -7140,6 +7167,7 @@ xg_assemble_vliw_tokens (vliw_insn *vinsn)
- 		    RELAX_UNREACHABLE,
- 		    frag_now->fr_symbol, frag_now->fr_offset, NULL);
- 	  xtensa_set_frag_assembly_state (frag_now);
-+	  xtensa_maybe_create_trampoline_frag ();
- 	}
-       else if (is_branch && do_align_targets ())
- 	{
-@@ -7222,9 +7250,164 @@ xtensa_end (void)
-   xtensa_sanity_check ();
- 
-   xtensa_add_config_info ();
-+
-+  xtensa_check_frag_count ();
-+}
-+
-+
-+struct trampoline_frag
-+{
-+  struct trampoline_frag *next;
-+  bfd_boolean needs_jump_around;
-+  fragS *fragP;
-+  fixS *fixP;
-+};
-+
-+struct trampoline_seg
-+{
-+  struct trampoline_seg *next;
-+  asection *seg;
-+  struct trampoline_frag trampoline_list;
-+};
-+
-+static struct trampoline_seg trampoline_seg_list;
-+#define J_RANGE (128 * 1024)
-+
-+static int unreachable_count = 0;
-+
-+
-+static void
-+xtensa_maybe_create_trampoline_frag (void)
-+{
-+  if (!use_trampolines)
-+    return;
-+
-+  /* We create an area for possible trampolines every 10 unreachable frags.
-+     These are preferred over the ones not preceded by an unreachable frag,
-+     because we don't have to jump around them. This function is called after
-+     each RELAX_UNREACHABLE frag is created.  */
-+
-+  if (++unreachable_count > 10)
-+    {
-+      xtensa_create_trampoline_frag (FALSE);
-+      clear_frag_count ();
-+      unreachable_count = 0;
-+    }
-+}
-+
-+static void
-+xtensa_check_frag_count (void)
-+{
-+  if (!use_trampolines || frag_now->tc_frag_data.is_no_transform)
-+    return;
-+
-+  /* We create an area for possible trampolines every 8000 frags or so. This
-+     is an estimate based on the max range of a "j" insn (+/-128K) divided
-+     by a typical frag byte count (16), minus a few for safety. This function
-+     is called after each source line is processed.  */
-+
-+  if (get_frag_count () > 8000)
-+    {
-+      xtensa_create_trampoline_frag (TRUE);
-+      clear_frag_count ();
-+      unreachable_count = 0;
-+    }
-+}
-+
-+static xtensa_insnbuf trampoline_buf = NULL;
-+static xtensa_insnbuf trampoline_slotbuf = NULL;
-+
-+#define TRAMPOLINE_FRAG_SIZE 3000
-+
-+static void
-+xtensa_create_trampoline_frag (bfd_boolean needs_jump_around)
-+{
-+  /* Emit a frag where we can place intermediate jump instructions,
-+     in case we need to jump farther than 128K bytes.
-+     Each jump instruction takes three bytes.
-+     We allocate enough for 1000 trampolines in each frag.
-+     If that's not enough, oh well.  */
-+
-+  struct trampoline_seg *ts = trampoline_seg_list.next;
-+  struct trampoline_frag *tf;
-+  char *varP;
-+  fragS *fragP;
-+  int size = TRAMPOLINE_FRAG_SIZE;
-+
-+  for ( ; ts; ts = ts->next)
-+    {
-+      if (ts->seg == now_seg)
-+	break;
-+    }
-+
-+  if (ts == NULL)
-+    {
-+      ts = (struct trampoline_seg *)xcalloc(sizeof (struct trampoline_seg), 1);
-+      ts->next = trampoline_seg_list.next;
-+      trampoline_seg_list.next = ts;
-+      ts->seg = now_seg;
-+    }
-+
-+  frag_wane (frag_now);
-+  frag_new (0);
-+  xtensa_set_frag_assembly_state (frag_now);
-+  varP = frag_var (rs_machine_dependent, size, size, RELAX_TRAMPOLINE, NULL, 0, NULL);
-+  fragP = (fragS *)(varP - SIZEOF_STRUCT_FRAG);
-+  if (trampoline_buf == NULL)
-+    {
-+      trampoline_buf = xtensa_insnbuf_alloc (xtensa_default_isa);
-+      trampoline_slotbuf = xtensa_insnbuf_alloc (xtensa_default_isa);
-+    }
-+  tf = (struct trampoline_frag *)xmalloc(sizeof (struct trampoline_frag));
-+  tf->next = ts->trampoline_list.next;
-+  ts->trampoline_list.next = tf;
-+  tf->needs_jump_around = needs_jump_around;
-+  tf->fragP = fragP;
-+  tf->fixP = NULL;
-+}
-+
-+
-+static struct trampoline_seg *
-+find_trampoline_seg (asection *seg)
-+{
-+  struct trampoline_seg *ts = trampoline_seg_list.next;
-+
-+  for ( ; ts; ts = ts->next)
-+    {
-+      if (ts->seg == seg)
-+	return ts;
-+    }
-+
-+  return NULL;
- }
- 
- 
-+void dump_trampolines (void);
-+
-+void
-+dump_trampolines (void)
-+{
-+  struct trampoline_seg *ts = trampoline_seg_list.next;
-+
-+  for ( ; ts; ts = ts->next)
-+    {
-+      asection *seg = ts->seg;
-+
-+      if (seg == NULL)
-+	continue;
-+      fprintf(stderr, "SECTION %s\n", seg->name);
-+      struct trampoline_frag *tf = ts->trampoline_list.next;
-+      for ( ; tf; tf = tf->next)
-+	{
-+	  if (tf->fragP == NULL)
-+	    continue;
-+	  fprintf(stderr, "   0x%08x: fix=%d, jump_around=%s\n",
-+		  (int)tf->fragP->fr_address, (int)tf->fragP->fr_fix,
-+		  tf->needs_jump_around ? "T" : "F");
-+	}
-+    }
-+}
-+
- static void
- xtensa_cleanup_align_frags (void)
- {
-@@ -8708,6 +8891,149 @@ xtensa_relax_frag (fragS *fragP, long stretch, int *stretched_p)
- 	new_stretch += relax_frag_for_align (fragP, stretch);
-       break;
- 
-+    case RELAX_TRAMPOLINE:
-+      if (fragP->tc_frag_data.relax_seen)
-+        {
-+          segment_info_type *seginfo = seg_info (now_seg);
-+          fragS *fP; /* The out-of-range jump.  */
-+          fixS *fixP;
-+
-+          /* Scan for jumps that will not reach.  */
-+          for (fixP = seginfo->fix_root; fixP ; fixP = fixP->fx_next)
-+            {
-+              symbolS *s = fixP->fx_addsy;
-+	      xtensa_opcode opcode;
-+              int target;
-+              int addr;
-+              int delta;
-+
-+              if (fixP->fx_r_type < BFD_RELOC_XTENSA_SLOT0_OP ||
-+                  fixP->fx_r_type > BFD_RELOC_XTENSA_SLOT14_OP)
-+                continue;
-+	      xtensa_insnbuf_from_chars (isa, trampoline_buf,
-+					 (unsigned char *) fixP->fx_frag->fr_literal + fixP->fx_where,
-+					 0);
-+	      fmt = xtensa_format_decode (isa, trampoline_buf);
-+	      gas_assert (fmt != XTENSA_UNDEFINED);
-+	      slot = fixP->tc_fix_data.slot;
-+	      xtensa_format_get_slot (isa, fmt, slot, trampoline_buf, trampoline_slotbuf);
-+	      opcode = xtensa_opcode_decode (isa, fmt, slot, trampoline_slotbuf);
-+	      if (opcode != xtensa_j_opcode)
-+		continue;
-+              target = S_GET_VALUE (s);
-+              addr = fixP->fx_frag->fr_address;
-+              delta = target - addr + stretch;
-+              if (delta > J_RANGE  || delta < -1 * J_RANGE)
-+                { /* Found an out-of-range jump; scan the list of trampolines for the best match.  */
-+		  struct trampoline_seg *ts = find_trampoline_seg (now_seg);
-+		  struct trampoline_frag *tf = ts->trampoline_list.next;
-+		  struct trampoline_frag *prev = &ts->trampoline_list;
-+		  int lower = (target < addr) ? target : addr;
-+		  int upper = (target > addr) ? target : addr;
-+		  int midpoint = lower + (upper - lower) / 2;
-+
-+		  if ((upper - lower) > 2 * J_RANGE)
-+		    {
-+		      /* One trampoline won't suffice; we need multiple jumps.
-+			 Jump to the trampoline that's farthest, but still in
-+			 range relative to the original "j" instruction.  */
-+		      for ( ; tf; prev = tf, tf = tf->next )
-+			{
-+			  int this_addr = tf->fragP->fr_address + tf->fragP->fr_fix;
-+			  int next_addr = (tf->next) ? tf->next->fragP->fr_address + tf->next->fragP->fr_fix : 0 ;
-+
-+			  if (addr == lower)
-+			    {
-+			      /* Forward jump.  */
-+			      if (this_addr - addr < J_RANGE)
-+				break;
-+			    }
-+			  else
-+			    {
-+			      /* Backward jump.  */
-+			      if (next_addr == 0 || addr - next_addr > J_RANGE)
-+				break;
-+			    }
-+			}
-+		    }
-+		  else
-+		    {
-+		      struct trampoline_frag *best_tf = NULL;
-+		      int best_delta = 0;
-+
-+		      for ( ; tf; prev = tf, tf = tf->next )
-+			{
-+			  int this_addr = tf->fragP->fr_address + tf->fragP->fr_fix;
-+			  int this_delta = abs (this_addr - midpoint);
-+
-+			  if (!best_tf || this_delta < best_delta)
-+			    {
-+			       best_tf = tf;
-+			       best_delta = this_delta;
-+			    }
-+			}
-+		      tf = best_tf;
-+		    }
-+		  if (tf->fragP == fragP)
-+		    {
-+		      int trampaddr = fragP->fr_address + fragP->fr_fix;
-+
-+		      if (abs (addr - trampaddr) < J_RANGE)
-+			{ /* The trampoline is in range of original; fix it!  */
-+			  fixS *newfixP;
-+			  int offset;
-+			  TInsn insn;
-+			  symbolS *lsym;
-+
-+			  new_stretch += init_trampoline_frag (tf);
-+			  offset = fragP->fr_fix; /* Where to assemble the j insn.  */
-+			  lsym = fragP->fr_symbol;
-+			  fP = fixP->fx_frag;
-+			  /* Assemble a jump to the target label here.  */
-+			  tinsn_init (&insn);
-+			  insn.insn_type = ITYPE_INSN;
-+			  insn.opcode = xtensa_j_opcode;
-+			  insn.ntok = 1;
-+			  set_expr_symbol_offset (&insn.tok[0], lsym, offset);
-+			  fmt = xg_get_single_format (xtensa_j_opcode);
-+			  tinsn_to_slotbuf (fmt, 0, &insn, trampoline_slotbuf);
-+			  xtensa_format_set_slot (isa, fmt, 0, trampoline_buf, trampoline_slotbuf);
-+			  xtensa_insnbuf_to_chars (isa, trampoline_buf, (unsigned char *)fragP->fr_literal + offset, 3);
-+			  fragP->fr_fix += 3;
-+			  fragP->fr_var -= 3;
-+			  /* Add a fix-up for the original j insn.  */
-+			  newfixP = fix_new (fP, fixP->fx_where, fixP->fx_size, lsym, fragP->fr_fix - 3, TRUE, fixP->fx_r_type);
-+			  newfixP->fx_no_overflow = 1;
-+			  newfixP->tc_fix_data.X_add_symbol = lsym;
-+			  newfixP->tc_fix_data.X_add_number = offset;
-+			  newfixP->tc_fix_data.slot = slot;
-+			  /* Move the fix-up from the original j insn to this one.  */
-+			  fixP->fx_frag = fragP;
-+			  fixP->fx_where = fragP->fr_fix - 3;
-+			  fixP->tc_fix_data.slot = 0;
-+			  /* Adjust the jump around this trampoline (if present).  */
-+			  if (tf->fixP != NULL)
-+			    {
-+			      tf->fixP->fx_offset += 3;
-+			    }
-+			  new_stretch += 3;
-+			  fragP->tc_frag_data.relax_seen = FALSE; /* Need another pass.  */
-+			  /* Do we have room for more?  */
-+			  if (fragP->fr_var < 3)
-+			    { /* No, convert to fill.  */
-+			      frag_wane (fragP);
-+			      fragP->fr_subtype = 0;
-+			      /* Remove from the trampoline_list.  */
-+			      prev->next = tf->next;
-+			      break;
-+			    }
-+			}
-+		    }
-+                }
-+            }
-+        }
-+      break;
-+
-     default:
-       as_bad (_("bad relaxation state"));
-     }
-@@ -9146,6 +9472,200 @@ bytes_to_stretch (fragS *this_frag,
- }
- 
- 
-+static struct trampoline_frag *
-+search_trampolines (TInsn *tinsn, fragS *fragP, bfd_boolean unreachable_only)
-+{
-+  struct trampoline_seg *ts = find_trampoline_seg (now_seg);
-+  struct trampoline_frag *tf = (ts) ? ts->trampoline_list.next : NULL;
-+  struct trampoline_frag *best_tf = NULL;
-+  int best_delta = 0;
-+  int best_addr = 0;
-+  symbolS *sym = tinsn->tok[0].X_add_symbol;
-+  offsetT target = S_GET_VALUE (sym) + tinsn->tok[0].X_add_number;
-+  offsetT addr = fragP->fr_address;
-+  offsetT lower = (addr < target) ? addr : target;
-+  offsetT upper = (addr > target) ? addr : target;
-+  int delta = upper - lower;
-+  offsetT midpoint = lower + delta / 2;
-+  int this_delta = -1;
-+  int this_addr = -1;
-+
-+  if (delta > 2 * J_RANGE)
-+    {
-+      /* One trampoline won't do; we need multiple.
-+	 Choose the farthest trampoline that's still in range of the original
-+	 and let a later pass finish the job.  */
-+      for ( ; tf; tf = tf->next)
-+	{
-+	  int next_addr = (tf->next) ? tf->next->fragP->fr_address + tf->next->fragP->fr_fix : 0;
-+
-+	  this_addr = tf->fragP->fr_address + tf->fragP->fr_fix;
-+	  if (lower == addr)
-+	    {
-+	      /* Forward jump.  */
-+	      if (this_addr - addr < J_RANGE)
-+		break;
-+	    }
-+	  else
-+	    {
-+	      /* Backward jump.  */
-+	      if (next_addr == 0 || addr - next_addr > J_RANGE)
-+		break;
-+	    }
-+	  if (abs (addr - this_addr) < J_RANGE)
-+	    return tf;
-+
-+	  return NULL;
-+	}
-+    }
-+  for ( ; tf; tf = tf->next)
-+    {
-+      this_addr = tf->fragP->fr_address + tf->fragP->fr_fix;
-+      this_delta = abs (this_addr - midpoint);
-+      if (unreachable_only && tf->needs_jump_around)
-+	continue;
-+      if (!best_tf || this_delta < best_delta)
-+        {
-+	  best_tf = tf;
-+	  best_delta = this_delta;
-+	  best_addr = this_addr;
-+        }
-+    }
-+
-+  if (best_tf &&
-+      best_delta < J_RANGE &&
-+      abs(best_addr - lower) < J_RANGE &&
-+      abs(best_addr - upper) < J_RANGE)
-+    return best_tf;
-+
-+  return NULL; /* No suitable trampoline found.  */
-+}
-+
-+
-+static struct trampoline_frag *
-+get_best_trampoline (TInsn *tinsn, fragS *fragP)
-+{
-+  struct trampoline_frag *tf = NULL;
-+
-+  tf = search_trampolines (tinsn, fragP, TRUE); /* Try unreachable first.  */
-+
-+  if (tf == NULL)
-+    tf = search_trampolines (tinsn, fragP, FALSE); /* Try ones needing a jump-around, too.  */
-+
-+  return tf;
-+}
-+
-+
-+static void
-+check_and_update_trampolines (void)
-+{
-+  struct trampoline_seg *ts = find_trampoline_seg (now_seg);
-+  struct trampoline_frag *tf = ts->trampoline_list.next;
-+  struct trampoline_frag *prev = &ts->trampoline_list;
-+
-+  for ( ; tf; prev = tf, tf = tf->next)
-+    {
-+      if (tf->fragP->fr_var < 3)
-+	{
-+	  frag_wane (tf->fragP);
-+	  prev->next = tf->next;
-+	  tf->fragP = NULL;
-+	}
-+    }
-+}
-+
-+
-+static int
-+init_trampoline_frag (struct trampoline_frag *trampP)
-+{
-+  fragS *fp = trampP->fragP;
-+  int growth = 0;
-+
-+  if (fp->fr_fix == 0)
-+    {
-+      symbolS *lsym;
-+      char label[10 + 2 * sizeof(fp)];
-+      sprintf (label, ".L0_TR_%p", fp);
-+
-+      lsym = (symbolS *)local_symbol_make (label, now_seg, 0, fp);
-+      fp->fr_symbol = lsym;
-+      if (trampP->needs_jump_around)
-+        {
-+	  /* Add a jump around this block of jumps, in case
-+	     control flows into this block.  */
-+	  fixS *fixP;
-+	  TInsn insn;
-+	  xtensa_format fmt;
-+	  xtensa_isa isa = xtensa_default_isa;
-+
-+	  fp->tc_frag_data.is_insn = 1;
-+	  /* Assemble a jump insn.  */
-+	  tinsn_init (&insn);
-+	  insn.insn_type = ITYPE_INSN;
-+	  insn.opcode = xtensa_j_opcode;
-+	  insn.ntok = 1;
-+	  set_expr_symbol_offset (&insn.tok[0], lsym, 3);
-+	  fmt = xg_get_single_format (xtensa_j_opcode);
-+	  tinsn_to_slotbuf (fmt, 0, &insn, trampoline_slotbuf);
-+	  xtensa_format_set_slot (isa, fmt, 0, trampoline_buf, trampoline_slotbuf);
-+	  xtensa_insnbuf_to_chars (isa, trampoline_buf, (unsigned char *)fp->fr_literal, 3);
-+	  fp->fr_fix += 3;
-+	  fp->fr_var -= 3;
-+	  growth = 3;
-+	  fixP = fix_new (fp, 0, 3, lsym, 3, TRUE, BFD_RELOC_XTENSA_SLOT0_OP);
-+	  trampP->fixP = fixP;
-+        }
-+    }
-+  return growth;
-+}
-+
-+
-+static int
-+add_jump_to_trampoline (struct trampoline_frag *trampP, fragS *origfrag)
-+{
-+  fragS *tramp = trampP->fragP;
-+  fixS *fixP;
-+  int offset = tramp->fr_fix; /* Where to assemble the j insn.  */
-+  TInsn insn;
-+  symbolS *lsym;
-+  symbolS *tsym;
-+  int toffset;
-+  xtensa_format fmt;
-+  xtensa_isa isa = xtensa_default_isa;
-+  int growth = 0;
-+
-+  lsym = tramp->fr_symbol;
-+  /* Assemble a jump to the target label in the trampoline frag.  */
-+  tsym = origfrag->tc_frag_data.slot_symbols[0];
-+  toffset = origfrag-> tc_frag_data.slot_offsets[0];
-+  tinsn_init (&insn);
-+  insn.insn_type = ITYPE_INSN;
-+  insn.opcode = xtensa_j_opcode;
-+  insn.ntok = 1;
-+  set_expr_symbol_offset (&insn.tok[0], tsym, toffset);
-+  fmt = xg_get_single_format (xtensa_j_opcode);
-+  tinsn_to_slotbuf (fmt, 0, &insn, trampoline_slotbuf);
-+  xtensa_format_set_slot (isa, fmt, 0, trampoline_buf, trampoline_slotbuf);
-+  xtensa_insnbuf_to_chars (isa, trampoline_buf, (unsigned char *)tramp->fr_literal + offset, 3);
-+  tramp->fr_fix += 3;
-+  tramp->fr_var -= 3;
-+  growth = 3;
-+  /* add a fix-up for the trampoline jump.  */
-+  fixP = fix_new (tramp, tramp->fr_fix - 3, 3, tsym, toffset, TRUE, BFD_RELOC_XTENSA_SLOT0_OP);
-+  /* Modify the jump at the start of this trampoline to point past the newly-added jump.  */
-+  fixP = trampP->fixP;
-+  if (fixP)
-+    fixP->fx_offset += 3;
-+  /* Modify the original j to point here.  */
-+  origfrag->tc_frag_data.slot_symbols[0] = lsym;
-+  origfrag->tc_frag_data.slot_offsets[0] = tramp->fr_fix - 3;
-+  /* If trampoline is full, remove it from the list.  */
-+  check_and_update_trampolines ();
-+
-+  return growth;
-+}
-+
-+
- static long
- relax_frag_immed (segT segP,
- 		  fragS *fragP,
-@@ -9284,6 +9804,37 @@ relax_frag_immed (segT segP,
-   if (negatable_branch && istack.ninsn > 1)
-     update_next_frag_state (fragP);
- 
-+  /* If last insn is a jump, and it cannot reach its target, try to find a trampoline.  */
-+  if (istack.ninsn > 2 &&
-+      istack.insn[istack.ninsn - 1].insn_type == ITYPE_LABEL &&
-+      istack.insn[istack.ninsn - 2].insn_type == ITYPE_INSN &&
-+      istack.insn[istack.ninsn - 2].opcode == xtensa_j_opcode)
-+    {
-+      TInsn *jinsn = &istack.insn[istack.ninsn - 2];
-+
-+      if (!xg_symbolic_immeds_fit (jinsn, segP, fragP, fragP->fr_offset, total_text_diff))
-+	{
-+	  struct trampoline_frag *tf = get_best_trampoline (jinsn, fragP);
-+
-+	  if (tf)
-+	    {
-+	      this_text_diff += init_trampoline_frag (tf);
-+	      this_text_diff += add_jump_to_trampoline (tf, fragP);
-+	    }
-+	  else
-+	    {
-+	      /* If target symbol is undefined, assume it will reach once linked.  */
-+	      expressionS *exp = &istack.insn[istack.ninsn - 2].tok[0];
-+
-+	      if (exp->X_op == O_symbol && S_IS_DEFINED (exp->X_add_symbol))
-+		{
-+		  as_bad_where (fragP->fr_file, fragP->fr_line,
-+		    _("jump target out of range; no usable trampoline found"));
-+		}
-+	    }
-+	}
-+    }
-+
-   return this_text_diff;
- }
- 
-@@ -9404,6 +9955,9 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT sec, fragS *fragp)
-       else
- 	as_bad (_("invalid relaxation fragment result"));
-       break;
-+
-+    case RELAX_TRAMPOLINE:
-+      break;
-     }
- 
-   fragp->fr_var = 0;
-diff --git a/gas/config/tc-xtensa.h b/gas/config/tc-xtensa.h
-index 0bf1240..4672bc6 100644
---- a/gas/config/tc-xtensa.h
-+++ b/gas/config/tc-xtensa.h
-@@ -180,6 +180,11 @@ enum xtensa_relax_statesE
-      prevent the linker from changing the size of any frag between the
-      section start and the org frag.  */
- 
-+  RELAX_TRAMPOLINE,
-+  /* Every few thousand frags, we insert one of these, just in case we may
-+     need some space for a trampoline (jump to a jump) because the function
-+     has gotten too big. If not needed, it disappears. */
-+
-   RELAX_NONE
- };
- 
-diff --git a/gas/frags.c b/gas/frags.c
-index 5f68480..e14099d 100644
---- a/gas/frags.c
-+++ b/gas/frags.c
-@@ -24,6 +24,20 @@
- 
- extern fragS zero_address_frag;
- extern fragS predefined_address_frag;
-+
-+static int totalfrags;
-+
-+int
-+get_frag_count (void)
-+{
-+  return totalfrags;
-+}
-+
-+void
-+clear_frag_count (void)
-+{
-+  totalfrags = 0;
-+}
- 
- /* Initialization for frag routines.  */
- 
-@@ -70,6 +84,7 @@ frag_alloc (struct obstack *ob)
-   ptr = (fragS *) obstack_alloc (ob, SIZEOF_STRUCT_FRAG);
-   obstack_alignment_mask (ob) = oalign;
-   memset (ptr, 0, SIZEOF_STRUCT_FRAG);
-+  totalfrags++;
-   return ptr;
- }
- 
-diff --git a/gas/frags.h b/gas/frags.h
-index 319898f..2f9e1b5 100644
---- a/gas/frags.h
-+++ b/gas/frags.h
-@@ -155,4 +155,7 @@ char *frag_var (relax_stateT type,
- 
- bfd_boolean frag_offset_fixed_p (const fragS *, const fragS *, offsetT *);
- 
-+int get_frag_count (void);
-+void clear_frag_count (void);
-+
- #endif /* FRAGS_H */
-diff --git a/gas/testsuite/gas/xtensa/all.exp b/gas/testsuite/gas/xtensa/all.exp
-index 2b2c294..3683b78 100644
---- a/gas/testsuite/gas/xtensa/all.exp
-+++ b/gas/testsuite/gas/xtensa/all.exp
-@@ -98,6 +98,7 @@ if [istarget xtensa*-*-*] then {
-     run_dump_test "pcrel"
-     run_dump_test "weak-call"
-     run_dump_test "jlong"
-+    run_dump_test "trampoline"
- }
- 
- if [info exists errorInfo] then {
-diff --git a/gas/testsuite/gas/xtensa/trampoline.d b/gas/testsuite/gas/xtensa/trampoline.d
-new file mode 100644
-index 0000000..b4f65dc
---- /dev/null
-+++ b/gas/testsuite/gas/xtensa/trampoline.d
-@@ -0,0 +1,26 @@
-+#as:
-+#objdump: -d
-+#name: trampolines relaxation
-+
-+.*: +file format .*xtensa.*
-+#...
-+.*0:.*j.0x1194c
-+.*3:.*j.0x1194f
-+.*6:.*j.0x11952
-+.*9:.*j.0x1d4e4
-+#...
-+.*11949:.*j.0x11955
-+.*1194c:.*j.0x24a0e
-+.*1194f:.*j.0x24a0e
-+.*11952:.*j.0x24a11
-+#...
-+.*1d4e1:.*j.0x1d4e7
-+.*1d4e4:.*j.0x33462
-+#...
-+.*24a0e:.*j.0x24a0e
-+.*24a11:.*j.0x24a11
-+#...
-+.*3345f:.*ret
-+.*33462:.*j.0x49407
-+#...
-+.*49407:.*j.0x49407
-diff --git a/gas/testsuite/gas/xtensa/trampoline.s b/gas/testsuite/gas/xtensa/trampoline.s
-new file mode 100644
-index 0000000..259a3bb
---- /dev/null
-+++ b/gas/testsuite/gas/xtensa/trampoline.s
-@@ -0,0 +1,21 @@
-+	.text
-+	j	1f
-+	j	1f
-+	j	2f
-+	j	3f
-+	.rep	25000
-+99:
-+	and	a2, a2, a3
-+	bne	a2, a3, 99b
-+	.endr
-+1:
-+	j	1b
-+2:
-+	j	2b
-+
-+	.rep	25000
-+	and	a2, a2, a3
-+	_ret
-+	.endr
-+3:
-+	j	3b
--- 
-1.8.1.4
-

+ 0 - 51
package/binutils/2.23.2/901-xtensa-gas-first-frag-alignment.patch

@@ -1,51 +0,0 @@
-From a35d5e823fdfe8a6e7e05ca8e3fb8bb5697335b1 Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Tue, 15 Apr 2014 19:12:46 +0400
-Subject: [PATCH] Fix alignment for the first section frag on xtensa
-
-Linking object files produced by partial linking with link-time
-relaxation enabled sometimes fails with the following error message:
-
-dangerous relocation: call8: misaligned call target: (.text.unlikely+0x63)
-
-This happens because no basic block with an XTENSA_PROP_ALIGN flag in the
-property table is generated for the first basic block, even if the
-.align directive is present.
-It was believed that the first frag alignment could be derived from the
-section alignment, but this was not implemented for the partial linking
-case: after partial linking first frag of a section may become not
-first, but no additional alignment frag is inserted before it.
-Basic block for such frag may be merged with previous basic block into
-extended basic block during relaxation pass losing its alignment
-restrictions.
-
-Fix this by always recording alignment for the first section frag.
-
-2014-04-22  Max Filippov  <jcmvbkbc@gmail.com>
-
-gas/
-    * config/tc-xtensa.c (xtensa_handle_align): record alignment for the
-    first section frag.
-
----
-Backported from: a35d5e823fdfe8a6e7e05ca8e3fb8bb5697335b1
-Changes to Changelog files and tests are dropped.
-
- gas/config/tc-xtensa.c                      | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
-index ea23c96..58ace38 100644
---- a/gas/config/tc-xtensa.c
-+++ b/gas/config/tc-xtensa.c
-@@ -5609,7 +5609,6 @@ xtensa_handle_align (fragS *fragP)
-       && ! fragP->tc_frag_data.is_literal
-       && (fragP->fr_type == rs_align
- 	  || fragP->fr_type == rs_align_code)
--      && fragP->fr_address + fragP->fr_fix > 0
-       && fragP->fr_offset > 0
-       && now_seg != bss_section)
-     {
--- 
-1.8.1.4
-

+ 0 - 133
package/binutils/2.23.2/902-xtensa-gas-ld-diff-relocation-signed.patch

@@ -1,133 +0,0 @@
-From 6a17eba5358549d0d6d195bb22b34cdbc068def2 Mon Sep 17 00:00:00 2001
-From: Volodymyr Arbatov <arbatov@cadence.com>
-Date: Mon, 6 May 2013 09:43:21 -0800
-Subject: [PATCH] Use signed data type for R_XTENSA_DIFF* relocation offsets.
-
-R_XTENSA_DIFF relocation offsets are in fact signed. Treat them as such.
-Add testcase that examines ld behaviour on R_XTENSA_DIFF relocation
-changing sign during relaxation.
-
-2014-05-02  Volodymyr Arbatov  <arbatov@cadence.com>
-	    David Weatherford  <weath@cadence.com>
-	    Max Filippov  <jcmvbkbc@gmail.com>
-
-bfd/
-  * elf32-xtensa.c (relax_section): treat R_XTENSA_DIFF* relocations as
-  signed.
-
-gas/
-  * config/tc-xtensa.c (md_apply_fix): mark BFD_RELOC_XTENSA_DIFF*
-  fixups as signed.
----
-Backported from: 1058c7532d0b012ac329219264ddad59049fb6e6
-Changes to Changelog files and tests are dropped.
-
- bfd/elf32-xtensa.c                       | 32 ++++++++++++-----------
- gas/config/tc-xtensa.c                   |  3 +++
- 2 files changed, 20 insertions(+), 15 deletions(-)
-
-diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
-index edb04b4..8818d67 100644
---- a/bfd/elf32-xtensa.c
-+++ b/bfd/elf32-xtensa.c
-@@ -222,11 +222,11 @@ static reloc_howto_type elf_howto_table[] =
- 	 FALSE, 0, 0, FALSE),
- 
-   /* Relocations for supporting difference of symbols.  */
--  HOWTO (R_XTENSA_DIFF8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield,
-+  HOWTO (R_XTENSA_DIFF8, 0, 0, 8, FALSE, 0, complain_overflow_signed,
- 	 bfd_elf_xtensa_reloc, "R_XTENSA_DIFF8", FALSE, 0, 0xff, FALSE),
--  HOWTO (R_XTENSA_DIFF16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,
-+  HOWTO (R_XTENSA_DIFF16, 0, 1, 16, FALSE, 0, complain_overflow_signed,
- 	 bfd_elf_xtensa_reloc, "R_XTENSA_DIFF16", FALSE, 0, 0xffff, FALSE),
--  HOWTO (R_XTENSA_DIFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,
-+  HOWTO (R_XTENSA_DIFF32, 0, 2, 32, FALSE, 0, complain_overflow_signed,
- 	 bfd_elf_xtensa_reloc, "R_XTENSA_DIFF32", FALSE, 0, 0xffffffff, FALSE),
- 
-   /* General immediate operand relocations.  */
-@@ -9013,7 +9013,8 @@ relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info)
- 		  || r_type == R_XTENSA_DIFF16
- 		  || r_type == R_XTENSA_DIFF32)
- 		{
--		  bfd_vma diff_value = 0, new_end_offset, diff_mask = 0;
-+		  bfd_signed_vma diff_value = 0;
-+		  bfd_vma new_end_offset, diff_mask = 0;
- 
- 		  if (bfd_get_section_limit (abfd, sec) < old_source_offset)
- 		    {
-@@ -9027,15 +9028,15 @@ relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info)
- 		    {
- 		    case R_XTENSA_DIFF8:
- 		      diff_value =
--			bfd_get_8 (abfd, &contents[old_source_offset]);
-+			bfd_get_signed_8 (abfd, &contents[old_source_offset]);
- 		      break;
- 		    case R_XTENSA_DIFF16:
- 		      diff_value =
--			bfd_get_16 (abfd, &contents[old_source_offset]);
-+			bfd_get_signed_16 (abfd, &contents[old_source_offset]);
- 		      break;
- 		    case R_XTENSA_DIFF32:
- 		      diff_value =
--			bfd_get_32 (abfd, &contents[old_source_offset]);
-+			bfd_get_signed_32 (abfd, &contents[old_source_offset]);
- 		      break;
- 		    }
- 
-@@ -9047,24 +9048,25 @@ relax_section (bfd *abfd, asection *sec, struct bfd_link_info *link_info)
- 		  switch (r_type)
- 		    {
- 		    case R_XTENSA_DIFF8:
--		      diff_mask = 0xff;
--		      bfd_put_8 (abfd, diff_value,
-+		      diff_mask = 0x7f;
-+		      bfd_put_signed_8 (abfd, diff_value,
- 				 &contents[old_source_offset]);
- 		      break;
- 		    case R_XTENSA_DIFF16:
--		      diff_mask = 0xffff;
--		      bfd_put_16 (abfd, diff_value,
-+		      diff_mask = 0x7fff;
-+		      bfd_put_signed_16 (abfd, diff_value,
- 				  &contents[old_source_offset]);
- 		      break;
- 		    case R_XTENSA_DIFF32:
--		      diff_mask = 0xffffffff;
--		      bfd_put_32 (abfd, diff_value,
-+		      diff_mask = 0x7fffffff;
-+		      bfd_put_signed_32 (abfd, diff_value,
- 				  &contents[old_source_offset]);
- 		      break;
- 		    }
- 
--		  /* Check for overflow.  */
--		  if ((diff_value & ~diff_mask) != 0)
-+		  /* Check for overflow. Sign bits must be all zeroes or all ones */
-+		  if ((diff_value & ~diff_mask) != 0 &&
-+		      (diff_value & ~diff_mask) != (-1 & ~diff_mask))
- 		    {
- 		      (*link_info->callbacks->reloc_dangerous)
- 			(link_info, _("overflow after relaxation"),
-diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
-index 58ace38..7547c0a0 100644
---- a/gas/config/tc-xtensa.c
-+++ b/gas/config/tc-xtensa.c
-@@ -5867,12 +5867,15 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
- 	    {
- 	    case BFD_RELOC_8:
- 	      fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF8;
-+	      fixP->fx_signed = 1;
- 	      break;
- 	    case BFD_RELOC_16:
- 	      fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF16;
-+	      fixP->fx_signed = 1;
- 	      break;
- 	    case BFD_RELOC_32:
- 	      fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF32;
-+	      fixP->fx_signed = 1;
- 	      break;
- 	    default:
- 	      break;
--- 
-1.8.1.4
-

+ 0 - 47
package/binutils/2.23.2/903-xtensa-fix-ld-segfault-when-linking-linux-modules.patch

@@ -1,47 +0,0 @@
-From e7d17e71cdc10a2e81e454ce3b9637f1b2a587f2 Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Thu, 10 Jul 2014 01:47:33 +0400
-Subject: [PATCH] Fix xtensa ld segfault when linking linux modules
-
-is_inconsistent_linkonce_section makes an assumption that section name
-that starts with ".gnu.linkonce.prop." has one more dot in its suffix.
-However gas generates such section name by insertion of "prop." right
-after ".gnu.linkonce." part of the name of the original section. So, for
-section named ".gnu.linkonce.this_module" corresponding property section
-name does not satisfy the assumption. Such section names are common in
-linux modules. This bug was exposed by the patch "a35d5e8 Fix alignment
-for the first section frag on xtensa", that makes gas produce property
-section for each section that has ".align" directive in it.
-
-Use suffix that immediately follows ".gnu.linkonce.prop." when there are
-no more dots following it.
-
-2014-07-10  Max Filippov  <jcmvbkbc@gmail.com>
-
-ld/
-    * emultempl/xtensaelf.em (is_inconsistent_linkonce_section):
-    correctly handle missing dot in section name after
-    ".gnu.linkonce.prop.".
----
-Backported from: e7d17e71cdc10a2e81e454ce3b9637f1b2a587f2
-Changes to ld/ChangeLog file are dropped.
-
- ld/emultempl/xtensaelf.em | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ld/emultempl/xtensaelf.em b/ld/emultempl/xtensaelf.em
-index 151eea4..948d18d 100644
---- a/ld/emultempl/xtensaelf.em
-+++ b/ld/emultempl/xtensaelf.em
-@@ -1310,7 +1310,7 @@ is_inconsistent_linkonce_section (asection *sec)
-      for Tensilica's XCC compiler.  */
-   name = sec_name + linkonce_len;
-   if (CONST_STRNEQ (name, "prop."))
--    name = strchr (name + 5, '.') + 1;
-+    name = strchr (name + 5, '.') ? strchr (name + 5, '.') + 1 : name + 5;
-   else if (name[1] == '.'
- 	   && (name[0] == 'p' || name[0] == 'e' || name[0] == 'h'))
-     name += 2;
--- 
-1.8.1.4
-

+ 0 - 79
package/binutils/2.23.2/904-Fix-call8-call-target-out-of-range-xtensa-ld-relaxation.patch

@@ -1,79 +0,0 @@
-From 7fc39194f8fb48914c995f8ec3826d50086f1ec0 Mon Sep 17 00:00:00 2001
-From: Sterling Augustine <augustine.sterling@gmail.com>
-Date: Tue, 25 Jan 2011 13:59:13 -0800
-Subject: [PATCH] Fix 'call8: call target out of range' xtensa ld relaxation
- bug
-
-During link-time relaxation distance between cross-section call site and
-its target may grow, producing 'call target out of range' error for
-relaxed calls. Be more conservative when calculating whether or not a
-callx can be converted to a straight call.
-
-2014-09-23  Sterling Augustine  <augustine.sterling@gmail.com>
-
-bfd/
-    * elf32-xtensa.c (is_resolvable_asm_expansion): for cross-section
-    call relaxation use furthermost addresses where call source and
-    destination can be to check whether it's in the range of a direct
-    call.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
- bfd/elf32-xtensa.c | 41 +++++++++++++++++++++++++++++++++++++----
- 1 file changed, 37 insertions(+), 4 deletions(-)
-
-diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
-index 09862e3..e32496a 100644
---- a/bfd/elf32-xtensa.c
-+++ b/bfd/elf32-xtensa.c
-@@ -7124,10 +7124,43 @@ is_resolvable_asm_expansion (bfd *abfd,
- 	  || is_reloc_sym_weak (abfd, irel)))
-     return FALSE;
- 
--  self_address = (sec->output_section->vma
--		  + sec->output_offset + irel->r_offset + 3);
--  dest_address = (target_sec->output_section->vma
--		  + target_sec->output_offset + target_offset);
-+  if (target_sec->output_section != sec->output_section)
-+    {
-+      /* If the two sections are sufficiently far away that relaxation
-+	 might take the call out of range, we can't simplify.  For
-+	 example, a positive displacement call into another memory
-+	 could get moved to a lower address due to literal removal,
-+	 but the destination won't move, and so the displacment might
-+	 get larger.
-+
-+	 If the displacement is negative, assume the destination could
-+	 move as far back as the start of the output section.  The
-+	 self_address will be at least as far into the output section
-+	 as it is prior to relaxation.
-+
-+	 If the displacement is postive, assume the destination will be in
-+	 it's pre-relaxed location (because relaxation only makes sections
-+	 smaller).  The self_address could go all the way to the beginning
-+	 of the output section.  */
-+
-+      dest_address = target_sec->output_section->vma;
-+      self_address = sec->output_section->vma;
-+
-+      if (sec->output_section->vma > target_sec->output_section->vma)
-+	self_address += sec->output_offset + irel->r_offset + 3;
-+      else
-+	dest_address += bfd_get_section_limit (abfd, target_sec->output_section);
-+      /* Call targets should be four-byte aligned.  */
-+      dest_address = (dest_address + 3) & ~3;
-+    }
-+  else
-+    {
-+
-+      self_address = (sec->output_section->vma
-+		      + sec->output_offset + irel->r_offset + 3);
-+      dest_address = (target_sec->output_section->vma
-+		      + target_sec->output_offset + target_offset);
-+    }
-       
-   *is_reachable_p = pcrel_reloc_fits (direct_call_opcode, 0,
- 				      self_address, dest_address);
--- 
-1.8.1.4
-

+ 0 - 90
package/binutils/2.23.2/905-Fix-trampolines-search-code-for-conditional-branches.patch

@@ -1,90 +0,0 @@
-From 415480d6471e67aef97c0241d451ef2423a1da9d Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Tue, 25 Nov 2014 21:33:21 +0300
-Subject: [PATCH] Fix trampolines search code for conditional branches
-
-For conditional branches that need more than one trampoline to reach its
-target assembler couldn't always find suitable trampoline because
-post-loop condition check was placed inside the loop, resulting in
-premature loop termination. Move check outside the loop.
-
-This fixes the following build errors seen when assembling huge files
-produced by gcc:
-    Error: jump target out of range; no usable trampoline found
-    Error: operand 1 of 'j' has out of range value '307307'
-
-2014-11-25  Max Filippov  <jcmvbkbc@gmail.com>
-
-gas/
-	* config/tc-xtensa.c (search_trampolines): Move post-loop
-	condition check outside the search loop.
-
-gas/testsuite/
-	* gas/xtensa/trampoline.d: Add expected output for branches.
-	* gas/xtensa/trampoline.s: Add test case for branches.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
-Backported from: d92b6eece424f0ad35d96fdd85bf207295e8c4c3
-Changes to ChangeLogs are dropped.
-
- gas/config/tc-xtensa.c                | 8 ++++----
- gas/testsuite/gas/xtensa/trampoline.d | 9 +++++++++
- gas/testsuite/gas/xtensa/trampoline.s | 7 +++++++
- 3 files changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
-index d11b0c7..f23ccf8 100644
---- a/gas/config/tc-xtensa.c
-+++ b/gas/config/tc-xtensa.c
-@@ -9514,11 +9514,11 @@ search_trampolines (TInsn *tinsn, fragS *fragP, bfd_boolean unreachable_only)
- 	      if (next_addr == 0 || addr - next_addr > J_RANGE)
- 		break;
- 	    }
--	  if (abs (addr - this_addr) < J_RANGE)
--	    return tf;
--
--	  return NULL;
- 	}
-+      if (abs (addr - this_addr) < J_RANGE)
-+	return tf;
-+
-+      return NULL;
-     }
-   for ( ; tf; tf = tf->next)
-     {
-diff --git a/gas/testsuite/gas/xtensa/trampoline.d b/gas/testsuite/gas/xtensa/trampoline.d
-index b4f65dc..5ae32a6 100644
---- a/gas/testsuite/gas/xtensa/trampoline.d
-+++ b/gas/testsuite/gas/xtensa/trampoline.d
-@@ -24,3 +24,12 @@
- .*33462:.*j.0x49407
- #...
- .*49407:.*j.0x49407
-+.*4940a:.*beqz.n.a2,.0x4940f
-+.*4940c:.*j.0x693d1
-+#...
-+.*693d1:.*j.0x7ddd4
-+#...
-+.*7ddd4:.*j.0x927f5
-+#...
-+.*927f5:.*j.0x927f5
-+#...
-diff --git a/gas/testsuite/gas/xtensa/trampoline.s b/gas/testsuite/gas/xtensa/trampoline.s
-index 259a3bb..4465786 100644
---- a/gas/testsuite/gas/xtensa/trampoline.s
-+++ b/gas/testsuite/gas/xtensa/trampoline.s
-@@ -19,3 +19,10 @@
- 	.endr
- 3:
- 	j	3b
-+	bnez	a2, 4f
-+	.rep	50000
-+	and	a2, a2, a3
-+	_ret
-+	.endr
-+4:
-+	j	4b
--- 
-1.8.1.4
-

+ 0 - 57
package/binutils/2.23.2/911-xtensa-fix-localized-symbol-refcounting-with-gc-sect.patch

@@ -1,57 +0,0 @@
-From 8ec76b16f62d1bf386fb2c39af5f66c3afddc5cb Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Thu, 14 May 2015 05:22:55 +0300
-Subject: [PATCH] xtensa: fix localized symbol refcounting with --gc-sections
-
-elf_xtensa_gc_sweep_hook doesn't correctly unreference symbols that were
-made local, that results in link failure with the following message:
-
-  BFD (GNU Binutils) 2.24 internal error, aborting at elf32-xtensa.c line
-  3372 in elf_xtensa_finish_dynamic_sections
-
-elf_xtensa_gc_sweep_hook determines symbol reference type (PLT or GOT) by
-relocation type. Relocation types are not changed when symbol becomes
-local, but its PLT references are added to GOT references and
-plt.refcount is set to 0. Such symbol cannot be unreferences in the
-elf_xtensa_gc_sweep_hook and its extra references make calculated GOT
-relocations section size not match number of GOT relocations.
-
-Fix it by treating PLT reference as GOT reference when plt.refcount is
-not positive.
-
-2015-05-14  Max Filippov  <jcmvbkbc@gmail.com>
-bfd/
-	* elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Treat PLT reference
-	as GOT reference when plt.refcount is not positive.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
-Backported from: e6c9a083ec5ae7a45bd71682b26aae1939849388
-Changes to ChangeLog are dropped.
-
- bfd/elf32-xtensa.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
-index 53af1c6..2523670 100644
---- a/bfd/elf32-xtensa.c
-+++ b/bfd/elf32-xtensa.c
-@@ -1360,10 +1360,14 @@ elf_xtensa_gc_sweep_hook (bfd *abfd,
- 	{
- 	  if (is_plt)
- 	    {
-+	      /* If the symbol has been localized its plt.refcount got moved
-+	         to got.refcount.  Handle it as GOT.  */
- 	      if (h->plt.refcount > 0)
- 		h->plt.refcount--;
-+	      else
-+		is_got = TRUE;
- 	    }
--	  else if (is_got)
-+	  if (is_got)
- 	    {
- 	      if (h->got.refcount > 0)
- 		h->got.refcount--;
--- 
-1.8.1.4
-

+ 0 - 56
package/binutils/2.23.2/912-xtensa-fix-gas-segfault-with-text-section-literals.patch

@@ -1,56 +0,0 @@
-From 2d0522e76e4afeeb2e104e0a4332d94fa0d2fbf6 Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Sun, 17 May 2015 06:46:15 +0300
-Subject: [PATCH] xtensa: fix gas segfault with --text-section-literals
-
-When --text-section-literals is used and code in the .init or .fini
-emits literal in the absence of .literal_position, xtensa_move_literals
-segfaults.
-
-Check that search_frag is non-NULL in the xtensa_move_literals and
-report error otherwise.
-
-2015-05-26  Max Filippov  <jcmvbkbc@gmail.com>
-gas/
-	* config/tc-xtensa.c (xtensa_move_literals): Check that
-	search_frag is non-NULL. Report error if literal frag is not
-	found.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
-Backported from: 4de0562a4c69fef4952aa7e19d7bda359f02e8b4
-Changes to ChangeLog are dropped.
-
- gas/config/tc-xtensa.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
-index 31c0b6b..18307c1 100644
---- a/gas/config/tc-xtensa.c
-+++ b/gas/config/tc-xtensa.c
-@@ -10808,13 +10808,21 @@ xtensa_move_literals (void)
-       frchain_to = NULL;
-       frag_splice = &(frchain_from->frch_root);
- 
--      while (!search_frag->tc_frag_data.literal_frag)
-+      while (search_frag && !search_frag->tc_frag_data.literal_frag)
- 	{
- 	  gas_assert (search_frag->fr_fix == 0
- 		  || search_frag->fr_type == rs_align);
- 	  search_frag = search_frag->fr_next;
- 	}
- 
-+      if (!search_frag)
-+	{
-+	  search_frag = frchain_from->frch_root;
-+	  as_bad_where (search_frag->fr_file, search_frag->fr_line,
-+			_("literal pool location required for text-section-literals; specify with .literal_position"));
-+	  continue;
-+	}
-+
-       gas_assert (search_frag->tc_frag_data.literal_frag->fr_subtype
- 	      == RELAX_LITERAL_POOL_BEGIN);
-       xtensa_switch_section_emit_state (&state, segment->seg, 0);
--- 
-1.8.1.4
-

+ 0 - 47
package/binutils/2.23.2/914-xtensa-fix-signedness-of-gas-relocations.patch

@@ -1,47 +0,0 @@
-From 6c7c5c477ef9ccf2d2548cf2ac3cec9bd3c9c5b6 Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Tue, 2 Feb 2016 17:11:38 +0300
-Subject: [PATCH] xtensa: fix signedness of gas relocations
-
-Change 1058c7532d0b "Use signed data type for R_XTENSA_DIFF* relocation
-offsets." changed signedness of BFD_RELOC_XTENSA_DIFF* relocations
-substituted for BFD_RELOC_*. This made it impossible to encode arbitrary
-8-, 16- and 32-bit values, which broke e.g. debug info encoding by .loc
-directive. Revert this part and add test.
-
-gas/
-2016-02-03  Max Filippov  <jcmvbkbc@gmail.com>
-	* config/tc-xtensa.c (md_apply_fix): Mark BFD_RELOC_XTENSA_DIFF*
-	substitutions for BFD_RELOC_* as unsigned.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
- gas/config/tc-xtensa.c           |  6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
-index a119871..36a06cc 100644
---- a/gas/config/tc-xtensa.c
-+++ b/gas/config/tc-xtensa.c
-@@ -5961,15 +5961,15 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
- 	    {
- 	    case BFD_RELOC_8:
- 	      fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF8;
--	      fixP->fx_signed = 1;
-+	      fixP->fx_signed = 0;
- 	      break;
- 	    case BFD_RELOC_16:
- 	      fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF16;
--	      fixP->fx_signed = 1;
-+	      fixP->fx_signed = 0;
- 	      break;
- 	    case BFD_RELOC_32:
- 	      fixP->fx_r_type = BFD_RELOC_XTENSA_DIFF32;
--	      fixP->fx_signed = 1;
-+	      fixP->fx_signed = 0;
- 	      break;
- 	    default:
- 	      break;
--- 
-2.1.4
-

+ 0 - 70
package/binutils/2.23.2/915-xtensa-fix-.init-.fini-literals-moving.patch

@@ -1,70 +0,0 @@
-From 7db2accc3fdea0aaa0c3a76a413d8e8030e022c3 Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc@gmail.com>
-Date: Tue, 16 Feb 2016 02:23:28 +0300
-Subject: [PATCH] xtensa: fix .init/.fini literals moving
-
-Despite the documentation and the comment in xtensa_move_literals, in
-the presence of --text-section-literals and --auto-litpools literals are
-moved from the separate literal sections into .init and .fini, because
-the check in the xtensa_move_literals is incorrect.
-
-This moving was broken with introduction of auto litpools: some literals
-now may be lost. This happens because literal frags emitted from .init
-and .fini are not closed when new .literal_position marks new literal
-pool. Then frag_align(2, 0, 0) changes type of the last literal frag to
-rs_align. rs_align frags are skipped in the xtensa_move_literals. As a
-result fixups against such literals are not moved out of .init.literal/
-.fini.literal sections producing the following assembler error:
-
-  test.S: Warning: fixes not all moved from .init.literal
-  test.S: Internal error!
-
-Fix check for .init.literal/.fini.literal in the xtensa_move_literals
-and don't let it move literals from there in the presence of
---text-section-literals or --auto-litpools.
-
-2016-02-17  Max Filippov  <jcmvbkbc@gmail.com>
-gas/
-	* config/tc-xtensa.c (xtensa_move_literals): Fix check for
-	.init.literal/.fini.literal section name.
-
-Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
----
-Backported from: 4111950f363221c4641dc2f33bea61cc94f34906
-
- gas/config/tc-xtensa.c                        | 12 ++++++++++--
- 1 file changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
-index 36a06cc..5773634 100644
---- a/gas/config/tc-xtensa.c
-+++ b/gas/config/tc-xtensa.c
-@@ -10625,5 +10625,9 @@ xtensa_move_literals (void)
-   fixS *fix, *next_fix, **fix_splice;
-   sym_list *lit;
-+  const char *init_name = INIT_SECTION_NAME;
-+  const char *fini_name = FINI_SECTION_NAME;
-+  int init_name_len = strlen(init_name);
-+  int fini_name_len = strlen(fini_name);
- 
-   mark_literal_frags (literal_head->next);
- 
-@@ -10632,9 +10636,13 @@ xtensa_move_literals (void)
- 
-   for (segment = literal_head->next; segment; segment = segment->next)
-     {
-+      const char *seg_name = segment_name (segment->seg);
-+
-       /* Keep the literals for .init and .fini in separate sections.  */
--      if (!strcmp (segment_name (segment->seg), INIT_SECTION_NAME)
--	  || !strcmp (segment_name (segment->seg), FINI_SECTION_NAME))
-+      if ((!memcmp (seg_name, init_name, init_name_len) &&
-+	   !strcmp (seg_name + init_name_len, ".literal")) ||
-+	  (!memcmp (seg_name, fini_name, fini_name_len) &&
-+	   !strcmp (seg_name + fini_name_len, ".literal")))
- 	continue;
- 
-       frchain_from = seg_info (segment->seg)->frchainP;
--- 
-2.1.4
-

+ 1 - 11
package/binutils/Config.in.host

@@ -7,15 +7,6 @@ choice
 	help
 	  Select the version of binutils you wish to use.
 
-	config BR2_BINUTILS_VERSION_2_23_X
-		depends on !BR2_aarch64 && !BR2_microblaze && \
-			   !BR2_powerpc64le && !BR2_nios2
-		# Unsupported for MIPS R6
-		depends on !BR2_mips_32r6 && !BR2_mips_64r6
-		# Unsupported ARM cores
-		depends on !BR2_cortex_a17
-		bool "binutils 2.23.2"
-
 	config BR2_BINUTILS_VERSION_2_24_X
 		# supported, but broken on Nios-II and powerpc64le
 		depends on !BR2_nios2 && !BR2_powerpc64le
@@ -35,8 +26,7 @@ endchoice
 
 config BR2_BINUTILS_VERSION
 	string
-	default "arc-2015.12"	if BR2_arc
-	default "2.23.2"	if BR2_BINUTILS_VERSION_2_23_X
+	default "arc-2016.03"	if BR2_arc
 	default "2.24"		if BR2_BINUTILS_VERSION_2_24_X
 	default "2.25.1"	if BR2_BINUTILS_VERSION_2_25_X
 	default "2.26"		if BR2_BINUTILS_VERSION_2_26_X

+ 0 - 236
package/binutils/arc-2015.12/0001-PR-other-56780.patch

@@ -1,236 +0,0 @@
-From 7827cdf59a1894abe18aa20043a63c8c875c3fce Mon Sep 17 00:00:00 2001
-From: DJ Delorie <dj@redhat.com>
-Date: Sat, 1 Jun 2013 01:01:44 +0000
-Subject: [PATCH] PR other/56780 merge from gcc
-
-binutils-gdb upstream a4818a052efb4cea976a03a2f7cb0b38b23d12d0
-
-libiberty: fix --enable-install-libiberty flag [PR 56780]
-
-Commit 199570 fixed the --disable-install-libiberty behavior, but it also
-added a bug where the enable path never works because the initial clear
-of target_header_dir wasn't deleted.  So we end up initializing properly
-at the top only to reset it at the end all the time.
-
-git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206367 138bc75d-0d04-0410-961f-82ee72b054a4
-
-[Romain
-  rename patch name
-  squash the two upstream commits
-  Remove the ChangeLog]
-Signed-off-by: Romain Naour <romain.naour@openwide.fr>
----
- libiberty/Makefile.in  | 24 ++++++++++-----------
- libiberty/configure    | 57 +++++++++++++++++++++++++++-----------------------
- libiberty/configure.ac | 47 ++++++++++++++++++++++-------------------
- 3 files changed, 68 insertions(+), 60 deletions(-)
-
-diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
-index 0a5da31..4f40c72 100644
---- a/libiberty/Makefile.in
-+++ b/libiberty/Makefile.in
-@@ -354,19 +354,19 @@ install-strip: install
- # since it will be passed the multilib flags.
- MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
- install_to_libdir: all
--	${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR)
--	$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n
--	( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n )
--	mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)
- 	if test -n "${target_header_dir}"; then \
--	  case "${target_header_dir}" in \
--	    /*)    thd=${target_header_dir};; \
--	    *)     thd=${includedir}/${target_header_dir};; \
--	  esac; \
--	  ${mkinstalldirs} $(DESTDIR)$${thd}; \
--	  for h in ${INSTALLED_HEADERS}; do \
--	    ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
--	  done; \
-+		${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
-+		$(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
-+		( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
-+		mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
-+		case "${target_header_dir}" in \
-+		  /*)    thd=${target_header_dir};; \
-+		  *)     thd=${includedir}/${target_header_dir};; \
-+		esac; \
-+		${mkinstalldirs} $(DESTDIR)$${thd}; \
-+		for h in ${INSTALLED_HEADERS}; do \
-+		  ${INSTALL_DATA} $$h $(DESTDIR)$${thd}; \
-+		done; \
- 	fi
- 	@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
- 
-diff --git a/libiberty/configure b/libiberty/configure
-index 6e98352..44d1f78 100755
---- a/libiberty/configure
-+++ b/libiberty/configure
-@@ -675,8 +675,8 @@ with_cross_host
- with_newlib
- enable_maintainer_mode
- enable_multilib
--enable_largefile
- enable_install_libiberty
-+enable_largefile
- '
-       ac_precious_vars='build_alias
- host_alias
-@@ -1303,8 +1303,8 @@ Optional Features:
-                           enable make rules and dependencies not useful
-                           (and sometimes confusing) to the casual installer
-   --enable-multilib       build many library versions (default)
-+  --enable-install-libiberty       Install headers and library for end users
-   --disable-largefile     omit support for large files
--  --enable-install-libiberty       Install headers for end users
- 
- Optional Packages:
-   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-@@ -2784,6 +2784,35 @@ if test $cross_compiling = no && test $multilib = yes \
-    cross_compiling=maybe
- fi
- 
-+# We may wish to install the target headers somewhere.
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install libiberty headers and static library" >&5
-+$as_echo_n "checking whether to install libiberty headers and static library... " >&6; }
-+
-+# Check whether --enable-install-libiberty was given.
-+if test "${enable_install_libiberty+set}" = set; then :
-+  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
-+else
-+  enable_install_libiberty=no
-+fi
-+
-+# Option parsed, now set things appropriately.
-+case x"$enable_install_libiberty" in
-+  xyes|x)
-+    target_header_dir=libiberty
-+    ;;
-+  xno)
-+    target_header_dir=
-+    ;;
-+  *)
-+    # This could be sanity-checked in various ways...
-+    target_header_dir="${enable_install_libiberty}"
-+    ;;
-+esac
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_install_libiberty" >&5
-+$as_echo "$enable_install_libiberty" >&6; }
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: target_header_dir = $target_header_dir" >&5
-+$as_echo "$as_me: target_header_dir = $target_header_dir" >&6;}
-+
- 
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
-@@ -5475,7 +5504,6 @@ fi
- 
- setobjs=
- CHECK=
--target_header_dir=
- if test -n "${with_target_subdir}"; then
- 
-   # We are being configured as a target library.  AC_REPLACE_FUNCS
-@@ -5752,29 +5780,6 @@ _ACEOF
- 
-   esac
- 
--  # We may wish to install the target headers somewhere.
--  # Check whether --enable-install-libiberty was given.
--if test "${enable_install_libiberty+set}" = set; then :
--  enableval=$enable_install_libiberty; enable_install_libiberty=$enableval
--else
--  enable_install_libiberty=no
--fi
--
--  # Option parsed, now set things appropriately.
--  case x"$enable_install_libiberty" in
--    xyes|x)
--      target_header_dir=libiberty
--      ;;
--    xno)
--      target_header_dir=
--      ;;
--    *)
--      # This could be sanity-checked in various ways...
--      target_header_dir="${enable_install_libiberty}"
--      ;;
--  esac
--
--
- else
- 
-    # Not a target library, so we set things up to run the test suite.
-diff --git a/libiberty/configure.ac b/libiberty/configure.ac
-index 754b66a..04260ec 100644
---- a/libiberty/configure.ac
-+++ b/libiberty/configure.ac
-@@ -128,6 +128,31 @@ if test $cross_compiling = no && test $multilib = yes \
-    cross_compiling=maybe
- fi
- 
-+# We may wish to install the target headers somewhere.
-+AC_MSG_CHECKING([whether to install libiberty headers and static library])
-+dnl install-libiberty is disabled by default
-+
-+AC_ARG_ENABLE(install-libiberty,
-+[  --enable-install-libiberty       Install headers and library for end users],
-+enable_install_libiberty=$enableval,
-+enable_install_libiberty=no)dnl
-+
-+# Option parsed, now set things appropriately.
-+case x"$enable_install_libiberty" in
-+  xyes|x)
-+    target_header_dir=libiberty
-+    ;;
-+  xno)   
-+    target_header_dir=
-+    ;;
-+  *) 
-+    # This could be sanity-checked in various ways...
-+    target_header_dir="${enable_install_libiberty}"
-+    ;;
-+esac
-+AC_MSG_RESULT($enable_install_libiberty)
-+AC_MSG_NOTICE([target_header_dir = $target_header_dir])
-+
- GCC_NO_EXECUTABLES
- AC_PROG_CC
- AC_SYS_LARGEFILE
-@@ -379,7 +404,6 @@ fi
- 
- setobjs=
- CHECK=
--target_header_dir=
- if test -n "${with_target_subdir}"; then
- 
-   # We are being configured as a target library.  AC_REPLACE_FUNCS
-@@ -490,27 +514,6 @@ if test -n "${with_target_subdir}"; then
- 
-   esac
- 
--  # We may wish to install the target headers somewhere.
--  AC_ARG_ENABLE(install-libiberty,
--  [  --enable-install-libiberty       Install headers for end users],
--  enable_install_libiberty=$enableval,
--  enable_install_libiberty=no)dnl
--  
--  # Option parsed, now set things appropriately.
--  case x"$enable_install_libiberty" in
--    xyes|x)
--      target_header_dir=libiberty
--      ;;
--    xno)   
--      target_header_dir=
--      ;;
--    *) 
--      # This could be sanity-checked in various ways...
--      target_header_dir="${enable_install_libiberty}"
--      ;;
--  esac
--
--
- else
- 
-    # Not a target library, so we set things up to run the test suite.
--- 
-1.9.3
-

+ 0 - 279
package/binutils/arc-2015.12/600-poison-system-directories.patch

@@ -1,279 +0,0 @@
-Patch adapted to binutils arc-4.8-R3 and extended to use
-BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Upstream-Status: Inappropriate [distribution: codesourcery]
-
-Patch originally created by Mark Hatle, forward-ported to
-binutils 2.21 by Scott Garman.
-
-purpose:  warn for uses of system directories when cross linking
-
-Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
-
-2008-07-02  Joseph Myers  <joseph@codesourcery.com>
-
-    ld/
-    * ld.h (args_type): Add error_poison_system_directories.
-    * ld.texinfo (--error-poison-system-directories): Document.
-    * ldfile.c (ldfile_add_library_path): Check
-    command_line.error_poison_system_directories.
-    * ldmain.c (main): Initialize
-    command_line.error_poison_system_directories.
-    * lexsup.c (enum option_values): Add
-    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
-    (ld_options): Add --error-poison-system-directories.
-    (parse_args): Handle new option.
-
-2007-06-13  Joseph Myers  <joseph@codesourcery.com>
-
-    ld/
-    * config.in: Regenerate.
-    * ld.h (args_type): Add poison_system_directories.
-    * ld.texinfo (--no-poison-system-directories): Document.
-    * ldfile.c (ldfile_add_library_path): Check
-    command_line.poison_system_directories.
-    * ldmain.c (main): Initialize
-    command_line.poison_system_directories.
-    * lexsup.c (enum option_values): Add
-    OPTION_NO_POISON_SYSTEM_DIRECTORIES.
-    (ld_options): Add --no-poison-system-directories.
-    (parse_args): Handle new option.
-
-2007-04-20  Joseph Myers  <joseph@codesourcery.com>
-
-    Merge from Sourcery G++ binutils 2.17:
-
-    2007-03-20  Joseph Myers  <joseph@codesourcery.com>
-    Based on patch by Mark Hatle <mark.hatle@windriver.com>.
-    ld/
-    * configure.in (--enable-poison-system-directories): New option.
-    * configure, config.in: Regenerate.
-    * ldfile.c (ldfile_add_library_path): If
-    ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
-    /usr/lib, /usr/local/lib or /usr/X11R6/lib.
-
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-Signed-off-by: Scott Garman <scott.a.garman@intel.com>
-
-Index: b/ld/config.in
-===================================================================
---- a/ld/config.in
-+++ b/ld/config.in
-@@ -11,6 +11,9 @@
-    language is requested. */
- #undef ENABLE_NLS
- 
-+/* Define to warn for use of native system library directories */
-+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
-+
- /* Additional extension a shared object might have. */
- #undef EXTRA_SHLIB_EXTENSION
- 
-Index: b/ld/configure
-===================================================================
---- a/ld/configure
-+++ b/ld/configure
-@@ -773,6 +773,7 @@
- enable_targets
- enable_64_bit_bfd
- with_sysroot
-+enable_poison_system_directories
- enable_gold
- enable_got
- enable_werror
-@@ -1428,6 +1429,8 @@
- 			  (and sometimes confusing) to the casual installer
-   --enable-targets        alternative target configurations
-   --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)
-+  --enable-poison-system-directories
-+                          warn for use of native system library directories
-   --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
-   --enable-got=<type>     GOT handling scheme (target, single, negative,
-                           multigot)
-@@ -4338,7 +4341,18 @@
- 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
- 
- # Check whether --enable-got was given.
- if test "${enable_got+set}" = set; then :
-Index: b/ld/configure.in
-===================================================================
---- a/ld/configure.in
-+++ b/ld/configure.in
-@@ -70,6 +70,16 @@
- AC_SUBST(TARGET_SYSTEM_ROOT)
- AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
- 
-+AC_ARG_ENABLE([poison-system-directories],
-+         AS_HELP_STRING([--enable-poison-system-directories],
-+                [warn for use of native system library 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 library directories])
-+fi
-+
- dnl Use --enable-gold to decide if this linker should be the default.
- dnl "install_as_default" is set to false if gold is the default linker.
- dnl "installed_linker" is the installed BFD linker name.
-Index: b/ld/ldfile.c
-===================================================================
---- a/ld/ldfile.c
-+++ b/ld/ldfile.c
-@@ -116,6 +116,23 @@
-     new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
-   else
-     new_dirs->name = xstrdup (name);
-+
-+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
-+  if (command_line.poison_system_directories
-+  && ((!strncmp (name, "/lib", 4))
-+      || (!strncmp (name, "/usr/lib", 8))
-+      || (!strncmp (name, "/usr/local/lib", 14))
-+      || (!strncmp (name, "/usr/X11R6/lib", 14))))
-+   {
-+     if (command_line.error_poison_system_directories)
-+       einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
-+            "cross-compilation\n"), name);
-+     else
-+       einfo (_("%P: warning: library search path \"%s\" is unsafe for "
-+            "cross-compilation\n"), name);
-+   }
-+#endif
-+
- }
- 
- /* Try to open a BFD for a lang_input_statement.  */
-Index: b/ld/ld.h
-===================================================================
---- a/ld/ld.h
-+++ b/ld/ld.h
-@@ -203,6 +203,14 @@
-   /* If TRUE we'll just print the default output on stdout.  */
-   bfd_boolean print_output_format;
- 
-+  /* If TRUE (the default) warn for uses of system directories when
-+     cross linking.  */
-+  bfd_boolean poison_system_directories;
-+
-+  /* If TRUE (default FALSE) give an error for uses of system
-+     directories when cross linking instead of a warning.  */
-+  bfd_boolean error_poison_system_directories;
-+
-   /* Big or little endian as set on command line.  */
-   enum endian_enum endian;
- 
-Index: b/ld/ldmain.c
-===================================================================
---- a/ld/ldmain.c
-+++ b/ld/ldmain.c
-@@ -265,6 +265,8 @@
-   command_line.warn_search_mismatch = TRUE;
-   command_line.check_section_addresses = -1;
-   command_line.disable_target_specific_optimizations = -1;
-+  command_line.poison_system_directories = TRUE;
-+  command_line.error_poison_system_directories = FALSE;
- 
-   /* We initialize DEMANGLING based on the environment variable
-      COLLECT_NO_DEMANGLE.  The gcc collect2 program will demangle the
-Index: b/ld/ld.texinfo
-===================================================================
---- a/ld/ld.texinfo
-+++ b/ld/ld.texinfo
-@@ -2156,6 +2156,18 @@
- 
- Passing @code{none} for @var{style} disables the setting from any
- @code{--build-id} options earlier on the command line.
-+
-+@kindex --no-poison-system-directories
-+@item --no-poison-system-directories
-+Do not warn for @option{-L} options using system directories such as
-+@file{/usr/lib} when cross linking.  This option is intended for use
-+in chroot environments when such directories contain the correct
-+libraries for the target system rather than the host.
-+
-+@kindex --error-poison-system-directories
-+@item --error-poison-system-directories
-+Give an error instead of a warning for @option{-L} options using
-+system directories when cross linking.
- @end table
- 
- @c man end
-Index: b/ld/lexsup.c
-===================================================================
---- a/ld/lexsup.c
-+++ b/ld/lexsup.c
-@@ -498,6 +498,14 @@
-     TWO_DASHES },
-   { {"wrap", required_argument, NULL, OPTION_WRAP},
-     '\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES },
-+  { {"no-poison-system-directories", no_argument, NULL,
-+     OPTION_NO_POISON_SYSTEM_DIRECTORIES},
-+    '\0', NULL, N_("Do not warn for -L options using system directories"),
-+    TWO_DASHES },
-+  { {"error-poison-system-directories", no_argument, NULL,
-+     OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
-+    '\0', NULL, N_("Give an error for -L options using system directories"),
-+    TWO_DASHES },
- };
- 
- #define OPTION_COUNT ARRAY_SIZE (ld_options)
-@@ -510,6 +518,7 @@
-   int ingroup = 0;
-   char *default_dirlist = NULL;
-   char *shortopts;
-+  char *BR_paranoid_env;
-   struct option *longopts;
-   struct option *really_longopts;
-   int last_optind;
-@@ -1427,9 +1436,21 @@
-               einfo (_("%P%X: --hash-size needs a numeric argument\n"));
-           }
-           break;
-+
-+   case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
-+     command_line.poison_system_directories = FALSE;
-+     break;
-+
-+   case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
-+     command_line.error_poison_system_directories = TRUE;
-+     break;
- 	}
-     }
- 
-+  BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
-+  if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
-+    command_line.error_poison_system_directories = TRUE;
-+
-   while (ingroup)
-     {
-       lang_leave_group ();
-Index: b/ld/ldlex.h
-===================================================================
---- a/ld/ldlex.h
-+++ b/ld/ldlex.h
-@@ -136,6 +136,8 @@
- #endif /* ENABLE_PLUGINS */
-   OPTION_DEFAULT_SCRIPT,
-   OPTION_PRINT_OUTPUT_FORMAT,
-+  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
-+  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
- };
- 
- /* The initial parser states.  */

+ 41 - 0
package/binutils/arc-2016.03/0300-ld-makefile.patch

@@ -0,0 +1,41 @@
+From d76a7549b43974fe8564971a3f40459bc495a8a7 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 25 Dec 2015 11:40:53 +0100
+Subject: [PATCH] ld-makefile
+
+[Romain: rebase on top of 2.26]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ ld/Makefile.am | 2 +-
+ ld/Makefile.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ld/Makefile.am b/ld/Makefile.am
+index 0b3b049..3871c74 100644
+--- a/ld/Makefile.am
++++ b/ld/Makefile.am
+@@ -57,7 +57,7 @@ endif
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ 
+ EMUL = @EMUL@
+ EMULATION_OFILES = @EMULATION_OFILES@
+diff --git a/ld/Makefile.in b/ld/Makefile.in
+index ed98f87..530e4c9 100644
+--- a/ld/Makefile.in
++++ b/ld/Makefile.in
+@@ -413,7 +413,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
+-- 
+2.4.3
+

+ 36 - 0
package/binutils/arc-2016.03/0301-check-ldrunpath-length.patch

@@ -0,0 +1,36 @@
+From ebe1cba46df52d7bf86def3d681271fd05fb453b Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 25 Dec 2015 11:41:47 +0100
+Subject: [PATCH] check-ldrunpath-length
+
+[Romain: rebase on top of 2.26]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ ld/emultempl/elf32.em | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
+index 0405d4f..efd3300 100644
+--- a/ld/emultempl/elf32.em
++++ b/ld/emultempl/elf32.em
+@@ -1242,6 +1242,8 @@ fragment <<EOF
+ 	      && command_line.rpath == NULL)
+ 	    {
+ 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
++	      if ((lib_path) && (strlen (lib_path) == 0))
++	      	lib_path = NULL;
+ 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
+ 						      force))
+ 		break;
+@@ -1523,6 +1525,8 @@ gld${EMULATION_NAME}_before_allocation (void)
+   rpath = command_line.rpath;
+   if (rpath == NULL)
+     rpath = (const char *) getenv ("LD_RUN_PATH");
++  if ((rpath) && (strlen (rpath) == 0))
++  	rpath = NULL;
+ 
+   for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
+     if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
+-- 
+2.4.3
+

+ 17 - 2
package/binutils/2.23.2/500-sysroot.patch → package/binutils/arc-2016.03/0500-add-sysroot-fix-from-bug-3049.patch

@@ -1,13 +1,25 @@
-Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
+From 30628870e583375f8927c04398c7219c6e9f703c Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 25 Dec 2015 11:42:48 +0100
+Subject: [PATCH] add sysroot fix from bug #3049
 
 Always try to prepend the sysroot prefix to absolute filenames first.
 
 http://bugs.gentoo.org/275666
 http://sourceware.org/bugzilla/show_bug.cgi?id=10340
 
+Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
+[Romain: rebase on top of 2.26]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ ld/ldfile.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/ld/ldfile.c b/ld/ldfile.c
+index 96f9ecc..1439309 100644
 --- a/ld/ldfile.c
 +++ b/ld/ldfile.c
-@@ -308,18 +308,25 @@
+@@ -335,18 +335,25 @@ ldfile_open_file_search (const char *arch,
       directory first.  */
    if (! entry->flags.maybe_archive)
      {
@@ -35,3 +47,6 @@ http://sourceware.org/bugzilla/show_bug.cgi?id=10340
  	return TRUE;
  
        if (IS_ABSOLUTE_PATH (entry->filename))
+-- 
+2.4.3
+

+ 121 - 94
package/binutils/2.23.2/600-poison-system-directories.patch → package/binutils/arc-2016.03/0600-poison-system-directories.patch

@@ -1,7 +1,16 @@
+From be366461dd49e760440fb28eaee5164eb281adcc Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 25 Dec 2015 11:45:38 +0100
+Subject: [PATCH] poison-system-directories
+
 Patch adapted to binutils 2.23.2 and extended to use
 BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
 
+[Romain: rebase on top of 2.26]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+[Gustavo: adapt to binutils 2.25]
 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
 
 Upstream-Status: Inappropriate [distribution: codesourcery]
 
@@ -48,7 +57,7 @@ Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
     2007-03-20  Joseph Myers  <joseph@codesourcery.com>
     Based on patch by Mark Hatle <mark.hatle@windriver.com>.
     ld/
-    * configure.in (--enable-poison-system-directories): New option.
+    * configure.ac (--enable-poison-system-directories): New option.
     * configure, config.in: Regenerate.
     * ldfile.c (ldfile_add_library_path): If
     ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
@@ -56,12 +65,23 @@ Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
 
 Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
 Signed-off-by: Scott Garman <scott.a.garman@intel.com>
+---
+ ld/config.in    |  3 +++
+ ld/configure    | 14 ++++++++++++++
+ ld/configure.ac | 10 ++++++++++
+ ld/ld.h         |  8 ++++++++
+ ld/ld.texinfo   | 12 ++++++++++++
+ ld/ldfile.c     | 17 +++++++++++++++++
+ ld/ldlex.h      |  2 ++
+ ld/ldmain.c     |  2 ++
+ ld/lexsup.c     | 21 +++++++++++++++++++++
+ 9 files changed, 89 insertions(+)
 
-Index: b/ld/config.in
-===================================================================
+diff --git a/ld/config.in b/ld/config.in
+index 276fb77..35c58eb 100644
 --- a/ld/config.in
 +++ b/ld/config.in
-@@ -11,6 +11,9 @@
+@@ -14,6 +14,9 @@
     language is requested. */
  #undef ENABLE_NLS
  
@@ -71,20 +91,20 @@ Index: b/ld/config.in
  /* Additional extension a shared object might have. */
  #undef EXTRA_SHLIB_EXTENSION
  
-Index: b/ld/configure
-===================================================================
+diff --git a/ld/configure b/ld/configure
+index a446283..d1f9504 100755
 --- a/ld/configure
 +++ b/ld/configure
-@@ -773,6 +773,7 @@
+@@ -786,6 +786,7 @@ with_lib_path
  enable_targets
  enable_64_bit_bfd
  with_sysroot
 +enable_poison_system_directories
  enable_gold
  enable_got
- enable_werror
-@@ -1428,6 +1429,8 @@
- 			  (and sometimes confusing) to the casual installer
+ enable_compressed_debug_sections
+@@ -1442,6 +1443,8 @@ Optional Features:
+   --disable-largefile     omit support for large files
    --enable-targets        alternative target configurations
    --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)
 +  --enable-poison-system-directories
@@ -92,7 +112,7 @@ Index: b/ld/configure
    --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
    --enable-got=<type>     GOT handling scheme (target, single, negative,
                            multigot)
-@@ -4338,7 +4341,18 @@
+@@ -15491,7 +15494,18 @@ else
  fi
  
  
@@ -111,11 +131,11 @@ Index: b/ld/configure
  
  # Check whether --enable-got was given.
  if test "${enable_got+set}" = set; then :
-Index: b/ld/configure.in
-===================================================================
---- a/ld/configure.in
-+++ b/ld/configure.in
-@@ -70,6 +70,16 @@
+diff --git a/ld/configure.ac b/ld/configure.ac
+index 188172d..2cd8443 100644
+--- a/ld/configure.ac
++++ b/ld/configure.ac
+@@ -95,6 +95,16 @@ AC_SUBST(use_sysroot)
  AC_SUBST(TARGET_SYSTEM_ROOT)
  AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
  
@@ -132,11 +152,53 @@ Index: b/ld/configure.in
  dnl Use --enable-gold to decide if this linker should be the default.
  dnl "install_as_default" is set to false if gold is the default linker.
  dnl "installed_linker" is the installed BFD linker name.
-Index: b/ld/ldfile.c
-===================================================================
+diff --git a/ld/ld.h b/ld/ld.h
+index d84ec4e..3476b26 100644
+--- a/ld/ld.h
++++ b/ld/ld.h
+@@ -164,6 +164,14 @@ typedef struct {
+   /* If set, display the target memory usage (per memory region).  */
+   bfd_boolean print_memory_usage;
+ 
++  /* If TRUE (the default) warn for uses of system directories when
++     cross linking.  */
++  bfd_boolean poison_system_directories;
++
++  /* If TRUE (default FALSE) give an error for uses of system
++     directories when cross linking instead of a warning.  */
++  bfd_boolean error_poison_system_directories;
++
+   /* Big or little endian as set on command line.  */
+   enum endian_enum endian;
+ 
+diff --git a/ld/ld.texinfo b/ld/ld.texinfo
+index 1dd7492..fb1438e 100644
+--- a/ld/ld.texinfo
++++ b/ld/ld.texinfo
+@@ -2332,6 +2332,18 @@ string identifying the original linked file does not change.
+ 
+ Passing @code{none} for @var{style} disables the setting from any
+ @code{--build-id} options earlier on the command line.
++
++@kindex --no-poison-system-directories
++@item --no-poison-system-directories
++Do not warn for @option{-L} options using system directories such as
++@file{/usr/lib} when cross linking.  This option is intended for use
++in chroot environments when such directories contain the correct
++libraries for the target system rather than the host.
++
++@kindex --error-poison-system-directories
++@item --error-poison-system-directories
++Give an error instead of a warning for @option{-L} options using
++system directories when cross linking.
+ @end table
+ 
+ @c man end
+diff --git a/ld/ldfile.c b/ld/ldfile.c
+index 1439309..086b354 100644
 --- a/ld/ldfile.c
 +++ b/ld/ldfile.c
-@@ -116,6 +116,23 @@
+@@ -114,6 +114,23 @@ ldfile_add_library_path (const char *name, bfd_boolean cmdline)
      new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
    else
      new_dirs->name = xstrdup (name);
@@ -160,81 +222,52 @@ Index: b/ld/ldfile.c
  }
  
  /* Try to open a BFD for a lang_input_statement.  */
-Index: b/ld/ld.h
-===================================================================
---- a/ld/ld.h
-+++ b/ld/ld.h
-@@ -203,6 +203,14 @@
-   /* If TRUE we'll just print the default output on stdout.  */
-   bfd_boolean print_output_format;
- 
-+  /* If TRUE (the default) warn for uses of system directories when
-+     cross linking.  */
-+  bfd_boolean poison_system_directories;
-+
-+  /* If TRUE (default FALSE) give an error for uses of system
-+     directories when cross linking instead of a warning.  */
-+  bfd_boolean error_poison_system_directories;
-+
-   /* Big or little endian as set on command line.  */
-   enum endian_enum endian;
+diff --git a/ld/ldlex.h b/ld/ldlex.h
+index 6f11e7b..0ca3110 100644
+--- a/ld/ldlex.h
++++ b/ld/ldlex.h
+@@ -144,6 +144,8 @@ enum option_values
+   OPTION_PRINT_MEMORY_USAGE,
+   OPTION_REQUIRE_DEFINED_SYMBOL,
+   OPTION_ORPHAN_HANDLING,
++  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
++  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
+ };
  
-Index: b/ld/ldmain.c
-===================================================================
+ /* The initial parser states.  */
+diff --git a/ld/ldmain.c b/ld/ldmain.c
+index bb0b9cc..a23c56c 100644
 --- a/ld/ldmain.c
 +++ b/ld/ldmain.c
-@@ -265,6 +265,8 @@
+@@ -257,6 +257,8 @@ main (int argc, char **argv)
+   command_line.warn_mismatch = TRUE;
    command_line.warn_search_mismatch = TRUE;
    command_line.check_section_addresses = -1;
-   command_line.disable_target_specific_optimizations = -1;
 +  command_line.poison_system_directories = TRUE;
 +  command_line.error_poison_system_directories = FALSE;
  
    /* We initialize DEMANGLING based on the environment variable
       COLLECT_NO_DEMANGLE.  The gcc collect2 program will demangle the
-Index: b/ld/ld.texinfo
-===================================================================
---- a/ld/ld.texinfo
-+++ b/ld/ld.texinfo
-@@ -2154,6 +2154,18 @@
- 
- Passing @code{none} for @var{style} disables the setting from any
- @code{--build-id} options earlier on the command line.
-+
-+@kindex --no-poison-system-directories
-+@item --no-poison-system-directories
-+Do not warn for @option{-L} options using system directories such as
-+@file{/usr/lib} when cross linking.  This option is intended for use
-+in chroot environments when such directories contain the correct
-+libraries for the target system rather than the host.
-+
-+@kindex --error-poison-system-directories
-+@item --error-poison-system-directories
-+Give an error instead of a warning for @option{-L} options using
-+system directories when cross linking.
- @end table
- 
- @c man end
-Index: b/ld/lexsup.c
-===================================================================
+diff --git a/ld/lexsup.c b/ld/lexsup.c
+index 4cad209..be7d584 100644
 --- a/ld/lexsup.c
 +++ b/ld/lexsup.c
-@@ -498,6 +498,14 @@
+@@ -530,6 +530,14 @@ static const struct ld_option ld_options[] =
+   { {"orphan-handling", required_argument, NULL, OPTION_ORPHAN_HANDLING},
+     '\0', N_("=MODE"), N_("Control how orphan sections are handled."),
      TWO_DASHES },
-   { {"wrap", required_argument, NULL, OPTION_WRAP},
-     '\0', N_("SYMBOL"), N_("Use wrapper functions for SYMBOL"), TWO_DASHES },
 +  { {"no-poison-system-directories", no_argument, NULL,
-+     OPTION_NO_POISON_SYSTEM_DIRECTORIES},
++    OPTION_NO_POISON_SYSTEM_DIRECTORIES},
 +    '\0', NULL, N_("Do not warn for -L options using system directories"),
 +    TWO_DASHES },
 +  { {"error-poison-system-directories", no_argument, NULL,
-+     OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
++    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
 +    '\0', NULL, N_("Give an error for -L options using system directories"),
 +    TWO_DASHES },
  };
  
  #define OPTION_COUNT ARRAY_SIZE (ld_options)
-@@ -510,6 +518,7 @@
+@@ -542,6 +550,7 @@ parse_args (unsigned argc, char **argv)
    int ingroup = 0;
    char *default_dirlist = NULL;
    char *shortopts;
@@ -242,19 +275,23 @@ Index: b/ld/lexsup.c
    struct option *longopts;
    struct option *really_longopts;
    int last_optind;
-@@ -1427,9 +1436,21 @@
-               einfo (_("%P%X: --hash-size needs a numeric argument\n"));
+@@ -1516,6 +1525,14 @@ parse_args (unsigned argc, char **argv)
            }
            break;
+ 
++	case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
++	  command_line.poison_system_directories = FALSE;
++	  break;
 +
-+   case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
-+     command_line.poison_system_directories = FALSE;
-+     break;
++	case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
++	  command_line.error_poison_system_directories = TRUE;
++	  break;
 +
-+   case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
-+     command_line.error_poison_system_directories = TRUE;
-+     break;
- 	}
+ 	case OPTION_PUSH_STATE:
+ 	  input_flags.pushed = xmemdup (&input_flags,
+ 					sizeof (input_flags),
+@@ -1559,6 +1576,10 @@ parse_args (unsigned argc, char **argv)
+       command_line.soname = NULL;
      }
  
 +  BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
@@ -264,16 +301,6 @@ Index: b/ld/lexsup.c
    while (ingroup)
      {
        lang_leave_group ();
-Index: b/ld/ldlex.h
-===================================================================
---- a/ld/ldlex.h
-+++ b/ld/ldlex.h
-@@ -136,6 +136,8 @@
- #endif /* ENABLE_PLUGINS */
-   OPTION_DEFAULT_SCRIPT,
-   OPTION_PRINT_OUTPUT_FORMAT,
-+  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
-+  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
- };
- 
- /* The initial parser states.  */
+-- 
+2.4.3
+

+ 34 - 0
package/binutils/arc-2016.03/0700-Fix-issue-with-dynamic-relocs-not-being-generated-wi.patch

@@ -0,0 +1,34 @@
+From e59d8728f2fd57938ff28bb48cb47ddc7dbf8271 Mon Sep 17 00:00:00 2001
+From: Cupertino Miranda <cmiranda@synopsys.com>
+Date: Tue, 24 May 2016 18:00:28 +0200
+Subject: [PATCH] Fix issue with dynamic relocs not being generated with -pie.
+
+---
+ bfd/elf32-arc.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
+index c2d05e4..00af1a5 100644
+--- a/bfd/elf32-arc.c
++++ b/bfd/elf32-arc.c
+@@ -1492,7 +1492,7 @@ elf_arc_relocate_section (bfd *		   output_bfd,
+ 	  case R_ARC_32_ME:
+ 	  case R_ARC_PC32:
+ 	  case R_ARC_32_PCREL:
+-	    if (bfd_link_pic (info) && !bfd_link_pie (info)
++	    if ((bfd_link_pic (info) || bfd_link_pie (info))
+ 		&& ((r_type != R_ARC_PC32 && r_type != R_ARC_32_PCREL)
+ 		    || (h != NULL
+ 			&& h->dynindx != -1
+@@ -1774,7 +1774,7 @@ elf_arc_check_relocs (bfd *		         abfd,
+ 	    /* FALLTHROUGH */
+ 	  case R_ARC_PC32:
+ 	  case R_ARC_32_PCREL:
+-	    if (bfd_link_pic (info) && !bfd_link_pie (info)
++	    if ((bfd_link_pic (info) || bfd_link_pie (info))
+ 		&& ((r_type != R_ARC_PC32 && r_type != R_ARC_32_PCREL)
+ 		    || (h != NULL
+ 			&& h->dynindx != -1
+-- 
+2.5.5
+

+ 3 - 3
package/binutils/binutils.hash

@@ -1,7 +1,7 @@
 # From ftp://gcc.gnu.org/pub/binutils/releases/sha512.sum
-sha512  dec753bbba008f1526b89cf1bd85feba78f362f5333ffdf93953fd131eb755976dec82a0a4ba38c43d2434da007137780cfe674de5414be5cf7ce7fbc6af6d16  binutils-2.23.2.tar.bz2
 sha512  5ec95ad47d49b12c4558a8db0ca2109d3ee1955e3776057f3330c4506f8f4d1cf5e505fbf8a16b98403a0fcdeaaf986fe0a22be6456247dbdace63ce1f776b12  binutils-2.24.tar.bz2
 sha512  0b36dda0e6d32cd25613c0e64b56b28312515c54d6a159efd3db9a86717f114ab0a0a1f69d08975084d55713ebaeab64e4085c9b3d1c3fa86712869f80eb954d  binutils-2.25.1.tar.bz2
 sha512  e77e1b8dbbcbaf9ac2fae95c4403615808af3be03b2e1d32448cd3a7d32c43273f8bcace3f2de84ec120a982879295673029da306e2885dbf5f990584932cfc7  binutils-2.26.tar.bz2
-# No hash for the ARC variant, comes from the github-helper:
-none   xxx  binutils-arc-2015.12.tar.gz
+
+# Locally calculated (fetched from Github)
+sha512  566312760ef564902fd85e281ef1370426c1451a16eb1d3e2faea7ec62100ae70ac9a5f33a7a5f87cdc744e82dd03203378fa4db1652c6b7856d865404dd19f8  binutils-arc-2016.03.tar.gz

+ 1 - 1
package/binutils/binutils.mk

@@ -9,7 +9,7 @@
 BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
 ifeq ($(BINUTILS_VERSION),)
 ifeq ($(BR2_arc),y)
-BINUTILS_VERSION = arc-2015.12
+BINUTILS_VERSION = arc-2016.03
 else
 BINUTILS_VERSION = 2.25.1
 endif

+ 0 - 5
package/boost/Config.in

@@ -1,14 +1,9 @@
 comment "boost needs a toolchain w/ C++, threads, wchar"
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
 
-config BR2_PACKAGE_BOOST_ARCH_SUPPORTS
-	bool
-	default y if !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
-
 config BR2_PACKAGE_BOOST
 	bool "boost"
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS
 	# Boost could theorically be built with threading=single, but
 	# that unfortunately doesn't work. Until someone fixes that,
 	# let's depend on threads.

+ 0 - 2
package/cc-tool/Config.in

@@ -2,7 +2,6 @@ config BR2_PACKAGE_CC_TOOL
 	bool "cc-tool"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS
 	depends on BR2_USE_WCHAR # boost-filesystem
 	select BR2_PACKAGE_LIBUSB
 	select BR2_PACKAGE_BOOST
@@ -19,5 +18,4 @@ config BR2_PACKAGE_CC_TOOL
 	  http://sourceforge.net/projects/cctool/
 
 comment "cc-tool needs a toolchain w/ C++, threads, wchar"
-	depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR

+ 3 - 3
package/dmidecode/0001-build-system-fixes.patch

@@ -21,10 +21,10 @@ Index: b/Makefile
 +override CFLAGS  += \
 +	-W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \
 +        -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef
- #CFLAGS += -DBIGENDIAN
- #CFLAGS += -DALIGNMENT_WORKAROUND
  
-@@ -23,7 +24,7 @@
+ # Let lseek and mmap support 64-bit wide offsets
+ CFLAGS += -D_FILE_OFFSET_BITS=64
+@@ -27,7 +28,7 @@ CFLAGS += -O2
  #CFLAGS += -g
  
  # Pass linker flags here

+ 2 - 2
package/dmidecode/dmidecode.hash

@@ -1,2 +1,2 @@
-# Locally calculated after checking pgp signature
-sha256	5a8214b99c1762f4510bd92baa279336e5fed6e5cd2e418d46d95a4ecc783922	dmidecode-2.12.tar.gz
+# http://http.debian.net/debian/pool/main/d/dmidecode/dmidecode_3.0-2.dsc
+sha256	7ec35bb193729c1d593a1460b59d82d24b89102ab23fd0416e6cf4325d077e45	dmidecode-3.0.tar.xz

+ 2 - 1
package/dmidecode/dmidecode.mk

@@ -4,7 +4,8 @@
 #
 ################################################################################
 
-DMIDECODE_VERSION = 2.12
+DMIDECODE_VERSION = 3.0
+DMIDECODE_SOURCE = dmidecode-$(DMIDECODE_VERSION).tar.xz
 DMIDECODE_SITE = http://download.savannah.gnu.org/releases/dmidecode
 DMIDECODE_LICENSE = GPLv2+
 DMIDECODE_LICENSE_FILES = LICENSE

+ 1 - 1
package/dnsmasq/dnsmasq.hash

@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	640c4e1d4c298e42458419cd78cfc26acc549401b1a34d271cd3e0e4226941f1	dnsmasq-2.75.tar.xz
+sha256	4b92698dee19ca0cb2a8f2e48f1d2dffd01a21eb15d1fbed4cf085630c8c9f96	dnsmasq-2.76.tar.xz

+ 1 - 1
package/dnsmasq/dnsmasq.mk

@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-DNSMASQ_VERSION = 2.75
+DNSMASQ_VERSION = 2.76
 DNSMASQ_SOURCE = dnsmasq-$(DNSMASQ_VERSION).tar.xz
 DNSMASQ_SITE = http://thekelleys.org.uk/dnsmasq
 DNSMASQ_MAKE_ENV = $(TARGET_MAKE_ENV) CC="$(TARGET_CC)"

+ 1 - 1
package/dos2unix/dos2unix.hash

@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	f4d5df24d181c2efecf7631aab6e894489012396092cf206829f1f9a98556b94	dos2unix-7.3.1.tar.gz
+sha256	8ccda7bbc5a2f903dafd95900abb5bf5e77a769b572ef25150fde4056c5f30c5	dos2unix-7.3.4.tar.gz

+ 1 - 1
package/dos2unix/dos2unix.mk

@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-DOS2UNIX_VERSION = 7.3.1
+DOS2UNIX_VERSION = 7.3.4
 DOS2UNIX_SITE = http://waterlan.home.xs4all.nl/dos2unix
 DOS2UNIX_LICENSE = BSD-2c
 DOS2UNIX_LICENSE_FILES = COPYING.txt

+ 42 - 0
package/dosfstools/0001-mkfs-Default-to-64-32-heads-sectors-for-targets-smalle.patch

@@ -0,0 +1,42 @@
+From 1e76e5778a1885452939a79d9145b80634a5b023 Mon Sep 17 00:00:00 2001
+From: Andreas Bombe <aeb@debian.org>
+Date: Wed, 11 May 2016 03:44:58 +0200
+Subject: [PATCH] mkfs: Default to 64/32 heads/sectors for targets smaller than
+ 512 MB
+
+This may put defaults in certain use cases a little bit more in line
+with the old defaults in versions up to 3.0.28. It has mostly aesthetic
+value in most cases.
+
+Signed-off-by: Andreas Bombe <aeb@debian.org>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+---
+Patch status: upstream
+
+ src/mkfs.fat.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/mkfs.fat.c b/src/mkfs.fat.c
+index 8a320fd..bad492b 100644
+--- a/src/mkfs.fat.c
++++ b/src/mkfs.fat.c
+@@ -519,6 +519,16 @@ static void establish_params(struct device_info *info)
+     unsigned int cluster_size = 4;  /* starting point for FAT12 and FAT16 */
+     int def_root_dir_entries = 512;
+ 
++    if (info->size < 512 * 1024 * 1024) {
++	/*
++	 * These values are more or less meaningless, but we can at least
++	 * use less extreme values for smaller filesystems where the large
++	 * dummy values signifying LBA only access are not needed.
++	 */
++	sec_per_track = 32;
++	heads = 64;
++    }
++
+     if (info->type != TYPE_FIXED) {
+ 	/* enter default parameters for floppy disks if the size matches */
+ 	switch (info->size / 1024) {
+-- 
+2.7.3
+

+ 0 - 45
package/dosfstools/0001-mkfs.fat-fix-incorrect-int-type.patch

@@ -1,45 +0,0 @@
-From 7a589ef6dab52ad32a296939f0ed2acb4d76b2a7 Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Date: Sun, 16 Aug 2015 15:55:43 +0200
-Subject: [PATCH] mkfs.fat: fix incorrect int type
-
-u_int32_t is not a stanard type, while uint32_t is. This fixes builds
-with the musl C library, which only defines so-called "clean" headers;
-build failures are like (back-quotes and elision manually added for
-readability):
-
-    http://autobuild.buildroot.org/results/a09/a0923d7f6d4dbae02eba4c5024bbdae3a52aa85a/build-end.log
-
-    /home/peko/autobuild/instance-1/output/host/usr/bin/x86_64-linux-gcc -D_LARGEFILE_SOURCE \
-        -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64   -Os  -D_GNU_SOURCE -D_LARGEFILE_SOURCE \
-        -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -c -o mkfs.fat.o src/mkfs.fat.c
-    src/mkfs.fat.c: In function 'main':
-    src/mkfs.fat.c:1415:18: error: 'u_int32_t' undeclared (first use in this function)
-         volume_id = (u_int32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec); [...]
-                      ^
-    src/mkfs.fat.c:1415:18: note: each undeclared identifier is reported only once for each
-    function it appears in
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
-Upstream status: applied: https://github.com/dosfstools/dosfstools/pull/9
----
- src/mkfs.fat.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/mkfs.fat.c b/src/mkfs.fat.c
-index b38d116..dddbe24 100644
---- a/src/mkfs.fat.c
-+++ b/src/mkfs.fat.c
-@@ -1412,7 +1412,7 @@ int main(int argc, char **argv)
- 
-     gettimeofday(&create_timeval, NULL);
-     create_time = create_timeval.tv_sec;
--    volume_id = (u_int32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec);	/* Default volume ID = creation time, fudged for more uniqueness */
-+    volume_id = (uint32_t) ((create_timeval.tv_sec << 20) | create_timeval.tv_usec);	/* Default volume ID = creation time, fudged for more uniqueness */
-     check_atari();
- 
-     printf("mkfs.fat " VERSION " (" VERSION_DATE ")\n");
--- 
-1.9.1
-

+ 1 - 1
package/dosfstools/dosfstools.hash

@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256	ee95913044ecf2719b63ea11212917649709a6e53209a72d622135aaa8517ee2	dosfstools-3.0.28.tar.xz
+sha256	9037738953559d1efe04fc5408b6846216cc0138f7f9d32de80b6ec3c35e7daf	dosfstools-4.0.tar.xz

+ 24 - 40
package/dosfstools/dosfstools.mk

@@ -4,65 +4,49 @@
 #
 ################################################################################
 
-DOSFSTOOLS_VERSION = 3.0.28
+DOSFSTOOLS_VERSION = 4.0
 DOSFSTOOLS_SOURCE = dosfstools-$(DOSFSTOOLS_VERSION).tar.xz
 DOSFSTOOLS_SITE = https://github.com/dosfstools/dosfstools/releases/download/v$(DOSFSTOOLS_VERSION)
 DOSFSTOOLS_LICENSE = GPLv3+
 DOSFSTOOLS_LICENSE_FILES = COPYING
+DOSFSTOOLS_CONF_OPTS = --enable-compat-symlinks --exec-prefix=/
+HOST_DOSFSTOOLS_CONF_OPTS = --enable-compat-symlinks
 
 # Avoid target dosfstools dependencies, no host-libiconv
 HOST_DOSFSTOOLS_DEPENDENCIES =
 
-DOSFSTOOLS_CFLAGS = $(TARGET_CFLAGS) -D_GNU_SOURCE
+ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
+DOSFSTOOLS_CONF_OPTS += --with-udev
+DOSFSTOOLS_DEPENDENCIES += udev
+else
+DOSFSTOOLS_CONF_OPTS += --without-udev
+endif
 
 ifneq ($(BR2_ENABLE_LOCALE),y)
+DOSFSTOOLS_CONF_OPTS += LIBS="-liconv"
 DOSFSTOOLS_DEPENDENCIES += libiconv
-DOSFSTOOLS_LDLIBS += -liconv
 endif
 
-define DOSFSTOOLS_BUILD_CMDS
-	$(MAKE) $(TARGET_CONFIGURE_OPTS) \
-		CFLAGS="$(DOSFSTOOLS_CFLAGS)" LDLIBS="$(DOSFSTOOLS_LDLIBS)" -C $(@D)
-endef
-
-ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FATLABEL),y)
-define DOSFSTOOLS_INSTALL_FATLABEL
-	$(INSTALL) -D -m 755 $(@D)/fatlabel $(TARGET_DIR)/sbin/fatlabel
-	ln -sf fatlabel $(TARGET_DIR)/sbin/dosfslabel
+ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FATLABEL),)
+define DOSFSTOOLS_REMOVE_FATLABEL
+	rm -f $(addprefix $(TARGET_DIR)/sbin/,dosfslabel fatlabel)
 endef
+DOSFSTOOLS_POST_INSTALL_TARGET_HOOKS += DOSFSTOOLS_REMOVE_FATLABEL
 endif
 
-ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT),y)
-define DOSFSTOOLS_INSTALL_FSCK_FAT
-	$(INSTALL) -D -m 755 $(@D)/fsck.fat $(TARGET_DIR)/sbin/fsck.fat
-	ln -fs fsck.fat $(TARGET_DIR)/sbin/dosfsck
-	ln -fs fsck.fat $(TARGET_DIR)/sbin/fsck.msdos
-	ln -fs fsck.fat $(TARGET_DIR)/sbin/fsck.vfat
+ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT),)
+define DOSFSTOOLS_REMOVE_FSCK_FAT
+	rm -f $(addprefix $(TARGET_DIR)/sbin/,fsck.fat dosfsck fsck.msdos fsck.vfat)
 endef
+DOSFSTOOLS_POST_INSTALL_TARGET_HOOKS += DOSFSTOOLS_REMOVE_FSCK_FAT
 endif
 
-ifeq ($(BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT),y)
-define DOSFSTOOLS_INSTALL_MKFS_FAT
-	$(INSTALL) -D -m 755 $(@D)/mkfs.fat $(TARGET_DIR)/sbin/mkfs.fat
-	ln -fs mkfs.fat $(TARGET_DIR)/sbin/mkdosfs
-	ln -fs mkfs.fat $(TARGET_DIR)/sbin/mkfs.msdos
-	ln -fs mkfs.fat $(TARGET_DIR)/sbin/mkfs.vfat
+ifeq ($(BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT),)
+define DOSFSTOOLS_REMOVE_MKFS_FAT
+	rm -f $(addprefix $(TARGET_DIR)/sbin/,mkfs.fat mkdosfs mkfs.msdos mkfs.vfat)
 endef
+DOSFSTOOLS_POST_INSTALL_TARGET_HOOKS += DOSFSTOOLS_REMOVE_MKFS_FAT
 endif
 
-define DOSFSTOOLS_INSTALL_TARGET_CMDS
-	$(DOSFSTOOLS_INSTALL_FATLABEL)
-	$(DOSFSTOOLS_INSTALL_FSCK_FAT)
-	$(DOSFSTOOLS_INSTALL_MKFS_FAT)
-endef
-
-define HOST_DOSFSTOOLS_BUILD_CMDS
-	$(MAKE) $(HOST_CONFIGURE_OPTS) -C $(@D)
-endef
-
-define HOST_DOSFSTOOLS_INSTALL_CMDS
-	$(MAKE) -C $(@D) $(HOST_CONFIGURE_OPTS) PREFIX=$(HOST_DIR)/usr install
-endef
-
-$(eval $(generic-package))
-$(eval $(host-generic-package))
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))

+ 9 - 0
package/e2fsprogs/Config.in

@@ -62,6 +62,15 @@ config BR2_PACKAGE_E2FSPROGS_FSCK
 	bool "fsck"
 	default y
 
+config BR2_PACKAGE_E2FSPROGS_FUSE2FS
+	bool "fuse2fs"
+	depends on !BR2_STATIC_LIBS # libfuse
+	depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse
+	select BR2_PACKAGE_LIBFUSE
+
+comment "fuse2fs needs a toolchain w/ threads, dynamic library"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
+
 config BR2_PACKAGE_E2FSPROGS_LOGSAVE
 	bool "logsave"
 	default y

+ 2 - 2
package/e2fsprogs/e2fsprogs.hash

@@ -1,2 +1,2 @@
-# From https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.13/sha256sums.asc
-sha256 e16474b5a3a30f9197160c4b91bd48d5a463583049c0fcc405b6f0f7075aa0c7 e2fsprogs-1.42.13.tar.xz
+# From https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.43/sha256sums.asc
+sha256	d027eec0282e169eb55229beefca258c425c9d96f65292e2c004012d5353cd38	e2fsprogs-1.43.tar.xz

+ 12 - 5
package/e2fsprogs/e2fsprogs.mk

@@ -4,17 +4,19 @@
 #
 ################################################################################
 
-E2FSPROGS_VERSION = 1.42.13
+E2FSPROGS_VERSION = 1.43
 E2FSPROGS_SOURCE = e2fsprogs-$(E2FSPROGS_VERSION).tar.xz
 E2FSPROGS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/people/tytso/e2fsprogs/v$(E2FSPROGS_VERSION)
 E2FSPROGS_LICENSE = GPLv2, libuuid BSD-3c, libss and libet MIT-like with advertising clause
-E2FSPROGS_LICENSE_FILES = COPYING lib/uuid/COPYING lib/ss/mit-sipb-copyright.h lib/et/internal.h
+E2FSPROGS_LICENSE_FILES = NOTICE lib/uuid/COPYING lib/ss/mit-sipb-copyright.h lib/et/internal.h
 E2FSPROGS_INSTALL_STAGING = YES
 E2FSPROGS_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-libs
+E2FSPROGS_DEPENDENCIES = host-pkgconf util-linux
 
 # e4defrag doesn't build on older systems like RHEL5.x, and we don't
 # need it on the host anyway.
-HOST_E2FSPROGS_CONF_OPTS += --disable-defrag
+# Disable fuse2fs as well to avoid carrying over deps, and it's unused
+HOST_E2FSPROGS_CONF_OPTS += --disable-defrag --disable-fuse2fs
 
 E2FSPROGS_CONF_OPTS = \
 	$(if $(BR2_STATIC_LIBS),,--enable-elf-shlibs) \
@@ -30,6 +32,13 @@ E2FSPROGS_CONF_OPTS = \
 	--disable-testio-debug \
 	--disable-rpath
 
+ifeq ($(BR2_PACKAGE_E2FSPROGS_FUSE2FS),y)
+E2FSPROGS_CONF_OPTS += --enable-fuse2fs
+E2FSPROGS_DEPENDENCIES += libfuse
+else
+E2FSPROGS_CONF_OPTS += --disable-fuse2fs
+endif
+
 ifeq ($(BR2_nios2),y)
 E2FSPROGS_CONF_ENV += ac_cv_func_fallocate=no
 endif
@@ -40,8 +49,6 @@ ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
 E2FSPROGS_CONF_ENV += LIBS=-lintl
 endif
 
-E2FSPROGS_DEPENDENCIES = host-pkgconf util-linux
-
 E2FSPROGS_MAKE_OPTS = \
 	LDCONFIG=true
 

+ 47 - 0
package/ficl/0001-fix-Makefile.patch

@@ -0,0 +1,47 @@
+fix dependency in Makefiles
+
+there is no longer a sysdep.h file.
+
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
+
+diff --git a/Makefile b/Makefile
+index 976d00a..7f73c44 100644
+--- a/Makefile
++++ b/Makefile
+@@ -29,7 +29,7 @@ libficl.so.$(MAJOR).$(MINOR): $(OBJECTS)
+ 	-o libficl.so.$(MAJOR).$(MINOR) $(OBJECTS)
+ 	ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so
+ 
+-main: main.o ficl.h sysdep.h libficl.so.$(MAJOR).$(MINOR)
++main: main.o ficl.h libficl.so.$(MAJOR).$(MINOR)
+ 	$(CC) $(CFLAGS) $(LDFLAGS) main.o -o main -L. -lficl -lm
+ 	ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so.$(MAJOR)
+ 
+diff --git a/Makefile.ansi b/Makefile.ansi
+index e510fcd..170e6eb 100644
+--- a/Makefile.ansi
++++ b/Makefile.ansi
+@@ -29,7 +29,7 @@ libficl.so.$(MAJOR).$(MINOR): $(OBJECTS)
+ 	-o libficl.so.$(MAJOR).$(MINOR) $(OBJECTS)
+ 	ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so
+ 
+-main: main.o ficl.h sysdep.h libficl.so.$(MAJOR).$(MINOR)
++main: main.o ficl.h libficl.so.$(MAJOR).$(MINOR)
+ 	$(CC) main.o -o main -L. -lficl -lm
+ 	ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so.$(MAJOR)
+ 
+diff --git a/Makefile.linux b/Makefile.linux
+index d447e7e..7f2cdfe 100644
+--- a/Makefile.linux
++++ b/Makefile.linux
+@@ -29,7 +29,7 @@ libficl.so.$(MAJOR).$(MINOR): $(OBJECTS)
+ 	-o libficl.so.$(MAJOR).$(MINOR) $(OBJECTS)
+ 	ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so
+ 
+-main: main.o ficl.h sysdep.h libficl.so.$(MAJOR).$(MINOR)
++main: main.o ficl.h libficl.so.$(MAJOR).$(MINOR)
+ 	$(CC) main.o -o main -L. -lficl -lm
+ 	ln -sf libficl.so.$(MAJOR).$(MINOR) libficl.so.$(MAJOR)
+ 
+-- 
+

+ 9 - 0
package/ficl/Config.in

@@ -0,0 +1,9 @@
+config BR2_PACKAGE_FICL
+	bool "ficl"
+	help
+	  Ficl is a programming language interpreter designed to be embedded
+	  into other systems as a command, macro, and development
+	  prototyping language.
+	  Ficl is an acronym for "Forth Inspired Command Language".
+
+	  http://ficl.sourceforge.net

+ 2 - 0
package/ficl/ficl.hash

@@ -0,0 +1,2 @@
+# Locally computed:
+sha256  4daf74f3d3d6f8b86ea7cb47bc24931d50b4809b50ba34ca32e0ca1e972bd3a3  ficl-4.1.0.tar.gz

+ 59 - 0
package/ficl/ficl.mk

@@ -0,0 +1,59 @@
+################################################################################
+#
+# ficl
+#
+################################################################################
+
+FICL_VERSION_MAJOR = 4.1
+FICL_VERSION = $(FICL_VERSION_MAJOR).0
+FICL_SITE = http://downloads.sourceforge.net/project/ficl/ficl-all/ficl$(FICL_VERSION_MAJOR)
+FICL_LICENSE = BSD-2c
+FICL_LICENSE_FILES = ReadMe.txt
+FICL_INSTALL_STAGING = YES
+
+ifeq ($(BR2_STATIC_LIBS),y)
+FICL_BUILD_TARGETS += ficl
+define FICL_INSTALL_STATIC_BIN
+	$(INSTALL) -D -m 0755 $(@D)/ficl $(TARGET_DIR)/usr/bin/ficl
+endef
+endif
+
+ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
+FICL_BUILD_TARGETS += libficl.a
+define FICL_INSTALL_STATIC_LIB
+	$(INSTALL) -D -m 0644 $(@D)/libficl.a $(STAGING_DIR)/usr/lib/libficl.a
+endef
+endif
+
+ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
+FICL_BUILD_TARGETS += main libficl.so.$(FICL_VERSION)
+define FICL_INSTALL_SHARED_BIN
+	$(INSTALL) -D -m 0755 $(@D)/main $(TARGET_DIR)/usr/bin/ficl
+endef
+define FICL_INSTALL_SHARED_LIB
+	$(INSTALL) -D -m 0755 $(@D)/libficl.so.$(FICL_VERSION) $(1)/usr/lib/libficl.so.$(FICL_VERSION)
+	ln -sf libficl.so.$(FICL_VERSION) $(1)/usr/lib/libficl.so.4
+	ln -sf libficl.so.$(FICL_VERSION) $(1)/usr/lib/libficl.so
+endef
+endif
+
+define FICL_BUILD_CMDS
+	$(MAKE) -C $(@D) -f Makefile.linux $(TARGET_CONFIGURE_OPTS) \
+		CPPFLAGS="$(TARGET_CPPFLAGS) -I. -Dlinux" $(FICL_BUILD_TARGETS)
+endef
+
+define FICL_INSTALL_STAGING_CMDS
+	$(FICL_INSTALL_STATIC_LIB)
+	$(call FICL_INSTALL_SHARED_LIB,$(STAGING_DIR))
+	$(INSTALL) -D -m 0644 $(@D)/ficl.h $(STAGING_DIR)/usr/include/ficl.h
+	$(INSTALL) -D -m 0644 $(@D)/ficllocal.h $(STAGING_DIR)/usr/include/ficllocal.h
+	$(INSTALL) -D -m 0644 $(@D)/ficlplatform/unix.h $(STAGING_DIR)/usr/include/ficlplatform/unix.h
+endef
+
+define FICL_INSTALL_TARGET_CMDS
+	$(FICL_INSTALL_STATIC_BIN)
+	$(FICL_INSTALL_SHARED_BIN)
+	$(call FICL_INSTALL_SHARED_LIB,$(TARGET_DIR))
+endef
+
+$(eval $(generic-package))

+ 1 - 1
package/file/file.hash

@@ -1,2 +1,2 @@
 # Locally calculated
-sha256	2ef32b4ec936b0ff7b59a021dce56086a716663b6df1138c7ea597d396bf50cf	file-5.26.tar.gz
+sha256	c2e7d509b1167c4915901ecd257ee924d229a348bf988df6d1934ef0fa34a1a7	file-5.27.tar.gz

+ 1 - 1
package/file/file.mk

@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-FILE_VERSION = 5.26
+FILE_VERSION = 5.27
 FILE_SITE = ftp://ftp.astron.com/pub/file
 FILE_DEPENDENCIES = host-file zlib
 FILE_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99'

+ 1 - 1
package/fmc/fmc.mk

@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-FMC_VERSION = fsl-sdk-v1.5-rc3
+FMC_VERSION = fsl-sdk-v1.8
 FMC_SITE = git://git.freescale.com/ppc/sdk/fmc.git
 FMC_LICENSE = MIT
 FMC_LICENSE_FILES = COPYING

+ 1 - 1
package/fmlib/fmlib.mk

@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-FMLIB_VERSION = fsl-sdk-v1.5-rc3
+FMLIB_VERSION = fsl-sdk-v1.8
 FMLIB_SITE = git://git.freescale.com/ppc/sdk/fmlib.git
 FMLIB_LICENSE = BSD-3c, GPLv2+
 FMLIB_LICENSE_FILES = COPYING

+ 153 - 0
package/gcc/4.8.5/130-fix_build_with_gcc-6.patch

@@ -0,0 +1,153 @@
+From 1e5f1089dec3af328fd03125d6778f666d0bd4e4 Mon Sep 17 00:00:00 2001
+From: edlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Thu, 25 Feb 2016 15:33:50 +0000
+Subject: [PATCH 1/1] 2016-02-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+        Backported from mainline
+        2016-02-19  Jakub Jelinek  <jakub@redhat.com>
+                    Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+        * Make-lang.in: Invoke gperf with -L C++.
+        * cfns.gperf: Remove prototypes for hash and libc_name_p
+        inlines.
+        * cfns.h: Regenerated.
+        * except.c (nothrow_libfn_p): Adjust.
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@233720 138bc75d-0d04-0410-961f-82ee72b054a4
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ gcc/cp/Make-lang.in |    2 +-
+ gcc/cp/cfns.gperf   |   10 ++--------
+ gcc/cp/cfns.h       |   41 ++++++++++++++---------------------------
+ gcc/cp/except.c     |    3 ++-
+ 5 files changed, 31 insertions(+), 37 deletions(-)
+
+diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
+index e98beb1..b09fb02 100644
+--- a/gcc/cp/Make-lang.in
++++ b/gcc/cp/Make-lang.in
+@@ -111,7 +111,7 @@ else
+ # deleting the $(srcdir)/cp/cfns.h file.
+ $(srcdir)/cp/cfns.h:
+ endif
+-	gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
++	gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \
+ 		$(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h
+ 
+ #
+diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
+index 68acd3d..214ecf6 100644
+--- a/gcc/cp/cfns.gperf
++++ b/gcc/cp/cfns.gperf
+@@ -1,3 +1,5 @@
++%language=C++
++%define class-name libc_name
+ %{
+ /* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ 
+@@ -16,14 +18,6 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ %}
+ %%
+ # The standard C library functions, for feeding to gperf; the result is used
+diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
+index 1c6665d..596f413 100644
+--- a/gcc/cp/cfns.h
++++ b/gcc/cp/cfns.h
+@@ -1,5 +1,5 @@
+-/* ANSI-C code produced by gperf version 3.0.3 */
+-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf  */
++/* C++ code produced by gperf version 3.0.4 */
++/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf  */
+ 
+ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+       && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+@@ -28,7 +28,7 @@
+ #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+ #endif
+ 
+-#line 1 "cfns.gperf"
++#line 3 "cfns.gperf"
+ 
+ /* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ 
+@@ -47,25 +47,18 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ /* maximum key range = 391, duplicates = 0 */
+ 
+-#ifdef __GNUC__
+-__inline
+-#else
+-#ifdef __cplusplus
+-inline
+-#endif
+-#endif
+-static unsigned int
+-hash (register const char *str, register unsigned int len)
++class libc_name
++{
++private:
++  static inline unsigned int hash (const char *str, unsigned int len);
++public:
++  static const char *libc_name_p (const char *str, unsigned int len);
++};
++
++inline unsigned int
++libc_name::hash (register const char *str, register unsigned int len)
+ {
+   static const unsigned short asso_values[] =
+     {
+@@ -122,14 +115,8 @@ hash (register const char *str, register unsigned int len)
+   return hval + asso_values[(unsigned char)str[len - 1]];
+ }
+ 
+-#ifdef __GNUC__
+-__inline
+-#ifdef __GNUC_STDC_INLINE__
+-__attribute__ ((__gnu_inline__))
+-#endif
+-#endif
+ const char *
+-libc_name_p (register const char *str, register unsigned int len)
++libc_name::libc_name_p (register const char *str, register unsigned int len)
+ {
+   enum
+     {
+diff --git a/gcc/cp/except.c b/gcc/cp/except.c
+index 3ff1ce6..2f2e396 100644
+--- a/gcc/cp/except.c
++++ b/gcc/cp/except.c
+@@ -1040,7 +1040,8 @@ nothrow_libfn_p (const_tree fn)
+      unless the system headers are playing rename tricks, and if
+      they are, we don't want to be confused by them.  */
+   id = DECL_NAME (fn);
+-  return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
++  return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id),
++				   IDENTIFIER_LENGTH (id));
+ }
+ 
+ /* Returns nonzero if an exception of type FROM will be caught by a
+-- 
+1.7.1

+ 153 - 0
package/gcc/4.9.3/130-fix_build_with_gcc-6.patch

@@ -0,0 +1,153 @@
+From 1e5f1089dec3af328fd03125d6778f666d0bd4e4 Mon Sep 17 00:00:00 2001
+From: edlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Thu, 25 Feb 2016 15:33:50 +0000
+Subject: [PATCH 1/1] 2016-02-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+        Backported from mainline
+        2016-02-19  Jakub Jelinek  <jakub@redhat.com>
+                    Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+        * Make-lang.in: Invoke gperf with -L C++.
+        * cfns.gperf: Remove prototypes for hash and libc_name_p
+        inlines.
+        * cfns.h: Regenerated.
+        * except.c (nothrow_libfn_p): Adjust.
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@233720 138bc75d-0d04-0410-961f-82ee72b054a4
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ gcc/cp/Make-lang.in |    2 +-
+ gcc/cp/cfns.gperf   |   10 ++--------
+ gcc/cp/cfns.h       |   41 ++++++++++++++---------------------------
+ gcc/cp/except.c     |    3 ++-
+ 5 files changed, 31 insertions(+), 37 deletions(-)
+
+diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
+index e98beb1..b09fb02 100644
+--- a/gcc/cp/Make-lang.in
++++ b/gcc/cp/Make-lang.in
+@@ -111,7 +111,7 @@ else
+ # deleting the $(srcdir)/cp/cfns.h file.
+ $(srcdir)/cp/cfns.h:
+ endif
+-	gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
++	gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \
+ 		$(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h
+ 
+ #
+diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
+index 68acd3d..214ecf6 100644
+--- a/gcc/cp/cfns.gperf
++++ b/gcc/cp/cfns.gperf
+@@ -1,3 +1,5 @@
++%language=C++
++%define class-name libc_name
+ %{
+ /* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ 
+@@ -16,14 +18,6 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ %}
+ %%
+ # The standard C library functions, for feeding to gperf; the result is used
+diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
+index 1c6665d..596f413 100644
+--- a/gcc/cp/cfns.h
++++ b/gcc/cp/cfns.h
+@@ -1,5 +1,5 @@
+-/* ANSI-C code produced by gperf version 3.0.3 */
+-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf  */
++/* C++ code produced by gperf version 3.0.4 */
++/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf  */
+ 
+ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+       && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+@@ -28,7 +28,7 @@
+ #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+ #endif
+ 
+-#line 1 "cfns.gperf"
++#line 3 "cfns.gperf"
+ 
+ /* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ 
+@@ -47,25 +47,18 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ /* maximum key range = 391, duplicates = 0 */
+ 
+-#ifdef __GNUC__
+-__inline
+-#else
+-#ifdef __cplusplus
+-inline
+-#endif
+-#endif
+-static unsigned int
+-hash (register const char *str, register unsigned int len)
++class libc_name
++{
++private:
++  static inline unsigned int hash (const char *str, unsigned int len);
++public:
++  static const char *libc_name_p (const char *str, unsigned int len);
++};
++
++inline unsigned int
++libc_name::hash (register const char *str, register unsigned int len)
+ {
+   static const unsigned short asso_values[] =
+     {
+@@ -122,14 +115,8 @@ hash (register const char *str, register unsigned int len)
+   return hval + asso_values[(unsigned char)str[len - 1]];
+ }
+ 
+-#ifdef __GNUC__
+-__inline
+-#ifdef __GNUC_STDC_INLINE__
+-__attribute__ ((__gnu_inline__))
+-#endif
+-#endif
+ const char *
+-libc_name_p (register const char *str, register unsigned int len)
++libc_name::libc_name_p (register const char *str, register unsigned int len)
+ {
+   enum
+     {
+diff --git a/gcc/cp/except.c b/gcc/cp/except.c
+index 3ff1ce6..2f2e396 100644
+--- a/gcc/cp/except.c
++++ b/gcc/cp/except.c
+@@ -1040,7 +1040,8 @@ nothrow_libfn_p (const_tree fn)
+      unless the system headers are playing rename tricks, and if
+      they are, we don't want to be confused by them.  */
+   id = DECL_NAME (fn);
+-  return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
++  return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id),
++				   IDENTIFIER_LENGTH (id));
+ }
+ 
+ /* Returns nonzero if an exception of type FROM will be caught by a
+-- 
+1.7.1

+ 153 - 0
package/gcc/5.3.0/130-fix_build_with_gcc-6.patch

@@ -0,0 +1,153 @@
+From 1e5f1089dec3af328fd03125d6778f666d0bd4e4 Mon Sep 17 00:00:00 2001
+From: edlinger <edlinger@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Thu, 25 Feb 2016 15:33:50 +0000
+Subject: [PATCH 1/1] 2016-02-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+        Backported from mainline
+        2016-02-19  Jakub Jelinek  <jakub@redhat.com>
+                    Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+        * Make-lang.in: Invoke gperf with -L C++.
+        * cfns.gperf: Remove prototypes for hash and libc_name_p
+        inlines.
+        * cfns.h: Regenerated.
+        * except.c (nothrow_libfn_p): Adjust.
+
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@233720 138bc75d-0d04-0410-961f-82ee72b054a4
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+---
+ gcc/cp/Make-lang.in |    2 +-
+ gcc/cp/cfns.gperf   |   10 ++--------
+ gcc/cp/cfns.h       |   41 ++++++++++++++---------------------------
+ gcc/cp/except.c     |    3 ++-
+ 5 files changed, 31 insertions(+), 37 deletions(-)
+
+diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
+index e98beb1..b09fb02 100644
+--- a/gcc/cp/Make-lang.in
++++ b/gcc/cp/Make-lang.in
+@@ -111,7 +111,7 @@ else
+ # deleting the $(srcdir)/cp/cfns.h file.
+ $(srcdir)/cp/cfns.h:
+ endif
+-	gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L ANSI-C \
++	gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \
+ 		$(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h
+ 
+ #
+diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
+index 68acd3d..214ecf6 100644
+--- a/gcc/cp/cfns.gperf
++++ b/gcc/cp/cfns.gperf
+@@ -1,3 +1,5 @@
++%language=C++
++%define class-name libc_name
+ %{
+ /* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ 
+@@ -16,14 +18,6 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ %}
+ %%
+ # The standard C library functions, for feeding to gperf; the result is used
+diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
+index 1c6665d..596f413 100644
+--- a/gcc/cp/cfns.h
++++ b/gcc/cp/cfns.h
+@@ -1,5 +1,5 @@
+-/* ANSI-C code produced by gperf version 3.0.3 */
+-/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L ANSI-C cfns.gperf  */
++/* C++ code produced by gperf version 3.0.4 */
++/* Command-line: gperf -o -C -E -k '1-6,$' -j1 -D -N libc_name_p -L C++ --output-file cfns.h cfns.gperf  */
+ 
+ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+       && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+@@ -28,7 +28,7 @@
+ #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
+ #endif
+ 
+-#line 1 "cfns.gperf"
++#line 3 "cfns.gperf"
+ 
+ /* Copyright (C) 2000-2015 Free Software Foundation, Inc.
+ 
+@@ -47,25 +47,18 @@ for more details.
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+-#ifdef __GNUC__
+-__inline
+-#endif
+-static unsigned int hash (const char *, unsigned int);
+-#ifdef __GNUC__
+-__inline
+-#endif
+-const char * libc_name_p (const char *, unsigned int);
+ /* maximum key range = 391, duplicates = 0 */
+ 
+-#ifdef __GNUC__
+-__inline
+-#else
+-#ifdef __cplusplus
+-inline
+-#endif
+-#endif
+-static unsigned int
+-hash (register const char *str, register unsigned int len)
++class libc_name
++{
++private:
++  static inline unsigned int hash (const char *str, unsigned int len);
++public:
++  static const char *libc_name_p (const char *str, unsigned int len);
++};
++
++inline unsigned int
++libc_name::hash (register const char *str, register unsigned int len)
+ {
+   static const unsigned short asso_values[] =
+     {
+@@ -122,14 +115,8 @@ hash (register const char *str, register unsigned int len)
+   return hval + asso_values[(unsigned char)str[len - 1]];
+ }
+ 
+-#ifdef __GNUC__
+-__inline
+-#ifdef __GNUC_STDC_INLINE__
+-__attribute__ ((__gnu_inline__))
+-#endif
+-#endif
+ const char *
+-libc_name_p (register const char *str, register unsigned int len)
++libc_name::libc_name_p (register const char *str, register unsigned int len)
+ {
+   enum
+     {
+diff --git a/gcc/cp/except.c b/gcc/cp/except.c
+index 3ff1ce6..2f2e396 100644
+--- a/gcc/cp/except.c
++++ b/gcc/cp/except.c
+@@ -1040,7 +1040,8 @@ nothrow_libfn_p (const_tree fn)
+      unless the system headers are playing rename tricks, and if
+      they are, we don't want to be confused by them.  */
+   id = DECL_NAME (fn);
+-  return !!libc_name_p (IDENTIFIER_POINTER (id), IDENTIFIER_LENGTH (id));
++  return !!libc_name::libc_name_p (IDENTIFIER_POINTER (id),
++				   IDENTIFIER_LENGTH (id));
+ }
+ 
+ /* Returns nonzero if an exception of type FROM will be caught by a
+-- 
+1.7.1

部分文件因为文件数量过多而无法显示