Quellcode durchsuchen

Merge branch 'next'

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Peter Korsgaard vor 9 Jahren
Ursprung
Commit
577021e81b
100 geänderte Dateien mit 1731 neuen und 2497 gelöschten Zeilen
  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"
 	string "zcat command"
 	default "gzip -d -c"
 	default "gzip -d -c"
 	help
 	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"
 	  Default is "gzip -d -c"
 	  Other possible values include "gunzip -c" or "zcat".
 	  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 BR2_DEFCONFIG_FROM_ENV if BR2_DEFCONFIG_FROM_ENV != ""
 	default "$(CONFIG_DIR)/defconfig"
 	default "$(CONFIG_DIR)/defconfig"
 	help
 	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
 config BR2_DL_DIR
 	string "Download dir"
 	string "Download dir"
@@ -171,7 +171,8 @@ config BR2_DL_DIR
 	help
 	help
 	  Directory to store all the source files that we need to fetch.
 	  Directory to store all the source files that we need to fetch.
 	  If the Linux shell environment has defined the BR2_DL_DIR
 	  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
 	  The default is $(TOPDIR)/dl
 
 
@@ -179,9 +180,9 @@ config BR2_HOST_DIR
 	string "Host dir"
 	string "Host dir"
 	default "$(BASE_DIR)/host"
 	default "$(BASE_DIR)/host"
 	help
 	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
 	  The default is $(BASE_DIR)/host
 
 
@@ -191,9 +192,9 @@ config BR2_PRIMARY_SITE
 	string "Primary download site"
 	string "Primary download site"
 	default ""
 	default ""
 	help
 	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:
 	  Valid URIs are:
 	    - URIs recognized by $(WGET)
 	    - URIs recognized by $(WGET)
 	    - local URIs of the form file://absolutepath
 	    - 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
 	  If this option is enabled, downloads will only be attempted
 	  from the primary download site. Other locations, like the
 	  from the primary download site. Other locations, like the
 	  package's official download location or the backup download
 	  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.
 	  locations disappear.
 
 
 if !BR2_PRIMARY_SITE_ONLY
 if !BR2_PRIMARY_SITE_ONLY
@@ -219,32 +220,36 @@ config BR2_BACKUP_SITE
 	string "Backup download site"
 	string "Backup download site"
 	default "http://sources.buildroot.net"
 	default "http://sources.buildroot.net"
 	help
 	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
 config BR2_KERNEL_MIRROR
 	string "Kernel.org mirror"
 	string "Kernel.org mirror"
-	default "https://www.kernel.org/pub"
+	default "https://cdn.kernel.org/pub"
 	help
 	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://www.XX.kernel.org/pub (XX = country code)
 	     http://mirror.aarnet.edu.au/pub/ftp.kernel.org
 	     http://mirror.aarnet.edu.au/pub/ftp.kernel.org
 
 
 config BR2_GNU_MIRROR
 config BR2_GNU_MIRROR
 	string "GNU Software mirror"
 	string "GNU Software mirror"
-	default "http://ftp.gnu.org/pub/gnu"
+	default "http://ftpmirror.gnu.org"
 	help
 	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://ftp.gnu.org/pub/gnu
 	     http://mirror.aarnet.edu.au/pub/gnu
 	     http://mirror.aarnet.edu.au/pub/gnu
@@ -261,8 +266,8 @@ config BR2_CPAN_MIRROR
 	string "CPAN mirror (Perl packages)"
 	string "CPAN mirror (Perl packages)"
 	default "http://cpan.metacpan.org"
 	default "http://cpan.metacpan.org"
 	help
 	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.
 	  around the world. This option allows you to select a mirror.
 
 
 	  The list of mirrors is available at:
 	  The list of mirrors is available at:
@@ -276,24 +281,22 @@ config BR2_JLEVEL
 	int "Number of jobs to run simultaneously (0 for auto)"
 	int "Number of jobs to run simultaneously (0 for auto)"
 	default "0"
 	default "0"
 	help
 	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
 config BR2_CCACHE
 	bool "Enable compiler cache"
 	bool "Enable compiler cache"
 	help
 	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.
 	  $HOME/.buildroot-ccache.
 
 
 	  Note that Buildroot does not try to invalidate the cache
 	  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
 if BR2_CCACHE
 
 
@@ -306,16 +309,19 @@ config BR2_CCACHE_DIR
 config BR2_CCACHE_INITIAL_SETUP
 config BR2_CCACHE_INITIAL_SETUP
 	string "Compiler cache initial setup"
 	string "Compiler cache initial setup"
 	help
 	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
 config BR2_CCACHE_USE_BASEDIR
 	bool "Use relative paths"
 	bool "Use relative paths"
@@ -324,25 +330,25 @@ config BR2_CCACHE_USE_BASEDIR
 	  Allow ccache to convert absolute paths within the output
 	  Allow ccache to convert absolute paths within the output
 	  directory into relative paths.
 	  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
 	  To improve cache performance, set this option to y. This
 	  allows ccache to rewrite absolute paths within the output
 	  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
 	  subsequently move it to a different location, this will lead
 	  to cache misses.
 	  to cache misses.
 
 
 	  This option has as a result that the debug information in the
 	  This option has as a result that the debug information in the
 	  object files also has only relative paths. Therefore, make
 	  object files also has only relative paths. Therefore, make
 	  sure you cd to the build directory before starting gdb. See
 	  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
 endif
 
 
@@ -396,11 +402,11 @@ choice
 config BR2_DEBUG_1
 config BR2_DEBUG_1
 	bool "debug level 1"
 	bool "debug level 1"
 	help
 	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
 config BR2_DEBUG_2
 	bool "debug level 2"
 	bool "debug level 2"
@@ -410,9 +416,9 @@ config BR2_DEBUG_2
 config BR2_DEBUG_3
 config BR2_DEBUG_3
 	bool "debug level 3"
 	bool "debug level 3"
 	help
 	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
 endchoice
 endif
 endif
 
 
@@ -425,16 +431,15 @@ config BR2_STRIP_strip
 	depends on !BR2_PACKAGE_HOST_ELF2FLT
 	depends on !BR2_PACKAGE_HOST_ELF2FLT
 	help
 	help
 	  Binaries and libraries in the target filesystem will be
 	  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
 config BR2_STRIP_none
 	bool "none"
 	bool "none"
 	help
 	help
-	  Do not strip binaries and libraries in the target
-	  filesystem.
+	  Do not strip binaries and libraries in the target filesystem.
 endchoice
 endchoice
 
 
 config BR2_STRIP_EXCLUDE_FILES
 config BR2_STRIP_EXCLUDE_FILES
@@ -442,19 +447,19 @@ config BR2_STRIP_EXCLUDE_FILES
 	depends on !BR2_STRIP_none
 	depends on !BR2_STRIP_none
 	default ""
 	default ""
 	help
 	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
 config BR2_STRIP_EXCLUDE_DIRS
 	string "directories that should be skipped when stripping"
 	string "directories that should be skipped when stripping"
 	depends on !BR2_STRIP_none
 	depends on !BR2_STRIP_none
 	default ""
 	default ""
 	help
 	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
 choice
 	prompt "gcc optimization level"
 	prompt "gcc optimization level"
@@ -470,54 +475,67 @@ config BR2_OPTIMIZE_0
 config BR2_OPTIMIZE_1
 config BR2_OPTIMIZE_1
 	bool "optimization level 1"
 	bool "optimization level 1"
 	help
 	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
 	  flags: -fdefer-pop -fdelayed-branch -fguess-branch-probability
 	  -fcprop-registers -floop-optimize -fif-conversion
 	  -fcprop-registers -floop-optimize -fif-conversion
 	  -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
 	  -fif-conversion2 -ftree-ccp -ftree-dce -ftree-dominator-opts
 	  -ftree-dse -ftree-ter -ftree-lrs -ftree-sra -ftree-copyrename
 	  -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
 config BR2_OPTIMIZE_2
 	bool "optimization level 2"
 	bool "optimization level 2"
 	help
 	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
 	  -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.
 	  that use computed gotos.
 
 
 config BR2_OPTIMIZE_3
 config BR2_OPTIMIZE_3
 	bool "optimization level 3"
 	bool "optimization level 3"
 	help
 	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
 config BR2_OPTIMIZE_S
 	bool "optimize for size"
 	bool "optimize for size"
 	help
 	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
 	  -ftree-vect-loop-version
 
 
 endchoice
 endchoice
@@ -529,13 +547,13 @@ config BR2_GOOGLE_BREAKPAD_ENABLE
 	depends on BR2_TOOLCHAIN_USES_GLIBC
 	depends on BR2_TOOLCHAIN_USES_GLIBC
 	depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
 	depends on BR2_PACKAGE_GOOGLE_BREAKPAD_ARCH_SUPPORTS
 	help
 	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
 if BR2_GOOGLE_BREAKPAD_ENABLE
 
 
@@ -563,12 +581,13 @@ choice
 	  Enable stack smashing protection support using GCC's
 	  Enable stack smashing protection support using GCC's
 	  -fstack-protector option family.
 	  -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.
 	  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
 config BR2_SSP_NONE
 	bool "None"
 	bool "None"
@@ -616,20 +635,19 @@ choice
 	help
 	help
 	  Select the type of libraries you want to use on the target.
 	  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
 config BR2_STATIC_LIBS
 	bool "static only"
 	bool "static only"
 	help
 	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
 config BR2_SHARED_LIBS
 	bool "shared only"
 	bool "shared only"
@@ -655,43 +673,45 @@ config BR2_PACKAGE_OVERRIDE_FILE
 	default "$(CONFIG_DIR)/local.mk"
 	default "$(CONFIG_DIR)/local.mk"
 	help
 	help
 	  A package override file is a short makefile that contains
 	  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
 config BR2_GLOBAL_PATCH_DIR
 	string "global patch directories"
 	string "global patch directories"
 	help
 	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
 	  Then for every directory - <global-patch-dir> - that exists in
 	  BR2_GLOBAL_PATCH_DIR, if the directory
 	  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"
 menu "Advanced"
 
 
 config BR2_COMPILER_PARANOID_UNSAFE_PATH
 config BR2_COMPILER_PARANOID_UNSAFE_PATH
 	bool "paranoid check of library/header paths"
 	bool "paranoid check of library/header paths"
+	default y
 	help
 	help
 	  By default, when this option is disabled, when the Buildroot
 	  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
 	  Note that this mechanism is available for both the internal
 	  toolchain (through the toolchain wrapper and binutils patches)
 	  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 "----------------------------------------------------"
 comment "----------------------------------------------------"
 endif
 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"
 comment "Legacy options removed in 2016.05"
 
 
@@ -913,11 +938,9 @@ config BR2_PACKAGE_KODI_PVR_ADDONS
 config BR2_BINUTILS_VERSION_2_23_2
 config BR2_BINUTILS_VERSION_2_23_2
 	bool "binutils 2.23 option renamed"
 	bool "binutils 2.23 option renamed"
 	select BR2_LEGACY
 	select BR2_LEGACY
-	select BR2_BINUTILS_VERSION_2_23_X
 	help
 	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
 config BR2_BINUTILS_VERSION_2_24
 	bool "binutils 2.24 option renamed"
 	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
 #!/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"
 GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
 
 
 rm -rf "${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
 #!/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"
 GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
 
 
 rm -rf "${GENIMAGE_TMP}"
 rm -rf "${GENIMAGE_TMP}"

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

@@ -1,6 +1,7 @@
 #!/usr/bin/env bash
 #!/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"
 GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
 
 
 rm -rf "${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/gummiboot/Config.in"
 source "boot/lpc32xxcdl/Config.in"
 source "boot/lpc32xxcdl/Config.in"
 source "boot/mxs-bootlets/Config.in"
 source "boot/mxs-bootlets/Config.in"
+source "boot/s500-bootloader/Config.in"
 source "boot/syslinux/Config.in"
 source "boot/syslinux/Config.in"
 source "boot/uboot/Config.in"
 source "boot/uboot/Config.in"
 source "boot/xloader/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
 	  Select the specific Barebox version you want to use
 
 
 config BR2_TARGET_BAREBOX_LATEST_VERSION
 config BR2_TARGET_BAREBOX_LATEST_VERSION
-	bool "2016.04.0"
+	bool "2016.05.0"
 
 
 config BR2_TARGET_BAREBOX_CUSTOM_VERSION
 config BR2_TARGET_BAREBOX_CUSTOM_VERSION
 	bool "Custom version"
 	bool "Custom version"
@@ -40,7 +40,7 @@ endif
 
 
 config BR2_TARGET_BAREBOX_VERSION
 config BR2_TARGET_BAREBOX_VERSION
 	string
 	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 BR2_TARGET_BAREBOX_CUSTOM_VERSION_VALUE if BR2_TARGET_BAREBOX_CUSTOM_VERSION
 	default "custom"	if BR2_TARGET_BAREBOX_CUSTOM_TARBALL
 	default "custom"	if BR2_TARGET_BAREBOX_CUSTOM_TARBALL
 	default BR2_TARGET_BAREBOX_CUSTOM_GIT_VERSION if BR2_TARGET_BAREBOX_CUSTOM_GIT
 	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
 # 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
 	  Select the specific U-Boot version you want to use
 
 
 config BR2_TARGET_UBOOT_LATEST_VERSION
 config BR2_TARGET_UBOOT_LATEST_VERSION
-	bool "2016.03"
+	bool "2016.05"
 
 
 config BR2_TARGET_UBOOT_CUSTOM_VERSION
 config BR2_TARGET_UBOOT_CUSTOM_VERSION
 	bool "Custom version"
 	bool "Custom version"
@@ -86,7 +86,7 @@ endif
 
 
 config BR2_TARGET_UBOOT_VERSION
 config BR2_TARGET_UBOOT_VERSION
 	string
 	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 \
 	default BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE \
 		if BR2_TARGET_UBOOT_CUSTOM_VERSION
 		if BR2_TARGET_UBOOT_CUSTOM_VERSION
 	default "custom"	if BR2_TARGET_UBOOT_CUSTOM_TARBALL
 	default "custom"	if BR2_TARGET_UBOOT_CUSTOM_TARBALL
@@ -348,9 +348,13 @@ menuconfig BR2_TARGET_UBOOT_ENVIMAGE
 if BR2_TARGET_UBOOT_ENVIMAGE
 if BR2_TARGET_UBOOT_ENVIMAGE
 
 
 config BR2_TARGET_UBOOT_ENVIMAGE_SOURCE
 config BR2_TARGET_UBOOT_ENVIMAGE_SOURCE
-	string "Source file for environment"
+	string "Source files for environment"
 	help
 	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
 config BR2_TARGET_UBOOT_ENVIMAGE_SIZE
 	string "Size of environment"
 	string "Size of environment"

+ 1 - 1
boot/uboot/uboot.hash

@@ -1,2 +1,2 @@
 # Locally computed:
 # 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),
 	$(if $(BR2_TARGET_UBOOT_SPL),
 		cp -dpf $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) $(BINARIES_DIR)/)
 		cp -dpf $(@D)/$(call qstrip,$(BR2_TARGET_UBOOT_SPL_NAME)) $(BINARIES_DIR)/)
 	$(if $(BR2_TARGET_UBOOT_ENVIMAGE),
 	$(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
 endef
 
 
 define UBOOT_INSTALL_OMAP_IFT_IMAGE
 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_GIT=y
 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git"
 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_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_USE_CUSTOM_CONFIG=y
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/beaglebone/linux-3.12.config"
 BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/beaglebone/linux-3.12.config"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y

+ 1 - 1
configs/calao_qil_a9260_defconfig

@@ -1,6 +1,6 @@
 BR2_arm=y
 BR2_arm=y
 BR2_arm926t=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"
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS1"
 # Linux headers same as kernel, a 3.4 series
 # Linux headers same as kernel, a 3.4 series
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_4=y
 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
 # bootloaders
 BR2_TARGET_AT91BOOTSTRAP=y
 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_BOARD="tny_a9g20_lpw"
 BR2_TARGET_AT91BOOTSTRAP_NANDFLASH=y
 BR2_TARGET_AT91BOOTSTRAP_NANDFLASH=y
 BR2_TARGET_BAREBOX=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_PACKAGE_HOST_SAM_BA=y
 BR2_TARGET_ROOTFS_UBIFS=y
 BR2_TARGET_ROOTFS_UBIFS=y
 BR2_TARGET_AT91BOOTSTRAP=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_BOARD="usb_a9263"
 BR2_TARGET_AT91BOOTSTRAP_NANDFLASH=y
 BR2_TARGET_AT91BOOTSTRAP_NANDFLASH=y
 BR2_TARGET_BAREBOX=y
 BR2_TARGET_BAREBOX=y

+ 1 - 1
configs/calao_usb_a9g20_lpw_defconfig

@@ -2,7 +2,7 @@ BR2_arm=y
 BR2_arm926t=y
 BR2_arm926t=y
 # Linux headers same as kernel, a 3.10 series
 # Linux headers same as kernel, a 3.10 series
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y
 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_PACKAGE_HOST_SAM_BA=y
 BR2_TARGET_ROOTFS_UBIFS=y
 BR2_TARGET_ROOTFS_UBIFS=y
 BR2_TARGET_AT91BOOTSTRAP=y
 BR2_TARGET_AT91BOOTSTRAP=y

+ 4 - 4
configs/cubieboard2_defconfig

@@ -1,8 +1,8 @@
 BR2_arm=y
 BR2_arm=y
 BR2_cortex_a7=y
 BR2_cortex_a7=y
 BR2_ARM_FPU_NEON_VFPV4=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_HOSTNAME="Cubieboard2"
 BR2_TARGET_GENERIC_ISSUE="Welcome to Cubieboard2!"
 BR2_TARGET_GENERIC_ISSUE="Welcome to Cubieboard2!"
 BR2_TARGET_GENERIC_GETTY_PORT="ttyS0"
 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_ROOTFS_POST_IMAGE_SCRIPT="board/cubietech/cubieboard2/post-image.sh"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=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_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun7i-a20-cubieboard2"
 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=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 BR2_TARGET_UBOOT_CUSTOM_VERSION=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_BOARD_DEFCONFIG="Cubieboard2"
 BR2_TARGET_UBOOT_NEEDS_DTC=y
 BR2_TARGET_UBOOT_NEEDS_DTC=y
 BR2_TARGET_UBOOT_SPL=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_arm=y
 BR2_cortex_a8=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
 # System
 BR2_TARGET_GENERIC_GETTY_PORT="ttymxc0"
 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
 # Filesystem
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imx53loco/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
 
 
 # Bootloader
 # Bootloader
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BOARDNAME="mx53loco"
 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
 BR2_TARGET_UBOOT_FORMAT_IMX=y
 
 
 # Kernel
 # Kernel
 BR2_LINUX_KERNEL=y
 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=y
 BR2_TARGET_UBOOT_BOARDNAME="A20-OLinuXino-Lime"
 BR2_TARGET_UBOOT_BOARDNAME="A20-OLinuXino-Lime"
 BR2_TARGET_UBOOT_CUSTOM_VERSION=y
 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_NEEDS_DTC=y
 BR2_TARGET_UBOOT_FORMAT_BIN=y
 BR2_TARGET_UBOOT_FORMAT_BIN=y
 BR2_TARGET_UBOOT_SPL=y
 BR2_TARGET_UBOOT_SPL=y

+ 3 - 3
configs/orangepipc_defconfig

@@ -1,14 +1,14 @@
 BR2_arm=y
 BR2_arm=y
 BR2_cortex_a7=y
 BR2_cortex_a7=y
 BR2_ARM_FPU_VFPV4=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_HOSTNAME="OrangePi_PC"
 BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Orange Pi 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_BUILD_SCRIPT="board/orangepi/orangepipc/post-build.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/orangepi/orangepipc/post-image.sh"
 BR2_ROOTFS_POST_IMAGE_SCRIPT="board/orangepi/orangepipc/post-image.sh"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=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_DEFCONFIG="sunxi"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="sun8i-h3-orangepi-plus"
 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=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 BR2_TARGET_UBOOT_CUSTOM_VERSION=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_BOARD_DEFCONFIG="orangepi_pc"
 BR2_TARGET_UBOOT_NEEDS_DTC=y
 BR2_TARGET_UBOOT_NEEDS_DTC=y
 BR2_TARGET_UBOOT_FORMAT_CUSTOM=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=y
 BR2_TARGET_ROOTFS_JFFS2_NANDFLASH_128K=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
 # bootloader
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sheevaplug"
 BR2_TARGET_UBOOT_BOARD_DEFCONFIG="sheevaplug"
 BR2_TARGET_UBOOT_CUSTOM_VERSION=y
 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_FORMAT_KWB=y
 # BR2_TARGET_UBOOT_NETWORK is not set
 # BR2_TARGET_UBOOT_NETWORK is not set
 
 
 # Kernel
 # Kernel
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=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_DEFCONFIG="mvebu_v5"
 BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
 BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
 BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000"
 BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x8000"

+ 1 - 1
configs/stm32f429_disco_defconfig

@@ -1,6 +1,6 @@
 BR2_arm=y
 BR2_arm=y
 BR2_cortex_m4=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_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5=y
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/stm32-post-build.sh"
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/stm32-post-build.sh"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL=y

+ 1 - 1
configs/stm32f469_disco_defconfig

@@ -1,6 +1,6 @@
 BR2_arm=y
 BR2_arm=y
 BR2_cortex_m4=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_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_5=y
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/stm32-post-build.sh"
 BR2_ROOTFS_POST_BUILD_SCRIPT="board/stmicroelectronics/stm32-post-build.sh"
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL=y

+ 1 - 1
configs/warpboard_defconfig

@@ -3,7 +3,7 @@ BR2_arm=y
 BR2_cortex_a9=y
 BR2_cortex_a9=y
 
 
 # patches
 # 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
 # Linux headers same as kernel, a 4.0 series
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_0=y
 BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_0=y

+ 2 - 2
linux/Config.in

@@ -27,7 +27,7 @@ choice
 	prompt "Kernel version"
 	prompt "Kernel version"
 
 
 config BR2_LINUX_KERNEL_LATEST_VERSION
 config BR2_LINUX_KERNEL_LATEST_VERSION
-	bool "Latest version (4.5.4)"
+	bool "Latest version (4.6)"
 
 
 config BR2_LINUX_KERNEL_CUSTOM_VERSION
 config BR2_LINUX_KERNEL_CUSTOM_VERSION
 	bool "Custom version"
 	bool "Custom version"
@@ -110,7 +110,7 @@ config BR2_LINUX_KERNEL_CUSTOM_LOCAL_PATH
 
 
 config BR2_LINUX_KERNEL_VERSION
 config BR2_LINUX_KERNEL_VERSION
 	string
 	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 \
 	default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE \
 		if BR2_LINUX_KERNEL_CUSTOM_VERSION
 		if BR2_LINUX_KERNEL_CUSTOM_VERSION
 	default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
 	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
 	# Installing dtc (device tree compiler) as host tool, if selected
 	if grep -q "CONFIG_DTC=y" $(@D)/.config; then 	\
 	if grep -q "CONFIG_DTC=y" $(@D)/.config; then 	\
 		$(INSTALL) -D -m 0755 $(@D)/scripts/dtc/dtc $(HOST_DIR)/usr/bin/linux-dtc ;	\
 		$(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
 	fi
 endef
 endef
 
 

+ 10 - 0
package/Config.in

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

+ 3 - 0
package/Makefile.in

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

+ 0 - 1
package/audit/audit.mk

@@ -46,7 +46,6 @@ define AUDIT_INSTALL_INIT_SYSTEMD
 	ln -fs ../../../../usr/lib/systemd/system/auditd.service \
 	ln -fs ../../../../usr/lib/systemd/system/auditd.service \
 		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/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 \
 	$(INSTALL) -D -m 644 package/audit/audit_tmpfiles.conf \
 		$(TARGET_DIR)/usr/lib/tmpfiles.d/audit.conf
 		$(TARGET_DIR)/usr/lib/tmpfiles.d/audit.conf
 endef
 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
 # 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_SITE = http://downloads.open-mesh.org/batman/releases/batman-adv-$(BATCTL_VERSION)
 BATCTL_LICENSE = GPLv2
 BATCTL_LICENSE = GPLv2
 BATCTL_DEPENDENCIES = libnl host-pkgconf
 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
 	help
 	  Select the version of binutils you wish to use.
 	  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
 	config BR2_BINUTILS_VERSION_2_24_X
 		# supported, but broken on Nios-II and powerpc64le
 		# supported, but broken on Nios-II and powerpc64le
 		depends on !BR2_nios2 && !BR2_powerpc64le
 		depends on !BR2_nios2 && !BR2_powerpc64le
@@ -35,8 +26,7 @@ endchoice
 
 
 config BR2_BINUTILS_VERSION
 config BR2_BINUTILS_VERSION
 	string
 	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.24"		if BR2_BINUTILS_VERSION_2_24_X
 	default "2.25.1"	if BR2_BINUTILS_VERSION_2_25_X
 	default "2.25.1"	if BR2_BINUTILS_VERSION_2_25_X
 	default "2.26"		if BR2_BINUTILS_VERSION_2_26_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.
 Always try to prepend the sysroot prefix to absolute filenames first.
 
 
 http://bugs.gentoo.org/275666
 http://bugs.gentoo.org/275666
 http://sourceware.org/bugzilla/show_bug.cgi?id=10340
 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
 --- a/ld/ldfile.c
 +++ b/ld/ldfile.c
 +++ b/ld/ldfile.c
-@@ -308,18 +308,25 @@
+@@ -335,18 +335,25 @@ ldfile_open_file_search (const char *arch,
       directory first.  */
       directory first.  */
    if (! entry->flags.maybe_archive)
    if (! entry->flags.maybe_archive)
      {
      {
@@ -35,3 +47,6 @@ http://sourceware.org/bugzilla/show_bug.cgi?id=10340
  	return TRUE;
  	return TRUE;
  
  
        if (IS_ABSOLUTE_PATH (entry->filename))
        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
 Patch adapted to binutils 2.23.2 and extended to use
 BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
 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: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
 
 
 Upstream-Status: Inappropriate [distribution: codesourcery]
 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>
     2007-03-20  Joseph Myers  <joseph@codesourcery.com>
     Based on patch by Mark Hatle <mark.hatle@windriver.com>.
     Based on patch by Mark Hatle <mark.hatle@windriver.com>.
     ld/
     ld/
-    * configure.in (--enable-poison-system-directories): New option.
+    * configure.ac (--enable-poison-system-directories): New option.
     * configure, config.in: Regenerate.
     * configure, config.in: Regenerate.
     * ldfile.c (ldfile_add_library_path): If
     * ldfile.c (ldfile_add_library_path): If
     ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
     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: Mark Hatle <mark.hatle@windriver.com>
 Signed-off-by: Scott Garman <scott.a.garman@intel.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
 --- a/ld/config.in
 +++ b/ld/config.in
 +++ b/ld/config.in
-@@ -11,6 +11,9 @@
+@@ -14,6 +14,9 @@
     language is requested. */
     language is requested. */
  #undef ENABLE_NLS
  #undef ENABLE_NLS
  
  
@@ -71,20 +91,20 @@ Index: b/ld/config.in
  /* Additional extension a shared object might have. */
  /* Additional extension a shared object might have. */
  #undef EXTRA_SHLIB_EXTENSION
  #undef EXTRA_SHLIB_EXTENSION
  
  
-Index: b/ld/configure
-===================================================================
+diff --git a/ld/configure b/ld/configure
+index a446283..d1f9504 100755
 --- a/ld/configure
 --- a/ld/configure
 +++ b/ld/configure
 +++ b/ld/configure
-@@ -773,6 +773,7 @@
+@@ -786,6 +786,7 @@ with_lib_path
  enable_targets
  enable_targets
  enable_64_bit_bfd
  enable_64_bit_bfd
  with_sysroot
  with_sysroot
 +enable_poison_system_directories
 +enable_poison_system_directories
  enable_gold
  enable_gold
  enable_got
  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-targets        alternative target configurations
    --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)
    --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)
 +  --enable-poison-system-directories
 +  --enable-poison-system-directories
@@ -92,7 +112,7 @@ Index: b/ld/configure
    --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
    --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
    --enable-got=<type>     GOT handling scheme (target, single, negative,
    --enable-got=<type>     GOT handling scheme (target, single, negative,
                            multigot)
                            multigot)
-@@ -4338,7 +4341,18 @@
+@@ -15491,7 +15494,18 @@ else
  fi
  fi
  
  
  
  
@@ -111,11 +131,11 @@ Index: b/ld/configure
  
  
  # Check whether --enable-got was given.
  # Check whether --enable-got was given.
  if test "${enable_got+set}" = set; then :
  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)
  AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
  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 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 "install_as_default" is set to false if gold is the default linker.
  dnl "installed_linker" is the installed BFD linker name.
  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
 --- a/ld/ldfile.c
 +++ b/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);
      new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
    else
    else
      new_dirs->name = xstrdup (name);
      new_dirs->name = xstrdup (name);
@@ -160,81 +222,52 @@ Index: b/ld/ldfile.c
  }
  }
  
  
  /* Try to open a BFD for a lang_input_statement.  */
  /* 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
 --- a/ld/ldmain.c
 +++ b/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.warn_search_mismatch = TRUE;
    command_line.check_section_addresses = -1;
    command_line.check_section_addresses = -1;
-   command_line.disable_target_specific_optimizations = -1;
 +  command_line.poison_system_directories = TRUE;
 +  command_line.poison_system_directories = TRUE;
 +  command_line.error_poison_system_directories = FALSE;
 +  command_line.error_poison_system_directories = FALSE;
  
  
    /* We initialize DEMANGLING based on the environment variable
    /* We initialize DEMANGLING based on the environment variable
       COLLECT_NO_DEMANGLE.  The gcc collect2 program will demangle the
       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
 --- a/ld/lexsup.c
 +++ b/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 },
      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,
 +  { {"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"),
 +    '\0', NULL, N_("Do not warn for -L options using system directories"),
 +    TWO_DASHES },
 +    TWO_DASHES },
 +  { {"error-poison-system-directories", no_argument, NULL,
 +  { {"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"),
 +    '\0', NULL, N_("Give an error for -L options using system directories"),
 +    TWO_DASHES },
 +    TWO_DASHES },
  };
  };
  
  
  #define OPTION_COUNT ARRAY_SIZE (ld_options)
  #define OPTION_COUNT ARRAY_SIZE (ld_options)
-@@ -510,6 +518,7 @@
+@@ -542,6 +550,7 @@ parse_args (unsigned argc, char **argv)
    int ingroup = 0;
    int ingroup = 0;
    char *default_dirlist = NULL;
    char *default_dirlist = NULL;
    char *shortopts;
    char *shortopts;
@@ -242,19 +275,23 @@ Index: b/ld/lexsup.c
    struct option *longopts;
    struct option *longopts;
    struct option *really_longopts;
    struct option *really_longopts;
    int last_optind;
    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;
            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");
 +  BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
@@ -264,16 +301,6 @@ Index: b/ld/lexsup.c
    while (ingroup)
    while (ingroup)
      {
      {
        lang_leave_group ();
        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
 # 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  5ec95ad47d49b12c4558a8db0ca2109d3ee1955e3776057f3330c4506f8f4d1cf5e505fbf8a16b98403a0fcdeaaf986fe0a22be6456247dbdace63ce1f776b12  binutils-2.24.tar.bz2
 sha512  0b36dda0e6d32cd25613c0e64b56b28312515c54d6a159efd3db9a86717f114ab0a0a1f69d08975084d55713ebaeab64e4085c9b3d1c3fa86712869f80eb954d  binutils-2.25.1.tar.bz2
 sha512  0b36dda0e6d32cd25613c0e64b56b28312515c54d6a159efd3db9a86717f114ab0a0a1f69d08975084d55713ebaeab64e4085c9b3d1c3fa86712869f80eb954d  binutils-2.25.1.tar.bz2
 sha512  e77e1b8dbbcbaf9ac2fae95c4403615808af3be03b2e1d32448cd3a7d32c43273f8bcace3f2de84ec120a982879295673029da306e2885dbf5f990584932cfc7  binutils-2.26.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))
 BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
 ifeq ($(BINUTILS_VERSION),)
 ifeq ($(BINUTILS_VERSION),)
 ifeq ($(BR2_arc),y)
 ifeq ($(BR2_arc),y)
-BINUTILS_VERSION = arc-2015.12
+BINUTILS_VERSION = arc-2016.03
 else
 else
 BINUTILS_VERSION = 2.25.1
 BINUTILS_VERSION = 2.25.1
 endif
 endif

+ 0 - 5
package/boost/Config.in

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

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

@@ -2,7 +2,6 @@ config BR2_PACKAGE_CC_TOOL
 	bool "cc-tool"
 	bool "cc-tool"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS
 	depends on BR2_USE_WCHAR # boost-filesystem
 	depends on BR2_USE_WCHAR # boost-filesystem
 	select BR2_PACKAGE_LIBUSB
 	select BR2_PACKAGE_LIBUSB
 	select BR2_PACKAGE_BOOST
 	select BR2_PACKAGE_BOOST
@@ -19,5 +18,4 @@ config BR2_PACKAGE_CC_TOOL
 	  http://sourceforge.net/projects/cctool/
 	  http://sourceforge.net/projects/cctool/
 
 
 comment "cc-tool needs a toolchain w/ C++, threads, wchar"
 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
 	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  += \
 +override CFLAGS  += \
 +	-W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \
 +	-W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \
 +        -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef
 +        -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
  #CFLAGS += -g
  
  
  # Pass linker flags here
  # 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_SITE = http://download.savannah.gnu.org/releases/dmidecode
 DMIDECODE_LICENSE = GPLv2+
 DMIDECODE_LICENSE = GPLv2+
 DMIDECODE_LICENSE_FILES = LICENSE
 DMIDECODE_LICENSE_FILES = LICENSE

+ 1 - 1
package/dnsmasq/dnsmasq.hash

@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
 # 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_SOURCE = dnsmasq-$(DNSMASQ_VERSION).tar.xz
 DNSMASQ_SITE = http://thekelleys.org.uk/dnsmasq
 DNSMASQ_SITE = http://thekelleys.org.uk/dnsmasq
 DNSMASQ_MAKE_ENV = $(TARGET_MAKE_ENV) CC="$(TARGET_CC)"
 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
 # 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_SITE = http://waterlan.home.xs4all.nl/dos2unix
 DOS2UNIX_LICENSE = BSD-2c
 DOS2UNIX_LICENSE = BSD-2c
 DOS2UNIX_LICENSE_FILES = COPYING.txt
 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
 # 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_SOURCE = dosfstools-$(DOSFSTOOLS_VERSION).tar.xz
 DOSFSTOOLS_SITE = https://github.com/dosfstools/dosfstools/releases/download/v$(DOSFSTOOLS_VERSION)
 DOSFSTOOLS_SITE = https://github.com/dosfstools/dosfstools/releases/download/v$(DOSFSTOOLS_VERSION)
 DOSFSTOOLS_LICENSE = GPLv3+
 DOSFSTOOLS_LICENSE = GPLv3+
 DOSFSTOOLS_LICENSE_FILES = COPYING
 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
 # Avoid target dosfstools dependencies, no host-libiconv
 HOST_DOSFSTOOLS_DEPENDENCIES =
 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)
 ifneq ($(BR2_ENABLE_LOCALE),y)
+DOSFSTOOLS_CONF_OPTS += LIBS="-liconv"
 DOSFSTOOLS_DEPENDENCIES += libiconv
 DOSFSTOOLS_DEPENDENCIES += libiconv
-DOSFSTOOLS_LDLIBS += -liconv
 endif
 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
 endef
+DOSFSTOOLS_POST_INSTALL_TARGET_HOOKS += DOSFSTOOLS_REMOVE_FATLABEL
 endif
 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
 endef
+DOSFSTOOLS_POST_INSTALL_TARGET_HOOKS += DOSFSTOOLS_REMOVE_FSCK_FAT
 endif
 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
 endef
+DOSFSTOOLS_POST_INSTALL_TARGET_HOOKS += DOSFSTOOLS_REMOVE_MKFS_FAT
 endif
 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"
 	bool "fsck"
 	default y
 	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
 config BR2_PACKAGE_E2FSPROGS_LOGSAVE
 	bool "logsave"
 	bool "logsave"
 	default y
 	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_SOURCE = e2fsprogs-$(E2FSPROGS_VERSION).tar.xz
 E2FSPROGS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/people/tytso/e2fsprogs/v$(E2FSPROGS_VERSION)
 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 = 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 = YES
 E2FSPROGS_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-libs
 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
 # e4defrag doesn't build on older systems like RHEL5.x, and we don't
 # need it on the host anyway.
 # 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 = \
 E2FSPROGS_CONF_OPTS = \
 	$(if $(BR2_STATIC_LIBS),,--enable-elf-shlibs) \
 	$(if $(BR2_STATIC_LIBS),,--enable-elf-shlibs) \
@@ -30,6 +32,13 @@ E2FSPROGS_CONF_OPTS = \
 	--disable-testio-debug \
 	--disable-testio-debug \
 	--disable-rpath
 	--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)
 ifeq ($(BR2_nios2),y)
 E2FSPROGS_CONF_ENV += ac_cv_func_fallocate=no
 E2FSPROGS_CONF_ENV += ac_cv_func_fallocate=no
 endif
 endif
@@ -40,8 +49,6 @@ ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
 E2FSPROGS_CONF_ENV += LIBS=-lintl
 E2FSPROGS_CONF_ENV += LIBS=-lintl
 endif
 endif
 
 
-E2FSPROGS_DEPENDENCIES = host-pkgconf util-linux
-
 E2FSPROGS_MAKE_OPTS = \
 E2FSPROGS_MAKE_OPTS = \
 	LDCONFIG=true
 	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
 # 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_SITE = ftp://ftp.astron.com/pub/file
 FILE_DEPENDENCIES = host-file zlib
 FILE_DEPENDENCIES = host-file zlib
 FILE_CONF_ENV = ac_cv_prog_cc_c99='-std=gnu99'
 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_SITE = git://git.freescale.com/ppc/sdk/fmc.git
 FMC_LICENSE = MIT
 FMC_LICENSE = MIT
 FMC_LICENSE_FILES = COPYING
 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_SITE = git://git.freescale.com/ppc/sdk/fmlib.git
 FMLIB_LICENSE = BSD-3c, GPLv2+
 FMLIB_LICENSE = BSD-3c, GPLv2+
 FMLIB_LICENSE_FILES = COPYING
 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

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.