]> rtime.felk.cvut.cz Git - coffee/buildroot.git/commitdiff
Merge branch 'next'
authorPeter Korsgaard <peter@korsgaard.com>
Thu, 1 Dec 2016 21:22:06 +0000 (22:22 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Thu, 1 Dec 2016 21:29:56 +0000 (22:29 +0100)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
350 files changed:
Config.in
Config.in.legacy
DEVELOPERS
Makefile
board/freescale/common/imx/genimage.cfg.template [moved from board/freescale/common/genimage.cfg.template with 100% similarity]
board/freescale/common/imx/post-image.sh [moved from board/freescale/common/post-image.sh with 94% similarity]
board/freescale/common/mxs/genimage.cfg.template [new file with mode: 0644]
board/freescale/common/mxs/post-image.sh [new file with mode: 0755]
board/freescale/imx23evk/readme.txt [new file with mode: 0644]
board/freescale/imx25pdk/readme.txt
board/freescale/imx28evk/genimage.cfg [deleted file]
board/freescale/imx28evk/post-image.sh [deleted file]
board/freescale/imx51evk/readme.txt
board/freescale/imx6sabre/readme.txt
board/freescale/imx6ulevk/readme.txt
board/freescale/imx7dsdb/readme.txt
board/olimex/imx233_olinuxino/genimage-imx233_olinuxino.cfg [deleted file]
board/olimex/imx233_olinuxino/linux-3.18.config [deleted file]
board/olimex/imx233_olinuxino/linux-wifi.fragment [new file with mode: 0644]
board/olimex/imx233_olinuxino/post-image.sh [deleted file]
board/olimex/imx233_olinuxino/readme.txt
board/technexion/imx6ulpico/readme.txt
boot/uboot/Config.in
boot/uboot/uboot.hash
configs/freescale_imx28evk_defconfig
configs/freescale_imx6dlsabreauto_defconfig
configs/freescale_imx6dlsabresd_defconfig
configs/freescale_imx6qsabreauto_defconfig
configs/freescale_imx6qsabresd_defconfig
configs/freescale_imx6sololiteevk_defconfig
configs/freescale_imx6sxsabresd_defconfig
configs/freescale_imx6ulevk_defconfig
configs/freescale_imx7dsabresd_defconfig
configs/imx23evk_defconfig [new file with mode: 0644]
configs/imx6ulpico_defconfig
configs/mx25pdk_defconfig
configs/mx51evk_defconfig
configs/mx53loco_defconfig
configs/olimex_imx233_olinuxino_defconfig
configs/warp7_defconfig
configs/warpboard_defconfig
fs/common.mk
fs/tar/tar.mk
linux/linux.mk
package/Config.in
package/Makefile.in
package/audit/Config.in
package/bash/0031-patchlevel-31.patch [deleted file]
package/bash/0032-patchlevel-32.patch [deleted file]
package/bash/0033-patchlevel-33.patch [deleted file]
package/bash/0034-patchlevel-34.patch [deleted file]
package/bash/0035-patchlevel-35.patch [deleted file]
package/bash/0036-patchlevel-36.patch [deleted file]
package/bash/0037-patchlevel-37.patch [deleted file]
package/bash/0038-patchlevel-38.patch [deleted file]
package/bash/0039-patchlevel-39.patch [deleted file]
package/bash/0040-patchlevel-40.patch [deleted file]
package/bash/0041-patchlevel-41.patch [deleted file]
package/bash/0042-patchlevel-42.patch [deleted file]
package/bash/0043-patchlevel-43.patch [deleted file]
package/bash/0044-patchlevel-44.patch [deleted file]
package/bash/0045-patchlevel-45.patch [deleted file]
package/bash/0046-patchlevel-46.patch [deleted file]
package/bash/bash.hash
package/bash/bash.mk
package/bluez5_utils/bluez5_utils.hash
package/bluez5_utils/bluez5_utils.mk
package/bridge-utils/0002-libbridge-fix-headers-conflict-with-musl-libc.patch [deleted file]
package/btrfs-progs/btrfs-progs.hash
package/btrfs-progs/btrfs-progs.mk
package/busybox/S50telnet
package/busybox/busybox.mk
package/canfestival/Config.in
package/cmake/0001-rename_cmake_rootfile.patch
package/cmake/Config.in
package/cmake/cmake.hash
package/cmake/cmake.mk
package/cryptsetup/cryptsetup.hash
package/cryptsetup/cryptsetup.mk
package/domoticz/domoticz.hash
package/domoticz/domoticz.mk
package/efibootmgr/0001-Allow-build-with-uClibc.patch [new file with mode: 0644]
package/efibootmgr/Config.in
package/efibootmgr/efibootmgr.mk
package/efivar/0001-Use-z-muldefs-to-avoid-the-multiple-definitions-bug-.patch [new file with mode: 0644]
package/efivar/0002-Allow-build-with-uClibc.patch [new file with mode: 0644]
package/efivar/Config.in
package/efivar/efivar.hash
package/efivar/efivar.mk
package/efl/efl.hash
package/efl/efl.mk
package/fdk-aac/Config.in
package/ffmpeg/ffmpeg.hash
package/ffmpeg/ffmpeg.mk
package/gcc/gcc-initial/gcc-initial.mk
package/git/git.hash
package/git/git.mk
package/glog/Config.in
package/gstreamer1/gst-omx/gst-omx.hash
package/gstreamer1/gst-omx/gst-omx.mk
package/gstreamer1/gst1-imx/gst1-imx.hash
package/gstreamer1/gst1-imx/gst1-imx.mk
package/gstreamer1/gst1-libav/gst1-libav.hash
package/gstreamer1/gst1-libav/gst1-libav.mk
package/gstreamer1/gst1-plugins-bad/0001-vmncdec-Sanity-check-width-height-before-using-it.patch [deleted file]
package/gstreamer1/gst1-plugins-bad/Config.in
package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.hash
package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk
package/gstreamer1/gst1-plugins-base/gst1-plugins-base.hash
package/gstreamer1/gst1-plugins-base/gst1-plugins-base.mk
package/gstreamer1/gst1-plugins-good/0001-flxdec-add-some-write-bounds-checking.patch [deleted file]
package/gstreamer1/gst1-plugins-good/0002-flxdec-fix-some-warnings-comparing-unsigned-0.patch [deleted file]
package/gstreamer1/gst1-plugins-good/0003-flxdec-Don-t-unref-parent-in-the-chain-function.patch [deleted file]
package/gstreamer1/gst1-plugins-good/0004-flxdec-rewrite-logic-based-on-GstByteReader-Writer.patch [deleted file]
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.hash
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk
package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.hash
package/gstreamer1/gst1-plugins-ugly/gst1-plugins-ugly.mk
package/gstreamer1/gst1-rtsp-server/gst1-rtsp-server.hash
package/gstreamer1/gst1-rtsp-server/gst1-rtsp-server.mk
package/gstreamer1/gst1-validate/Config.in
package/gstreamer1/gst1-validate/gst1-validate.hash
package/gstreamer1/gst1-validate/gst1-validate.mk
package/gstreamer1/gstreamer1/gstreamer1.hash
package/gstreamer1/gstreamer1/gstreamer1.mk
package/htop/htop.mk
package/kexec-lite/kexec-lite.hash
package/kexec-lite/kexec-lite.mk
package/kodi/0012-Fix_includes_in_amcodec.patch [new file with mode: 0644]
package/kodi/kodi.mk
package/lcms2/lcms2.hash
package/lcms2/lcms2.mk
package/lftp/lftp.hash
package/lftp/lftp.mk
package/libatomic_ops/Config.in
package/libatomic_ops/libatomic_ops.hash
package/libatomic_ops/libatomic_ops.mk
package/libdrm/libdrm.hash
package/libdrm/libdrm.mk
package/libgtk2/libgtk2.hash
package/libgtk2/libgtk2.mk
package/libgtk3/libgtk3.hash
package/libgtk3/libgtk3.mk
package/libnet/0001-support-musl-libc.patch [new file with mode: 0644]
package/libnet/Config.in
package/libpjsip/0001-Use-mutex-types-compatible-with-musl-fixes-musl-buil.patch [deleted file]
package/libpjsip/0002-Replace-__sched_priority-with-sched_priority-fixes-m.patch [deleted file]
package/libpjsip/libpjsip.hash
package/libpjsip/libpjsip.mk
package/libva-intel-driver/libva-intel-driver.hash
package/libva-intel-driver/libva-intel-driver.mk
package/libva/libva.hash
package/libva/libva.mk
package/libxmlrpc/0001-fix-gennmtab-build.patch
package/libxmlrpc/0004-use-correct-curl-config.patch
package/libxmlrpc/0006-fix-ar-ranlib-handling.patch [new file with mode: 0644]
package/libxmlrpc/0006-narrowing.patch [deleted file]
package/libxmlrpc/libxmlrpc.hash
package/libxmlrpc/libxmlrpc.mk
package/linux-pam/Config.in
package/lvm2/lvm2.hash
package/lvm2/lvm2.mk
package/makedevs/Config.in [deleted file]
package/makedevs/makedevs.mk
package/mesa3d-headers/mesa3d-headers.mk
package/mesa3d/mesa3d.hash
package/mesa3d/mesa3d.mk
package/moarvm/Config.in
package/moarvm/moarvm.hash
package/moarvm/moarvm.mk
package/netsniff-ng/Config.in
package/netsniff-ng/netsniff-ng.hash
package/netsniff-ng/netsniff-ng.mk
package/nodejs/6.9.1/0001-gyp-force-link-command-to-use-CXX.patch [moved from package/nodejs/6.7.0/0001-gyp-force-link-command-to-use-CXX.patch with 100% similarity]
package/nodejs/6.9.1/0002-inspector-don-t-build-when-ssl-support-is-disabled.patch [moved from package/nodejs/6.7.0/0002-inspector-don-t-build-when-ssl-support-is-disabled.patch with 100% similarity]
package/nodejs/Config.in
package/nodejs/nodejs.hash
package/norm/0003-remove-kernel-headers-include-musl-fix.patch [deleted file]
package/odroid-scripts/S02odroidc2_fb [moved from package/odroid-scripts/S50odroidc2_fb with 100% similarity]
package/odroid-scripts/odroid-scripts.hash
package/odroid-scripts/odroid-scripts.mk
package/openvpn/openvpn.hash
package/openvpn/openvpn.mk
package/patchelf/patchelf.hash
package/patchelf/patchelf.mk
package/php-amqp/Config.in
package/php/php.hash
package/php/php.mk
package/python-pillow/python-pillow.hash
package/python-pillow/python-pillow.mk
package/qemu/Config.in
package/qemu/qemu.mk
package/qt5/qt5.mk
package/qt5/qt5webkit/qt5webkit.hash
package/qt5/qt5webkit/qt5webkit.mk
package/rabbitmq-c/Config.in
package/readline/0001-patchlevel-1.patch [deleted file]
package/readline/0002-patchlevel-2.patch [deleted file]
package/readline/0003-patchlevel-3.patch [deleted file]
package/readline/0004-patchlevel-4.patch [deleted file]
package/readline/0005-patchlevel-5.patch [deleted file]
package/readline/0006-patchlevel-6.patch [deleted file]
package/readline/0007-patchlevel-7.patch [deleted file]
package/readline/0008-patchlevel-8.patch [deleted file]
package/readline/readline.hash
package/readline/readline.mk
package/ruby/ruby.hash
package/ruby/ruby.mk
package/screen/screen.mk
package/ser2net/ser2net.hash
package/ser2net/ser2net.mk
package/snowball-hdmiservice/Config.in [deleted file]
package/snowball-hdmiservice/snowball-hdmiservice.hash [deleted file]
package/snowball-hdmiservice/snowball-hdmiservice.mk [deleted file]
package/snowball-init/Config.in [deleted file]
package/snowball-init/snowball-init.hash [deleted file]
package/snowball-init/snowball-init.mk [deleted file]
package/sqlite/sqlite.hash
package/sqlite/sqlite.mk
package/sudo/sudo.hash
package/sudo/sudo.mk
package/sunxi-tools/sunxi-tools.hash
package/sunxi-tools/sunxi-tools.mk
package/swupdate/swupdate.hash
package/swupdate/swupdate.mk
package/systemd/0002-build-sys-revert-use-of-ln-relative-option.patch
package/systemd/0004-importd-export-raw-needs-missing.h-for-O_TMPFILE.patch [deleted file]
package/systemd/0005-missing.h-add-missing-definitions-for-__O_TMPFILE.patch [deleted file]
package/systemd/0006-basic-fileio-we-always-have-O_TMPFILE-now.patch [deleted file]
package/systemd/systemd.hash
package/systemd/systemd.mk
package/tinycbor/Config.in
package/tinycbor/tinycbor.hash
package/tinycbor/tinycbor.mk
package/tslib/0001-enable_raw_module.patch [deleted file]
package/tslib/0002-add_finddef_and_inputattach_utils.patch [deleted file]
package/tslib/tslib.hash
package/tslib/tslib.mk
package/uboot-tools/uboot-tools.hash
package/uboot-tools/uboot-tools.mk
package/uclibc-ng-test/Config.in [new file with mode: 0644]
package/uclibc-ng-test/uclibc-ng-test.mk [new file with mode: 0644]
package/uhttpd/Config.in [new file with mode: 0644]
package/uhttpd/uhttpd.hash [new file with mode: 0644]
package/uhttpd/uhttpd.mk [new file with mode: 0644]
package/ustream-ssl/Config.in [new file with mode: 0644]
package/ustream-ssl/ustream-ssl.mk [new file with mode: 0644]
package/vala/vala.hash
package/vala/vala.mk
package/webrtc-audio-processing/Config.in
package/wine/wine.mk
package/wpa_supplicant/Config.in
package/wpa_supplicant/wpa_supplicant.mk
package/x11r7/xdriver_xf86-input-joystick/xdriver_xf86-input-joystick.hash
package/x11r7/xdriver_xf86-input-joystick/xdriver_xf86-input-joystick.mk
package/x11r7/xdriver_xf86-input-keyboard/xdriver_xf86-input-keyboard.hash
package/x11r7/xdriver_xf86-input-keyboard/xdriver_xf86-input-keyboard.mk
package/x11r7/xdriver_xf86-input-mouse/xdriver_xf86-input-mouse.hash
package/x11r7/xdriver_xf86-input-mouse/xdriver_xf86-input-mouse.mk
package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.hash
package/x11r7/xdriver_xf86-input-synaptics/xdriver_xf86-input-synaptics.mk
package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.hash
package/x11r7/xdriver_xf86-video-amdgpu/xdriver_xf86-video-amdgpu.mk
package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.hash
package/x11r7/xdriver_xf86-video-ati/xdriver_xf86-video-ati.mk
package/x11r7/xdriver_xf86-video-glint/0002-abi23.patch [new file with mode: 0644]
package/x11r7/xdriver_xf86-video-mga/0002-abi23.patch [new file with mode: 0644]
package/x11r7/xdriver_xf86-video-nv/0002-abi23.patch [new file with mode: 0644]
package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.hash
package/x11r7/xdriver_xf86-video-openchrome/xdriver_xf86-video-openchrome.mk
package/x11r7/xdriver_xf86-video-qxl/0001-systemincludes.patch [new file with mode: 0644]
package/x11r7/xdriver_xf86-video-qxl/0002-xserverfix.patch [new file with mode: 0644]
package/x11r7/xdriver_xf86-video-qxl/Config.in
package/x11r7/xdriver_xf86-video-qxl/xdriver_xf86-video-qxl.mk
package/x11r7/xdriver_xf86-video-r128/0002-abi23.patch [new file with mode: 0644]
package/x11r7/xdriver_xf86-video-savage/0002-abi23.patch [new file with mode: 0644]
package/x11r7/xdriver_xf86-video-siliconmotion/0001-abi23.patch [new file with mode: 0644]
package/x11r7/xdriver_xf86-video-sis/0002-abi23.patch [new file with mode: 0644]
package/x11r7/xdriver_xf86-video-sis/0003-xi.patch [moved from package/x11r7/xdriver_xf86-video-sis/0007-xi.patch with 100% similarity]
package/x11r7/xdriver_xf86-video-tdfx/0002-abi23.patch [new file with mode: 0644]
package/x11r7/xdriver_xf86-video-trident/0001-abi23.patch [new file with mode: 0644]
package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.hash
package/x11r7/xdriver_xf86-video-vmware/xdriver_xf86-video-vmware.mk
package/x264/Config.in
package/xmlstarlet/xmlstarlet.mk
toolchain/helpers.mk
toolchain/toolchain-external/Config.in
toolchain/toolchain-external/pkg-toolchain-external.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-custom/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-custom/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-custom/toolchain-external-custom.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-musl-cross/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-musl-cross/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.hash [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.mk [new file with mode: 0644]
toolchain/toolchain-external/toolchain-external.hash [deleted file]
toolchain/toolchain-external/toolchain-external.mk
toolchain/toolchain/toolchain.mk

index 5cf0c4d290a01d3cf40555ac9ee688eff2c30c47..98096dff12e1c51c1950728cd160bd7ab1c1993f 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -707,6 +707,12 @@ config BR2_REPRODUCIBLE
          this allows to generate exactly identical binaries from one
          build to the other, including on different machines.
 
+         The current implementation is restricted to builds with the
+         same output directory. Many (absolute) paths are recorded in
+         intermediary files, and it is very likely that some of these
+         paths leak into the target rootfs. If you build with the
+         same O=... path, however, the result is identical.
+
          This is labeled as an experimental feature, as not all
          packages behave properly to ensure reproducibility.
 
index 8c41b05095a9c3b070bf9ed43d56046f5707db01..aeefb392c3b57b6b9b992702b12e4acd727ff6a6 100644 (file)
@@ -142,6 +142,50 @@ comment "build, or run, in unpredictable ways.               "
 comment "----------------------------------------------------"
 endif
 
+###############################################################################
+comment "Legacy options removed in 2017.02"
+
+config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
+       bool "Blackfin.uclinux.org 2014R1 toolchain removed"
+       select BR2_LEGACY
+       help
+         The ADI Blackfin toolchain has many bugs which are fixed in
+         more recent gcc and uClibc-ng releases. Use the Buildroot
+         toolchain instead.
+
+config BR2_PACKAGE_MAKEDEVS
+       bool "makedevs removed"
+       select BR2_LEGACY
+       help
+         The makedevs tool is part of busybox. The Buildroot fork
+         should not be used outside of the Buildroot infrastructure.
+
+config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A
+       bool "Arago ARMv7 2011.09 removed"
+       select BR2_LEGACY
+       help
+         The Arago toolchains are every old and not updated anymore.
+
+config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE
+       bool "Arago ARMv5 2011.09 removed"
+       select BR2_LEGACY
+       help
+         The Arago toolchains are every old and not updated anymore.
+
+config BR2_PACKAGE_SNOWBALL_HDMISERVICE
+       bool "snowball-hdmiservice removed"
+       select BR2_LEGACY
+       help
+         We no longer have support for the Snowball platform in
+         Buildroot, so this package was no longer useful.
+
+config BR2_PACKAGE_SNOWBALL_INIT
+       bool "snowball-init removed"
+       select BR2_LEGACY
+       help
+         We no longer have support for the Snowball platform in
+         Buildroot, so this package was no longer useful.
+
 ###############################################################################
 comment "Legacy options removed in 2016.11"
 
index 9d0ede76a0d07250299cbd3cb6b513f0721bad85..684be4866c866d32fd49a1398b8671ca69879d07 100644 (file)
@@ -1222,6 +1222,10 @@ F:       package/gssdp/
 F:     package/gupnp/
 F:     package/gupnp-av/
 
+N:     Rahul Jain <rahul.jain@imgtec.com>
+F:     package/uhttpd/
+F:     package/ustream-ssl/
+
 N:     Renaud Aubin <root@renaud.io>
 F:     package/libhttpparser/
 
index 119839c3de738734f24e87149934a078e4adca7a..00bcd0f49fc2f8f25cced846d6de16c0caeb0ceb 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -24,6 +24,9 @@
 # You shouldn't need to mess with anything beyond this point...
 #--------------------------------------------------------------
 
+# Delete default rules. We don't use them. This saves a bit of time.
+.SUFFIXES:
+
 # we want bash as shell
 SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
         else if [ -x /bin/bash ]; then echo /bin/bash; \
@@ -84,6 +87,8 @@ all:
 
 # Set and export the version string
 export BR2_VERSION := 2017.02-git
+# Actual time the release is cut (for reproducible builds)
+BR2_VERSION_EPOCH = 1478206447
 
 # Save running make version since it's clobbered by the make package
 RUNNING_MAKE_VERSION := $(MAKE_VERSION)
@@ -123,7 +128,8 @@ export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlo
 noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \
        defconfig %_defconfig allyesconfig allnoconfig silentoldconfig release \
        randpackageconfig allyespackageconfig allnopackageconfig \
-       print-version olddefconfig distclean
+       print-version olddefconfig distclean manual manual-html manual-split-html \
+       manual-pdf manual-text manual-epub
 
 # Some global targets do not trigger a build, but are used to collect
 # metadata, or do various checks. When such targets are triggered,
@@ -134,9 +140,12 @@ noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconf
 # We're building in two situations: when MAKECMDGOALS is empty
 # (default target is to build), or when MAKECMDGOALS contains
 # something else than one of the nobuild_targets.
-nobuild_targets := source source-check \
-       legal-info external-deps _external-deps \
-       clean distclean help
+nobuild_targets := source %-source source-check \
+       legal-info %-legal-info external-deps _external-deps \
+       clean distclean help show-targets graph-depends \
+       %-graph-depends %-show-depends %-show-version \
+       graph-build graph-size list-defconfigs \
+       savedefconfig printvars
 ifeq ($(MAKECMDGOALS),)
 BR_BUILDING = y
 else ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),)
@@ -165,10 +174,10 @@ endif
 
 # bash prints the name of the directory on 'cd <dir>' if CDPATH is
 # set, so unset it here to not cause problems. Notice that the export
-# line doesn't affect the environment of $(shell ..) calls, so
-# explictly throw away any output from 'cd' here.
+# line doesn't affect the environment of $(shell ..) calls.
 export CDPATH :=
-BASE_DIR := $(shell mkdir -p $(O) && cd $(O) >/dev/null && pwd)
+
+BASE_DIR := $(CANONICAL_O)
 $(if $(BASE_DIR),, $(error output directory "$(O)" does not exist))
 
 
@@ -239,9 +248,12 @@ endif
 
 # timezone and locale may affect build output
 ifeq ($(BR2_REPRODUCIBLE),y)
-export TZ=UTC
-export LANG=C
-export LC_ALL=C
+export TZ = UTC
+export LANG = C
+export LC_ALL = C
+export GZIP = -n
+BR2_VERSION_GIT_EPOCH = $(shell GIT_DIR=$(TOPDIR)/.git $(GIT) log -1 --format=%at)
+export SOURCE_DATE_EPOCH = $(if $(wildcard $(TOPDIR)/.git),$(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))
 endif
 
 # To put more focus on warnings, be less verbose as default
@@ -656,7 +668,7 @@ endif
        rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/share/info
        rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc
        rm -rf $(TARGET_DIR)/usr/share/gtk-doc
-       -rmdir $(TARGET_DIR)/usr/share 2>/dev/null
+       rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true
        $(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true
 
 # See http://sourceware.org/gdb/wiki/FAQ, "GDB does not see any threads
similarity index 94%
rename from board/freescale/common/post-image.sh
rename to board/freescale/common/imx/post-image.sh
index 7d48550a5a9efefe6d57d347b4fcb501944dfa53..9e4da82dc7ce54186fc62d1843944cafab0e4dad 100755 (executable)
@@ -35,7 +35,7 @@ main()
        local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
 
        sed -e "s/%FILES%/${FILES}/" \
-               board/freescale/common/genimage.cfg.template > ${GENIMAGE_CFG}
+               board/freescale/common/imx/genimage.cfg.template > ${GENIMAGE_CFG}
 
        rm -rf "${GENIMAGE_TMP}"
 
diff --git a/board/freescale/common/mxs/genimage.cfg.template b/board/freescale/common/mxs/genimage.cfg.template
new file mode 100644 (file)
index 0000000..e094fb7
--- /dev/null
@@ -0,0 +1,39 @@
+# Minimal SD card image for the Freescale MX23/MX28 Template
+#
+# We mimic the .sdcard Freescale's MX23/MX28 image format:
+# * u-boot.sb is placed at offset 1M,
+# * a FAT partition at offset 16 MB is containing zImage/uImage and DTB files
+# * a single root filesystem partition is required (ext2, ext3 or ext4)
+#
+
+image boot.vfat {
+       vfat {
+               files = {
+                       %FILES%
+               }
+       }
+       size = 16M
+}
+
+image sdcard.img {
+       hdimage {
+       }
+
+       partition u-boot {
+               partition-type = 0x53
+               image = "u-boot.sd"
+               offset = 1M
+               size = 16M
+       }
+
+       partition kernel {
+               partition-type = 0xC
+               bootable = "true"
+               image = "boot.vfat"
+       }
+
+       partition rootfs {
+               partition-type = 0x83
+               image = "rootfs.ext2"
+       }
+}
diff --git a/board/freescale/common/mxs/post-image.sh b/board/freescale/common/mxs/post-image.sh
new file mode 100755 (executable)
index 0000000..0bfb835
--- /dev/null
@@ -0,0 +1,54 @@
+#!/usr/bin/env bash
+
+#
+# dtb_list extracts the list of DTB files from BR2_LINUX_KERNEL_INTREE_DTS_NAME
+# in ${BR_CONFIG}, then prints the corresponding list of file names for the
+# genimage configuration file
+#
+dtb_list()
+{
+       local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})"
+
+       for dt in $DTB_LIST; do
+               echo -n "\"$dt.dtb\", "
+       done
+}
+
+#
+# linux_image extracts the Linux image format from BR2_LINUX_KERNEL_UIMAGE in
+# ${BR_CONFIG}, then prints the corresponding file name for the genimage
+# configuration file
+#
+linux_image()
+{
+       if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then
+               echo "\"uImage\""
+       else
+               echo "\"zImage\""
+       fi
+}
+
+main()
+{
+       local FILES="$(dtb_list) $(linux_image)"
+       local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
+       local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+
+       sed -e "s/%FILES%/${FILES}/" \
+               board/freescale/common/mxs/genimage.cfg.template > ${GENIMAGE_CFG}
+
+       rm -rf "${GENIMAGE_TMP}"
+
+       genimage \
+               --rootpath "${TARGET_DIR}" \
+               --tmppath "${GENIMAGE_TMP}" \
+               --inputpath "${BINARIES_DIR}" \
+               --outputpath "${BINARIES_DIR}" \
+               --config "${GENIMAGE_CFG}"
+
+       rm -f ${GENIMAGE_CFG}
+
+       exit $?
+}
+
+main $@
diff --git a/board/freescale/imx23evk/readme.txt b/board/freescale/imx23evk/readme.txt
new file mode 100644 (file)
index 0000000..6574577
--- /dev/null
@@ -0,0 +1,48 @@
+**************************
+Freescale i.MX23 EVK board
+**************************
+
+This file documents the Buildroot support for the Freescale i.MX23 EVK board.
+
+Build
+=====
+
+First, configure Buildroot for your i.MX23 EVK board:
+
+  make imx23evk_defconfig
+
+Build all components:
+
+  make
+
+You will find in output/images/ directory the following files:
+  - imx23-evk.dtb
+  - rootfs.tar
+  - u-boot.sd
+  - 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
+
+Then, run the following command:
+
+*** WARNING! The command will destroy all the card content. Use with care! ***
+
+ sudo dd if=output/images/sdcard.img of=/dev/<your-microsd-device>
+
+Boot the i.MX23 EVK board
+=========================
+
+- Put the Boot Mode Select jumper as 1 0 0 1 so that it can boot
+  from the SD card
+- Insert the SD card in the SD Card slot of the board;
+- Connect an RS232 UART cable to the Debug UART Port and connect using a
+  terminal emulator at 115200 bps, 8n1;
+- power on the board.
+
+Enjoy!
index df7c617264b60e79f50d3c196d9447b9989df673..1aece6c9b3c1cb46d2ea75aa23d997507f764ad5 100644 (file)
@@ -40,7 +40,7 @@ command as root:
 *** WARNING! This will destroy all the card content. Use with care! ***
 
 For details about the medium image layout, see the definition in
-board/freescale/common/genimage.cfg.template.
+board/freescale/common/imx/genimage.cfg.template.
 
 Boot the i.MX25 PDK board
 =========================
diff --git a/board/freescale/imx28evk/genimage.cfg b/board/freescale/imx28evk/genimage.cfg
deleted file mode 100644 (file)
index 4df432f..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-image kernel.vfat {
-       vfat {
-               files = {
-               "zImage", "imx28-evk.dtb"
-               }
-       }
-       size = 16M
-}
-
-image sdcard.img {
-       hdimage {
-       }
-       partition boot {
-               partition-type = 0x53
-               image = "u-boot.sd"
-               offset = 1M
-               size = 16M
-       }
-
-       partition kernel {
-               partition-type = 0xC
-               image = "kernel.vfat"
-       }
-
-       partition rootfs {
-               partition-type = 0x83
-               image = "rootfs.ext2"
-       }
-}
diff --git a/board/freescale/imx28evk/post-image.sh b/board/freescale/imx28evk/post-image.sh
deleted file mode 100755 (executable)
index b4ac460..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/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}"
index bf739fd6596cf377a34d9860a36273545d9f4bbd..d67a3fd7247e46c8d94864af69e08939b327d486 100644 (file)
@@ -40,7 +40,7 @@ command as root:
 *** WARNING! This will destroy all the card content. Use with care! ***
 
 For details about the medium image layout, see the definition in
-board/freescale/common/genimage.cfg.template.
+board/freescale/common/imx/genimage.cfg.template.
 
 Boot the i.MX51 EVK board
 =========================
index e409d8f190e88c6e488f6f367a6ecec50b296e2a..a1bd82fdc7032c41d14765e7ba463bc3853de7ed 100644 (file)
@@ -71,7 +71,7 @@ command as root:
 *** WARNING! The script will destroy all the card content. Use with care! ***
 
 For details about the medium image layout, see the definition in
-board/freescale/common/genimage.cfg.template.
+board/freescale/common/imx/genimage.cfg.template.
 
 Boot the SABRE board
 ====================
index 98de2775dbe2120986d31f78136ad215d2785383..25b95fec524bd18b3ea9884d7d56053f2b5b2b5d 100644 (file)
@@ -43,7 +43,7 @@ command as root:
 *** WARNING! This will destroy all the card content. Use with care! ***
 
 For details about the medium image layout, see the definition in
-board/freescale/common/genimage.cfg.template.
+board/freescale/common/imx/genimage.cfg.template.
 
 Boot the i.MX6UL EVK board
 =========================
index 9aeeb166d828208296116e42f7daa3955095b503..c6030f696526d40b11ae603e5728386a028bba8a 100644 (file)
@@ -40,7 +40,7 @@ command as root:
 *** WARNING! This will destroy all the card content. Use with care! ***
 
 For details about the medium image layout, see the definition in
-board/freescale/common/genimage.cfg.template.
+board/freescale/common/imx/genimage.cfg.template.
 
 Boot the i.MX7D SDB board
 =========================
diff --git a/board/olimex/imx233_olinuxino/genimage-imx233_olinuxino.cfg b/board/olimex/imx233_olinuxino/genimage-imx233_olinuxino.cfg
deleted file mode 100644 (file)
index 78979dc..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-image kernel.vfat {
-  vfat {
-    files = {
-      "uImage"
-    }
-  }
-  size = 5M
-}
-
-image sdcard.img {
-  hdimage {
-  }
-  partition boot {
-       partition-type = 0x53
-       image = "u-boot.sd"
-       size = 16M
-  }
-
-  partition kernel {
-    partition-type = 0xC
-    image = "kernel.vfat"
-  }
-
-  partition rootfs {
-    partition-type = 0x83
-    image = "rootfs.ext2"
-  }
-}
diff --git a/board/olimex/imx233_olinuxino/linux-3.18.config b/board/olimex/imx233_olinuxino/linux-3.18.config
deleted file mode 100644 (file)
index d46d4d5..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-CONFIG_SYSVIPC=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_PERF_EVENTS=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_BLK_DEV_INTEGRITY=y
-# CONFIG_ARCH_MULTI_V7 is not set
-CONFIG_ARCH_MXS=y
-# CONFIG_ARM_THUMB is not set
-CONFIG_PREEMPT_VOLUNTARY=y
-CONFIG_AEABI=y
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_CMDLINE="console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootwait"
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_SYN_COOKIES=y
-CONFIG_CFG80211=y
-CONFIG_CFG80211_WEXT=y
-CONFIG_MAC80211=y
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_FIRMWARE_IN_KERNEL is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_DATAFLASH=y
-CONFIG_MTD_SST25L=y
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_GPMI_NAND=y
-CONFIG_MTD_UBI=y
-# CONFIG_BLK_DEV is not set
-CONFIG_EEPROM_AT24=y
-CONFIG_EEPROM_93CX6=y
-CONFIG_SCSI=y
-CONFIG_BLK_DEV_SD=y
-CONFIG_NETDEVICES=y
-# CONFIG_ETHERNET is not set
-CONFIG_USB_USBNET=y
-CONFIG_USB_NET_SMSC95XX=y
-CONFIG_RTL8187=m
-CONFIG_ATH_CARDS=m
-CONFIG_ATH9K_HTC=m
-CONFIG_RT2X00=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_RT55XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RTL_CARDS=m
-CONFIG_RTL8192CU=m
-# CONFIG_RTLWIFI_DEBUG is not set
-CONFIG_ZD1211RW=m
-# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_SERIO is not set
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_AMBA_PL011=y
-CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-CONFIG_SERIAL_MXS_AUART=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=y
-# CONFIG_I2C_COMPAT is not set
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MXS=y
-CONFIG_SPI=y
-CONFIG_SPI_GPIO=m
-CONFIG_SPI_MXS=y
-CONFIG_PTP_1588_CLOCK=y
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_STMP3XXX_RTC_WATCHDOG=y
-CONFIG_REGULATOR=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_FB=y
-CONFIG_FB_MXS=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_PWM=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_LOGO=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_HRTIMER=y
-# CONFIG_SND_SUPPORT_OLD_API is not set
-# CONFIG_SND_VERBOSE_PROCFS is not set
-# CONFIG_SND_DRIVERS is not set
-# CONFIG_SND_ARM is not set
-# CONFIG_SND_SPI is not set
-# CONFIG_SND_USB is not set
-CONFIG_SND_SOC=y
-CONFIG_USB=y
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_STORAGE=y
-CONFIG_USB_CHIPIDEA=y
-CONFIG_USB_CHIPIDEA_HOST=y
-CONFIG_USB_MXS_PHY=y
-CONFIG_MMC=y
-CONFIG_MMC_MXS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_ONESHOT=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_BACKLIGHT=y
-CONFIG_LEDS_TRIGGER_GPIO=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_STMP=y
-CONFIG_DMADEVICES=y
-CONFIG_MXS_DMA=y
-CONFIG_STAGING=y
-CONFIG_MXS_LRADC=y
-CONFIG_IIO=y
-CONFIG_IIO_SYSFS_TRIGGER=y
-CONFIG_PWM=y
-CONFIG_PWM_MXS=y
-CONFIG_EXT4_FS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-# CONFIG_MISC_FILESYSTEMS is not set
-# CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_PRINTK_TIME=y
-CONFIG_FRAME_WARN=2048
-CONFIG_UNUSED_SYMBOLS=y
-CONFIG_DEBUG_FS=y
-CONFIG_STRICT_DEVMEM=y
-CONFIG_DEBUG_USER=y
-CONFIG_KEYS=y
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_LZO=y
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_CRYPTO_DEV_MXS_DCP=y
-CONFIG_CRC_CCITT=y
-CONFIG_CRC_ITU_T=y
-CONFIG_CRC7=m
-CONFIG_FONTS=y
diff --git a/board/olimex/imx233_olinuxino/linux-wifi.fragment b/board/olimex/imx233_olinuxino/linux-wifi.fragment
new file mode 100644 (file)
index 0000000..b70dea2
--- /dev/null
@@ -0,0 +1,18 @@
+# Network testing
+CONFIG_WIRELESS=y
+CONFIG_CFG80211=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=y
+# MII PHY device drivers
+CONFIG_WLAN=y
+CONFIG_RTL8187=m
+CONFIG_ATH9K_HTC=m
+CONFIG_RT2X00=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RTL_CARDS=m
+CONFIG_RTL8192CU=m
+CONFIG_ZD1211RW=m
diff --git a/board/olimex/imx233_olinuxino/post-image.sh b/board/olimex/imx233_olinuxino/post-image.sh
deleted file mode 100755 (executable)
index 703cbe7..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-BOARD_DIR="$(dirname $0)"
-BOARD_NAME="$(basename ${BOARD_DIR})"
-GENIMAGE_CFG="${BOARD_DIR}/genimage-${BOARD_NAME}.cfg"
-GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
-
-# Create symlink to "rename" kernel image
-ln -sf uImage.imx23-olinuxino ${BINARIES_DIR}/uImage
-
-rm -rf "${GENIMAGE_TMP}"
-
-genimage                           \
-       --rootpath "${TARGET_DIR}"     \
-       --tmppath "${GENIMAGE_TMP}"    \
-       --inputpath "${BINARIES_DIR}"  \
-       --outputpath "${BINARIES_DIR}" \
-       --config "${GENIMAGE_CFG}"
-
-exit $?
index 4b24ac2c16c64230cb6fa565c6e781f4376615bb..1e676c45d140abdbbfdf438687afdca1f95148b5 100644 (file)
@@ -8,89 +8,22 @@ It also pulls up the console on the serial port, not on TV output.
 === Output files after building ==============================================
 
 output/images
-+-- kernel.vfat (VFAT kernel partition image generated by genimage)
++-- boot.vfat (VFAT kernel partition image generated by genimage)
++-- imx23-olinuxino.dtb (device tree blob)
 +-- rootfs.ext2 (Root file system)
 +-- sdcard.img (Complete SD card image generated by genimage)
 +-- u-boot.sd (U-Boot image)
-+-- uImage -> uImage.imx23-olinuxino (To copy kernel as "uImage" to kernel.vfat)
-+-- uImage.imx23-olinuxino (Kernel uImage)
++-- uImage  (Kernel binary)
 
 === Use of generated SD card image ===========================================
 
-Just write sdcard.img directly to the SD card
+To determine the device associated to the SD card have a look in the
+/proc/partitions file:
 
-***** WARNING: Double check that /dev/sdc is your MicroSD card *****
-*****      It might be /dev/sdb or some other device name      *****
-***** Failure to do so may result in you wiping your hard disk *****
+  cat /proc/partitions
 
-   # dd if=output/images/sdcard.img of=/dev/sdc bs=512
+Then, run the following command as root:
 
-=== Manual creation of SD card image =========================================
+*** WARNING! The command will destroy all the card content. Use with care! ***
 
-You'll need a spare MicroSD card with Freescale's special partition layout.
-This is basically three partitions:
-
-1) Type 53, the U-Boot partition, should be 16MB.
-2) VFAT, place the kernel uImage there
-3) Anything you like, for this example an ext2 partition, type 83 (linux).
-
-Assuming you see your MicroSD card as /dev/sdc you'd need to do, as root
-and from the buildroot project top level directory:
-(remember to replace /dev/sdc* with the appropiate device name!)
-
-***** WARNING: Double check that /dev/sdc is your MicroSD card *****
-*****      It might be /dev/sdb or some other device name      *****
-***** Failure to do so may result in you wiping your hard disk *****
-
-1. Unmount the filesystem(s) if they're already mounted, usually...
-
-   # for fs in `grep /dev/sdc /proc/mounts|cut -d ' ' -f 1`;do umount $fs;done
-
-   ...should work
-
-2. Blank the partition table out
-
-   # dd if=/dev/zero of=/dev/sdc bs=1024 count=1024
-
-3. Set up the partitions
-
-   # fdisk /dev/sdc
-   n
-   p
-   1
-   <ENTER>
-   +16MB
-   t
-   53
-   n
-   p
-   2
-   <ENTER>
-   +5M
-   t
-   2
-   4
-   n
-   p
-   3
-   <ENTER>
-   <ENTER>
-   w
-
-4. Fill up the first (U-Boot) partition
-   # dd if=output/images/u-boot.sd bs=512 of=/dev/sdc1
-
-5. Create VFAT Filesystem
-   # mkfs.vfat /dev/sdc2
-
-6. Mount and copy output/images/uImage.imx23-olinuxino to the VFAT partition, rename to uImage
-   # mount /dev/sdc2 /mnt
-   # cp output/images/uImages/uImage.imx23-olinuxino /mnt/uImage
-   # umount /mnt
-
-7. Fill up the third (filesystem) partition
-   # dd if=output/images/rootfs.ext2 of=/dev/sdc3 bs=512
-
-8. Remove the MicroSD card from your linux PC and put it into your olinuxino.
-
-9. Boot! You're done!
+ sudo dd if=output/images/sdcard.img of=/dev/<your-microsd-device>
index a7c3a445d0a8f447639b02162f3569b8fdb15ac9..7eab3f6b86fc6094a7063c37056de83ec959f6fb 100644 (file)
@@ -46,7 +46,7 @@ command as root:
 *** WARNING! This will destroy all the card content. Use with care! ***
 
 For details about the medium image layout, see the definition in
-board/freescale/common/genimage.cfg.template.
+board/freescale/common/imx/genimage.cfg.template.
 
 Boot the i.MX6UL Pico board
 =========================
index fabf27db73cd2e301a721ac1453815ddc4fe2451..3b4bfac070e35b418b73da41ae06d7fe4541fa55 100644 (file)
@@ -38,7 +38,7 @@ choice
          Select the specific U-Boot version you want to use
 
 config BR2_TARGET_UBOOT_LATEST_VERSION
-       bool "2016.09.01"
+       bool "2016.11"
 
 config BR2_TARGET_UBOOT_CUSTOM_VERSION
        bool "Custom version"
@@ -86,7 +86,7 @@ endif
 
 config BR2_TARGET_UBOOT_VERSION
        string
-       default "2016.09.01"    if BR2_TARGET_UBOOT_LATEST_VERSION
+       default "2016.11"       if BR2_TARGET_UBOOT_LATEST_VERSION
        default BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE \
                if BR2_TARGET_UBOOT_CUSTOM_VERSION
        default "custom"        if BR2_TARGET_UBOOT_CUSTOM_TARBALL
index db60dabf99b9b15803ff5dd71701503eabd16fd2..5b2c3bf49367a2082f750c745d41eccbb57cda11 100644 (file)
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256  95728e89dd476d17428f94080752ab48884be477b6a678941582aeef618b70bb  u-boot-2016.09.01.tar.bz2
+sha256  45813e6565dcc0436abe6752624324cdbf5f3ac106570d76d32b46ec529bcdc8  u-boot-2016.11.tar.bz2
index 9c870cfcf56f23f3e8b104a7ef606270ce0a73b8..b2242e701ac63b8fb203a2036c33706a7e05a6aa 100644 (file)
@@ -31,4 +31,4 @@ BR2_TARGET_ROOTFS_EXT4=y
 BR2_PACKAGE_HOST_DOSFSTOOLS=y
 BR2_PACKAGE_HOST_GENIMAGE=y
 BR2_PACKAGE_HOST_MTOOLS=y
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/imx28evk/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/mxs/post-image.sh"
index ed5f67cab2007dd2d8366d56bb8a12a90a17c589..1cf5fee0fdd3d6655f3197760f58c4a773878ef2 100644 (file)
@@ -21,7 +21,7 @@ BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-sabreauto"
 
 # filesystem
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
 
index 0cbe974477040417b75b69a2ea8b8a30b3b0ef0e..904f0a2442bb484de076a37ba7a547cf0cef313c 100644 (file)
@@ -21,7 +21,7 @@ BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-sabresd"
 
 # filesystem
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 
 # required tools to create the microSD image
index 9ae2f813e7ca2b378d7bbd653169e5cef981e8e5..64efd421959c1fc4a02dfa987307fff1f41e13a1 100644 (file)
@@ -21,7 +21,7 @@ BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-sabreauto"
 
 # filesystem
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
 
index 913a724212c5cda81d4f979302c9e7d76dcbd428..962c274d600cab3eff52789454aae3971732ea07 100644 (file)
@@ -21,7 +21,7 @@ BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6q-sabresd"
 
 # filesystem
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
 
index 79ebcb83c22cf8741fada4c03359d287e3db0d81..bf0b9e5f2de6cbd9e6dabba7f68017e2ee9de2d8 100644 (file)
@@ -18,7 +18,7 @@ BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sl-evk"
 
 # filesystem
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 
 # required tools to create the microSD image
index fed1a3e08a58cd290a35e0e7f1a02277b5d4a0f8..9b5cdb85e4b81eec53b642eef3af8a3fa2ef6d13 100644 (file)
@@ -21,7 +21,7 @@ BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6sx-sdb"
 
 # filesystem
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 
 # required tools to create the microSD image
index d033b9950c20c1bbb75ab77f1715c1e17cfc04e1..3c5a9099a0d4dc02e8fd13c3eb0ee157a247cc7a 100644 (file)
@@ -31,6 +31,6 @@ BR2_PACKAGE_HOST_GENIMAGE=y
 BR2_PACKAGE_HOST_MTOOLS=y
 
 # filesystem / image
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
index 4bedef10bedff1109e20d8b99c4a3944c151e27b..97d3cde16ead4aecdec5407baeda31b85594dcc5 100644 (file)
@@ -33,4 +33,4 @@ BR2_TARGET_UBOOT_FORMAT_IMX=y
 BR2_PACKAGE_HOST_DOSFSTOOLS=y
 BR2_PACKAGE_HOST_GENIMAGE=y
 BR2_PACKAGE_HOST_MTOOLS=y
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
diff --git a/configs/imx23evk_defconfig b/configs/imx23evk_defconfig
new file mode 100644 (file)
index 0000000..fe07440
--- /dev/null
@@ -0,0 +1,34 @@
+# architecture
+BR2_arm=y
+BR2_arm926t=y
+
+# Linux headers same as kernel, a 4.8 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_8=y
+
+# system
+BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
+
+# kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.8.6"
+BR2_LINUX_KERNEL_DEFCONFIG="mxs"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx23-evk"
+
+# bootloader
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARDNAME="mx23evk"
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.09.01"
+BR2_TARGET_UBOOT_FORMAT_SD=y
+
+# Filesystem
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT4=y
+
+# To generate SD card image
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/mxs/post-image.sh"
index 5ad8d7941e485f0b2ca6fb4f9b38ce4e20c82ead..7b9965497fe355ba2372ca6f149561d063b6df17 100644 (file)
@@ -45,6 +45,6 @@ BR2_PACKAGE_HOST_GENIMAGE=y
 BR2_PACKAGE_HOST_MTOOLS=y
 
 # filesystem / image
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
index 645fe8a13ad9e46d8faec4484e747afdf8aa9286..65a6d12f56eca4b2a85b5dbbab64f7cc617887a8 100644 (file)
@@ -14,7 +14,7 @@ BR2_PACKAGE_HOST_GENIMAGE=y
 BR2_PACKAGE_HOST_MTOOLS=y
 
 # Filesystem
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
 
index 1fca282536f745109d8f1502de990b010eb7c925..db82a36eaabb01b5ee0aa19c2611de0751ac05b3 100644 (file)
@@ -14,7 +14,7 @@ BR2_PACKAGE_HOST_GENIMAGE=y
 BR2_PACKAGE_HOST_MTOOLS=y
 
 # Filesystem
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
 
index 94ac818d1b20b83fa7458c0f5c5bf793f33cc01d..7597ae9ca74e447d09d0d4dcf6306583c96eb321 100644 (file)
@@ -14,7 +14,7 @@ BR2_PACKAGE_HOST_GENIMAGE=y
 BR2_PACKAGE_HOST_MTOOLS=y
 
 # Filesystem
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
 
index f74f42222ac50fe2b18ea80aa8234cb4830406f3..37ec4d7834c471c0b8680e3fb6efea9f788ef284 100644 (file)
@@ -2,6 +2,9 @@
 BR2_arm=y
 BR2_arm926t=y
 
+# Linux headers same as kernel, a 4.8 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_8=y
+
 # System
 BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
 
@@ -9,15 +12,15 @@ BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
 BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
 
 # Kernel
-BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_18=y
 BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
-BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.18.2"
-BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
-BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/olimex/imx233_olinuxino/linux-3.18.config"
-BR2_LINUX_KERNEL_APPENDED_UIMAGE=y
-BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x42000000"
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.8.6"
+BR2_LINUX_KERNEL_DEFCONFIG="mxs"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/olimex/imx233_olinuxino/linux-wifi.fragment"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx23-olinuxino"
+BR2_LINUX_KERNEL_UIMAGE=y
+BR2_LINUX_KERNEL_UIMAGE_LOADADDR="0x42000000"
 
 # Firmware for WiFi
 BR2_PACKAGE_LINUX_FIRMWARE=y
@@ -30,13 +33,14 @@ BR2_PACKAGE_ZD1211_FIRMWARE=y
 
 # Filesystem
 BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT4=y
 # BR2_TARGET_ROOTFS_TAR is not set
 
 # U-Boot
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
 BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.01"
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.09.01"
 BR2_TARGET_UBOOT_BOARD_DEFCONFIG="mx23_olinuxino"
 BR2_TARGET_UBOOT_FORMAT_SD=y
  
@@ -44,5 +48,5 @@ BR2_TARGET_UBOOT_FORMAT_SD=y
 BR2_PACKAGE_HOST_DOSFSTOOLS=y
 BR2_PACKAGE_HOST_GENIMAGE=y
 BR2_PACKAGE_HOST_MTOOLS=y
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/olimex/imx233_olinuxino/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/mxs/post-image.sh"
 
index 31251f464589a52de2f7e1ff88f53a97b82db6d2..fca7a1d06f7e56e81f2d804a3d103678e1627dce 100644 (file)
@@ -25,7 +25,7 @@ BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx7s-warp"
 BR2_TARGET_UBOOT=y
 BR2_TARGET_UBOOT_BOARDNAME="warp7_secure"
 BR2_TARGET_UBOOT_CUSTOM_VERSION=y
-BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.09.01"
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2016.11"
 BR2_TARGET_UBOOT_FORMAT_IMX=y
 
 # wifi firmware for brcm43430
@@ -38,7 +38,7 @@ BR2_PACKAGE_WPA_SUPPLICANT=y
 BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
 
 # Filesystem
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
 
index 5e9c0514b7dd90e857bb18002fdb07b1248e2ea3..531a8783b12556a4a3b446a8860b16e95ecde30b 100644 (file)
@@ -42,7 +42,7 @@ BR2_PACKAGE_HOST_DFU_UTIL=y
 BR2_PACKAGE_HOST_IMX_USB_LOADER=y
 
 # Filesystem
-BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/post-image.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/freescale/common/imx/post-image.sh"
 BR2_TARGET_ROOTFS_EXT2=y
 BR2_TARGET_ROOTFS_EXT2_4=y
 
index 2b31e12934df9d0fd85eca675f1102a97a6f385a..7515fdc77067089d2fe8466428270e924b2d0b8d 100644 (file)
@@ -95,6 +95,9 @@ endif
        $$(foreach s,$$(call qstrip,$$(BR2_ROOTFS_POST_FAKEROOT_SCRIPT)),\
                echo "echo '$$(TERM_BOLD)>>>   Executing fakeroot script $$(s)$$(TERM_RESET)'" >> $$(FAKEROOT_SCRIPT); \
                echo $$(s) $$(TARGET_DIR) $$(BR2_ROOTFS_POST_SCRIPT_ARGS) >> $$(FAKEROOT_SCRIPT)$$(sep))
+ifeq ($$(BR2_REPRODUCIBLE),y)
+       echo "find $$(TARGET_DIR) -print0 | xargs -0 -r touch -hd @$$(SOURCE_DATE_EPOCH)" >> $$(FAKEROOT_SCRIPT)
+endif
        $$(call PRINTF,$$(ROOTFS_$(2)_CMD)) >> $$(FAKEROOT_SCRIPT)
        chmod a+x $$(FAKEROOT_SCRIPT)
        PATH=$$(BR_PATH) $$(HOST_DIR)/usr/bin/fakeroot -- $$(FAKEROOT_SCRIPT)
index 11c69c5a8baca725af1625e5fedea11f933118d0..b14c977d761c5c0d638c8c01d0e84c4b4b61ec8f 100644 (file)
@@ -7,7 +7,8 @@
 TAR_OPTS := $(call qstrip,$(BR2_TARGET_ROOTFS_TAR_OPTIONS))
 
 define ROOTFS_TAR_CMD
-       tar $(TAR_OPTS) -cf $@ --numeric-owner -C $(TARGET_DIR) .
+       (cd $(TARGET_DIR); find -print0 | LC_ALL=C sort -z | \
+               tar $(TAR_OPTS) -cf $@ --null -T - --no-recursion --numeric-owner)
 endef
 
 $(eval $(call ROOTFS_TARGET,tar))
index 988427ca7cce8e4b0c77864b3ba3e3c41f42c530..7e826ccdf08bede14dd27bd72355e90781fe7898 100644 (file)
@@ -94,6 +94,14 @@ LINUX_MAKE_ENV = \
        $(TARGET_MAKE_ENV) \
        BR_BINARIES_DIR=$(BINARIES_DIR)
 
+ifeq ($(BR2_REPRODUCIBLE),y)
+LINUX_MAKE_ENV += \
+       KBUILD_BUILD_VERSION=1 \
+       KBUILD_BUILD_USER=buildroot \
+       KBUILD_BUILD_HOST=buildroot \
+       KBUILD_BUILD_TIMESTAMP="$(shell date -d @$(SOURCE_DATE_EPOCH))"
+endif
+
 # Get the real Linux version, which tells us where kernel modules are
 # going to be installed in the target filesystem.
 LINUX_VERSION_PROBED = `$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease 2>/dev/null`
index 9ed296f2d9236717e72b3d29e191a3f46b169383..b076dfd8b1c19aacc605871ee1de666065b264ce 100644 (file)
@@ -114,6 +114,7 @@ menu "Debugging, profiling and benchmark"
        source "package/tinymembench/Config.in"
        source "package/trace-cmd/Config.in"
        source "package/trinity/Config.in"
+       source "package/uclibc-ng-test/Config.in"
        source "package/valgrind/Config.in"
        source "package/whetstone/Config.in"
 endmenu
@@ -169,7 +170,6 @@ menu "Filesystem and flash utilities"
        source "package/genext2fs/Config.in"
        source "package/genpart/Config.in"
        source "package/genromfs/Config.in"
-       source "package/makedevs/Config.in"
        source "package/mmc-utils/Config.in"
        source "package/mtd/Config.in"
        source "package/mtools/Config.in"
@@ -453,7 +453,6 @@ endmenu
        source "package/sispmctl/Config.in"
        source "package/smartmontools/Config.in"
        source "package/smstools3/Config.in"
-       source "package/snowball-hdmiservice/Config.in"
        source "package/spi-tools/Config.in"
        source "package/sredird/Config.in"
        source "package/statserial/Config.in"
@@ -912,6 +911,7 @@ menu "Crypto"
        source "package/polarssl/Config.in"
        source "package/tinydtls/Config.in"
        source "package/trousers/Config.in"
+       source "package/ustream-ssl/Config.in"
 endmenu
 
 menu "Database"
@@ -1418,7 +1418,6 @@ menu "Miscellaneous"
        source "package/qemu/Config.in"
        source "package/qpdf/Config.in"
        source "package/shared-mime-info/Config.in"
-       source "package/snowball-init/Config.in"
        source "package/taskd/Config.in"
        source "package/wine/Config.in"
        source "package/xutil_util-macros/Config.in"
@@ -1615,6 +1614,7 @@ endif
        source "package/tunctl/Config.in"
        source "package/tvheadend/Config.in"
        source "package/udpcast/Config.in"
+       source "package/uhttpd/Config.in"
        source "package/ulogd/Config.in"
        source "package/ushare/Config.in"
        source "package/ussp-push/Config.in"
index 5d591e9a43aa452a53531b0f708f3bcde2c3c9d8..bd73219bbf3f136cfbae06763c734f7fb3216ffe 100644 (file)
@@ -184,7 +184,7 @@ endif
 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 TARGET_CROSS = $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-
 else
-TARGET_CROSS = $(HOST_DIR)/usr/bin/$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))-
+TARGET_CROSS = $(HOST_DIR)/usr/bin/$(TOOLCHAIN_EXTERNAL_PREFIX)-
 endif
 
 # Define TARGET_xx variables for all common binutils/gcc
index 7550f3a6cd68c4617391917150cdbdf8e8ea8a69..023ac79d30d74542c876b919f0a6aa032316c6f2 100644 (file)
@@ -10,7 +10,7 @@ config BR2_PACKAGE_AUDIT
        depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on !BR2_STATIC_LIBS
-       depends on !BR2_TOOLCHAIN_USES_MUSL
+       depends on !BR2_TOOLCHAIN_USES_MUSL # strndupa()
        help
          The audit package contains the user space utilities for
          storing and searching the audit records generated by
diff --git a/package/bash/0031-patchlevel-31.patch b/package/bash/0031-patchlevel-31.patch
deleted file mode 100644 (file)
index d285a1f..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-031
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-031
-
-Bug-Reported-by:       lolilolicon <lolilolicon@gmail.com>
-Bug-Reference-ID:      <CAMtVo_Nz=32Oq=zWTb6=+8gUNXOo2rRvud1W4oPnA-cgVk_ZqQ@mail.gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00139.html
-
-Bug-Description:
-
-The new nameref assignment functionality introduced in bash-4.3 did not perform
-enough validation on the variable value and would create variables with
-invalid names.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-4.3-patched/subst.h 2014-01-11 21:02:27.000000000 -0500
---- b/subst.h  2014-09-01 12:16:56.000000000 -0400
-***************
-*** 48,51 ****
---- 48,52 ----
-  #define ASS_MKGLOBAL 0x0008  /* force global assignment */
-  #define ASS_NAMEREF  0x0010  /* assigning to nameref variable */
-+ #define ASS_FROMREF  0x0020  /* assigning from value of nameref variable */
-  
-  /* Flags for the string extraction functions. */
-*** a/bash-4.3-patched/variables.c     2014-05-15 08:26:50.000000000 -0400
---- b/variables.c      2014-09-01 14:37:44.000000000 -0400
-***************
-*** 2504,2511 ****
-       int hflags, aflags;
-  {
-!   char *newval;
-    SHELL_VAR *entry;
-  
-    entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table);
-    /* Follow the nameref chain here if this is the global variables table */
-    if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table)
---- 2566,2590 ----
-       int hflags, aflags;
-  {
-!   char *newname, *newval;
-    SHELL_VAR *entry;
-+ #if defined (ARRAY_VARS)
-+   arrayind_t ind;
-+   char *subp;
-+   int sublen;
-+ #endif
-  
-+   newname = 0;
-+ #if defined (ARRAY_VARS)
-+   if ((aflags & ASS_FROMREF) && (hflags & HASH_NOSRCH) == 0 && valid_array_reference (name))
-+     {
-+       newname = array_variable_name (name, &subp, &sublen);
-+       if (newname == 0)
-+      return (SHELL_VAR *)NULL;       /* XXX */
-+       entry = hash_lookup (newname, table);
-+     }
-+   else
-+ #endif
-    entry = (hflags & HASH_NOSRCH) ? (SHELL_VAR *)NULL : hash_lookup (name, table);
-+ 
-    /* Follow the nameref chain here if this is the global variables table */
-    if (entry && nameref_p (entry) && (invisible_p (entry) == 0) && table == global_variables->table)
-***************
-*** 2538,2541 ****
---- 2617,2630 ----
-        }
-      }
-+ #if defined (ARRAY_VARS)
-+   else if (entry == 0 && newname)
-+     {
-+       entry = make_new_array_variable (newname);     /* indexed array by default */
-+       if (entry == 0)
-+      return entry;
-+       ind = array_expand_index (name, subp, sublen);
-+       bind_array_element (entry, ind, value, aflags);
-+     }
-+ #endif
-    else if (entry == 0)
-      {
-***************
-*** 2658,2662 ****
-                     if (nameref_cell (nv) == 0)
-                       return (bind_variable_internal (nv->name, value, nvc->table, 0, flags));
-!                    return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags));
-                   }
-                 else
---- 2747,2752 ----
-                     if (nameref_cell (nv) == 0)
-                       return (bind_variable_internal (nv->name, value, nvc->table, 0, flags));
-!                    /* XXX - bug here with ref=array[index] */
-!                    return (bind_variable_internal (nameref_cell (nv), value, nvc->table, 0, flags|ASS_FROMREF));
-                   }
-                 else
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 30
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 31
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0032-patchlevel-32.patch b/package/bash/0032-patchlevel-32.patch
deleted file mode 100644 (file)
index 6cdc0f1..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-032
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-032
-
-Bug-Reported-by:       crispusfairbairn@gmail.com
-Bug-Reference-ID:      <b5e499f7-3b98-408d-9f94-c0387580e73a@googlegroups.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00013.html
-
-Bug-Description:
-
-When bash is running in Posix mode, it allows signals -- including SIGCHLD --
-to interrupt the `wait' builtin, as Posix requires.  However, the interrupt
-causes bash to not run a SIGCHLD trap for all exited children.  This patch
-fixes the issue and restores the documented behavior in Posix mode.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-4.3-patched/jobs.c  2014-05-14 09:20:15.000000000 -0400
---- b/jobs.c   2014-09-09 11:50:38.000000000 -0400
-***************
-*** 3340,3344 ****
-       {
-         interrupt_immediately = 0;
-!        trap_handler (SIGCHLD);       /* set pending_traps[SIGCHLD] */
-         wait_signal_received = SIGCHLD;
-         /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up;
---- 3346,3352 ----
-       {
-         interrupt_immediately = 0;
-!        /* This was trap_handler (SIGCHLD) but that can lose traps if
-!           children_exited > 1 */
-!        queue_sigchld_trap (children_exited);
-         wait_signal_received = SIGCHLD;
-         /* If we're in a signal handler, let CHECK_WAIT_INTR pick it up;
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 31
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 32
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0033-patchlevel-33.patch b/package/bash/0033-patchlevel-33.patch
deleted file mode 100644 (file)
index 45fb686..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-033
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-033
-
-Bug-Reported-by:       mickael9@gmail.com, Jan Rome <jan.rome@gmail.com>
-Bug-Reference-ID:      <20140907224046.382ED3610CC@mickael-laptop.localdomain>,
-                       <540D661D.50908@gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00029.html
-                       http://lists.gnu.org/archive/html/bug-bash/2014-09/msg00030.html
-
-Bug-Description:
-
-Bash does not clean up the terminal state in all cases where bash or
-readline  modifies it and bash is subsequently terminated by a fatal signal.
-This happens when the `read' builtin modifies the terminal settings, both
-when readline is active and when it is not.  It occurs most often when a script
-installs a trap that exits on a signal without re-sending the signal to itself.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-4.3-patched/shell.c 2014-01-14 08:04:32.000000000 -0500
---- b/shell.c  2014-12-22 10:27:50.000000000 -0500
-***************
-*** 74,77 ****
---- 74,78 ----
-  
-  #if defined (READLINE)
-+ #  include <readline/readline.h>
-  #  include "bashline.h"
-  #endif
-***************
-*** 910,913 ****
---- 912,923 ----
-    fflush (stderr);
-  
-+   /* Clean up the terminal if we are in a state where it's been modified. */
-+ #if defined (READLINE)
-+   if (RL_ISSTATE (RL_STATE_TERMPREPPED) && rl_deprep_term_function)
-+     (*rl_deprep_term_function) ();
-+ #endif
-+   if (read_tty_modified ())
-+     read_tty_cleanup ();
-+ 
-    /* Do trap[0] if defined.  Allow it to override the exit status
-       passed to us. */
-*** a/bash-4.3-patched/builtins/read.def       2014-10-01 12:57:38.000000000 -0400
---- b/builtins/read.def        2014-12-22 10:48:54.000000000 -0500
-***************
-*** 141,148 ****
-  int sigalrm_seen;
-  
-! static int reading;
-  static SigHandler *old_alrm;
-  static unsigned char delim;
-  
-  /* In all cases, SIGALRM just sets a flag that we check periodically.  This
-     avoids problems with the semi-tricky stuff we do with the xfree of
---- 141,150 ----
-  int sigalrm_seen;
-  
-! static int reading, tty_modified;
-  static SigHandler *old_alrm;
-  static unsigned char delim;
-  
-+ static struct ttsave termsave;
-+ 
-  /* In all cases, SIGALRM just sets a flag that we check periodically.  This
-     avoids problems with the semi-tricky stuff we do with the xfree of
-***************
-*** 189,193 ****
-    SHELL_VAR *var;
-    TTYSTRUCT ttattrs, ttset;
--   struct ttsave termsave;
-  #if defined (ARRAY_VARS)
-    WORD_LIST *alist;
---- 191,194 ----
-***************
-*** 222,226 ****
-    USE_VAR(lastsig);
-  
-!   sigalrm_seen = reading = 0;
-  
-    i = 0;             /* Index into the string that we are reading. */
---- 223,227 ----
-    USE_VAR(lastsig);
-  
-!   sigalrm_seen = reading = tty_modified = 0;
-  
-    i = 0;             /* Index into the string that we are reading. */
-***************
-*** 439,442 ****
---- 440,445 ----
-         goto assign_vars;
-       }
-+       if (interactive_shell == 0)
-+      initialize_terminating_signals ();
-        old_alrm = set_signal_handler (SIGALRM, sigalrm);
-        add_unwind_protect (reset_alarm, (char *)NULL);
-***************
-*** 483,487 ****
---- 486,493 ----
-         if (i < 0)
-           sh_ttyerror (1);
-+        tty_modified = 1;
-         add_unwind_protect ((Function *)ttyrestore, (char *)&termsave);
-+        if (interactive_shell == 0)
-+          initialize_terminating_signals ();
-       }
-      }
-***************
-*** 498,502 ****
---- 504,511 ----
-       sh_ttyerror (1);
-  
-+       tty_modified = 1;
-        add_unwind_protect ((Function *)ttyrestore, (char *)&termsave);
-+       if (interactive_shell == 0)
-+      initialize_terminating_signals ();
-      }
-  
-***************
-*** 589,592 ****
---- 598,603 ----
-         else
-           lastsig = 0;
-+        if (terminating_signal && tty_modified)
-+          ttyrestore (&termsave);     /* fix terminal before exiting */
-         CHECK_TERMSIG;
-         eof = 1;
-***************
-*** 979,982 ****
---- 990,1007 ----
-  {
-    ttsetattr (ttp->fd, ttp->attrs);
-+   tty_modified = 0;
-+ }
-+ 
-+ void
-+ read_tty_cleanup ()
-+ {
-+   if (tty_modified)
-+     ttyrestore (&termsave);
-+ }
-+ 
-+ int
-+ read_tty_modified ()
-+ {
-+   return (tty_modified);
-  }
-  
-*** ./bash-4.3-patched/builtins/common.h       2014-10-01 12:57:47.000000000 -0400
---- b/builtins/common.h        2014-12-22 10:10:14.000000000 -0500
-***************
-*** 123,126 ****
---- 141,148 ----
-  extern void getopts_reset __P((int));
-  
-+ /* Functions from read.def */
-+ extern void read_tty_cleanup __P((void));
-+ extern int read_tty_modified __P((void));
-+ 
-  /* Functions from set.def */
-  extern int minus_o_option_value __P((char *));
-*** a/bash-4.3-patched/bashline.c      2014-05-14 09:22:39.000000000 -0400
---- b/bashline.c       2014-09-08 11:28:56.000000000 -0400
-***************
-*** 203,206 ****
---- 203,207 ----
-  extern int array_needs_making;
-  extern int posixly_correct, no_symbolic_links;
-+ extern int sigalrm_seen;
-  extern char *current_prompt_string, *ps1_prompt;
-  extern STRING_INT_ALIST word_token_alist[];
-***************
-*** 4209,4214 ****
-    /* If we're going to longjmp to top_level, make sure we clean up readline.
-       check_signals will call QUIT, which will eventually longjmp to top_level,
-!      calling run_interrupt_trap along the way. */
-!   if (interrupt_state)
-      rl_cleanup_after_signal ();
-    bashline_reset_event_hook ();
---- 4262,4268 ----
-    /* If we're going to longjmp to top_level, make sure we clean up readline.
-       check_signals will call QUIT, which will eventually longjmp to top_level,
-!      calling run_interrupt_trap along the way.  The check for sigalrm_seen is
-!      to clean up the read builtin's state. */
-!   if (terminating_signal || interrupt_state || sigalrm_seen)
-      rl_cleanup_after_signal ();
-    bashline_reset_event_hook ();
-*** a/bash-4.3-patched/sig.c   2014-01-10 15:06:06.000000000 -0500
---- b/sig.c    2014-09-08 11:26:33.000000000 -0400
-***************
-*** 533,538 ****
-    /* Set the event hook so readline will call it after the signal handlers
-       finish executing, so if this interrupted character input we can get
-!      quick response. */
-!   if (interactive_shell && interactive && no_line_editing == 0)
-      bashline_set_event_hook ();
-  #endif
---- 533,540 ----
-    /* Set the event hook so readline will call it after the signal handlers
-       finish executing, so if this interrupted character input we can get
-!      quick response.  If readline is active or has modified the terminal we
-!      need to set this no matter what the signal is, though the check for
-!      RL_STATE_TERMPREPPED is possibly redundant. */
-!   if (RL_ISSTATE (RL_STATE_SIGHANDLER) || RL_ISSTATE (RL_STATE_TERMPREPPED))
-      bashline_set_event_hook ();
-  #endif
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 32
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 33
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0034-patchlevel-34.patch b/package/bash/0034-patchlevel-34.patch
deleted file mode 100644 (file)
index 79c8945..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-034
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-034
-
-Bug-Reported-by:       Dreamcat4 <dreamcat4@gmail.com>
-Bug-Reference-ID:      <CAN39uTpAEs2GFu4ebC_SfSVMRTh-DJ9YanrY4BZZ3OO+CCHjng@mail.gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2015-05/msg00001.html
-
-Bug-Description:
-
-If neither the -f nor -v options is supplied to unset, and a name argument is
-found to be a function and unset, subsequent name arguments are not treated as
-variables before attempting to unset a function by that name.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-4.3-patched/builtins/set.def        2013-04-19 07:20:34.000000000 -0400
---- b/builtins/set.def 2015-05-05 13:25:36.000000000 -0400
-***************
-*** 752,758 ****
---- 797,805 ----
-  {
-    int unset_function, unset_variable, unset_array, opt, nameref, any_failed;
-+   int global_unset_func, global_unset_var;
-    char *name;
-  
-    unset_function = unset_variable = unset_array = nameref = any_failed = 0;
-+   global_unset_func = global_unset_var = 0;
-  
-    reset_internal_getopt ();
-***************
-*** 762,769 ****
-       {
-       case 'f':
-!        unset_function = 1;
-         break;
-       case 'v':
-!        unset_variable = 1;
-         break;
-       case 'n':
---- 809,816 ----
-       {
-       case 'f':
-!        global_unset_func = 1;
-         break;
-       case 'v':
-!        global_unset_var = 1;
-         break;
-       case 'n':
-***************
-*** 778,782 ****
-    list = loptend;
-  
-!   if (unset_function && unset_variable)
-      {
-        builtin_error (_("cannot simultaneously unset a function and a variable"));
---- 825,829 ----
-    list = loptend;
-  
-!   if (global_unset_func && global_unset_var)
-      {
-        builtin_error (_("cannot simultaneously unset a function and a variable"));
-***************
-*** 796,799 ****
---- 843,849 ----
-        name = list->word->word;
-  
-+       unset_function = global_unset_func;
-+       unset_variable = global_unset_var;
-+ 
-  #if defined (ARRAY_VARS)
-        unset_array = 0;
-
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 33
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 34
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0035-patchlevel-35.patch b/package/bash/0035-patchlevel-35.patch
deleted file mode 100644 (file)
index c18b60d..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-035
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-035
-
-Bug-Reported-by:       <romerox.adrian@gmail.com>
-Bug-Reference-ID:      <CABV5r3zhPXmSKUe9uedeGc5YFBM2njJ1iVmY2h5neWdQpDBQug@mail.gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00045.html
-
-Bug-Description:
-
-A locale with a long name can trigger a buffer overflow and core dump.  This
-applies on systems that do not have locale_charset in libc, are not using
-GNU libiconv, and are not using the libintl that ships with bash in lib/intl.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-4.3-patched/lib/sh/unicode.c        2014-01-30 16:47:19.000000000 -0500
---- b/lib/sh/unicode.c 2015-05-01 08:58:30.000000000 -0400
-***************
-*** 79,83 ****
-    if (s)
-      {
-!       strcpy (charsetbuf, s+1);
-        t = strchr (charsetbuf, '@');
-        if (t)
---- 79,84 ----
-    if (s)
-      {
-!       strncpy (charsetbuf, s+1, sizeof (charsetbuf) - 1);
-!       charsetbuf[sizeof (charsetbuf) - 1] = '\0';
-        t = strchr (charsetbuf, '@');
-        if (t)
-***************
-*** 85,89 ****
-        return charsetbuf;
-      }
-!   strcpy (charsetbuf, locale);
-    return charsetbuf;
-  }
---- 86,91 ----
-        return charsetbuf;
-      }
-!   strncpy (charsetbuf, locale, sizeof (charsetbuf) - 1);
-!   charsetbuf[sizeof (charsetbuf) - 1] = '\0';
-    return charsetbuf;
-  }
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 34
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 35
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0036-patchlevel-36.patch b/package/bash/0036-patchlevel-36.patch
deleted file mode 100644 (file)
index f35b29b..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-036
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-036
-
-Bug-Reported-by:       emanuelczirai@cryptolab.net
-Bug-Reference-ID:      <f962e4f556da5ebfadaf7afe9c78a8cb@cryptolab.net>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00071.html
-
-Bug-Description:
-
-When evaluating and setting integer variables, and the assignment fails to
-create a variable (for example, when performing an operation on an array
-variable with an invalid subscript), bash attempts to dereference a null
-pointer, causing a segmentation violation.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-20150206/variables.c        2015-01-23 20:39:27.000000000 -0500
---- b/variables.c      2015-02-19 13:56:12.000000000 -0500
-***************
-*** 2834,2841 ****
-      v = bind_variable (lhs, rhs, 0);
-  
-!   if (v && isint)
-!     VSETATTR (v, att_integer);
-! 
-!   VUNSETATTR (v, att_invisible);
-  
-    return (v);
---- 2834,2843 ----
-      v = bind_variable (lhs, rhs, 0);
-  
-!   if (v)
-!     {
-!       if (isint)
-!      VSETATTR (v, att_integer);
-!       VUNSETATTR (v, att_invisible);
-!     }
-  
-    return (v);
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 35
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 36
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0037-patchlevel-37.patch b/package/bash/0037-patchlevel-37.patch
deleted file mode 100644 (file)
index 5f8aff3..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-037
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-037
-
-Bug-Reported-by:       Greg Wooledge <wooledg@eeg.ccf.org>
-Bug-Reference-ID:      <20150204144240.GN13956@eeg.ccf.org>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00007.html
-
-Bug-Description:
-
-If an associative array uses `@' or `*' as a subscript, `declare -p' produces
-output that cannot be reused as input.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-4.3-patched/assoc.c 2011-11-05 16:39:05.000000000 -0400
---- b/assoc.c  2015-02-04 15:28:25.000000000 -0500
-***************
-*** 437,440 ****
---- 440,445 ----
-       if (sh_contains_shell_metas (tlist->key))
-         istr = sh_double_quote (tlist->key);
-+      else if (ALL_ELEMENT_SUB (tlist->key[0]) && tlist->key[1] == '\0')
-+        istr = sh_double_quote (tlist->key);  
-       else
-         istr = tlist->key;    
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 36
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 37
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0038-patchlevel-38.patch b/package/bash/0038-patchlevel-38.patch
deleted file mode 100644 (file)
index 09fd9c2..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-038
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-038
-
-Bug-Reported-by:       worley@alum.mit.edu (Dale R. Worley)
-Bug-Reference-ID:      <201406100051.s5A0pCeB014978@hobgoblin.ariadne.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00028.html
-
-Bug-Description:
-
-There are a number of instances where `time' is not recognized as a reserved
-word when the shell grammar says it should be.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-4.3-patched/parse.y 2014-04-07 11:56:12.000000000 -0400
---- b/parse.y  2014-06-11 10:25:53.000000000 -0400
-***************
-*** 2819,2827 ****
-      case OR_OR:
-      case '&':
-      case DO:
-      case THEN:
-      case ELSE:
-      case '{':                /* } */
-!     case '(':                /* ) */
-      case BANG:               /* ! time pipeline */
-      case TIME:               /* time time pipeline */
---- 2819,2832 ----
-      case OR_OR:
-      case '&':
-+     case WHILE:
-      case DO:
-+     case UNTIL:
-+     case IF:
-      case THEN:
-+     case ELIF:
-      case ELSE:
-      case '{':                /* } */
-!     case '(':                /* )( */
-!     case ')':                /* only valid in case statement */
-      case BANG:               /* ! time pipeline */
-      case TIME:               /* time time pipeline */
-*** a/bash-4.3-patched/y.tab.c 2014-10-05 13:52:50.000000000 -0400
---- b/y.tab.c  2015-05-19 15:08:43.000000000 -0400
-***************
-*** 5131,5139 ****
-      case OR_OR:
-      case '&':
-      case DO:
-      case THEN:
-      case ELSE:
-      case '{':                /* } */
-!     case '(':                /* ) */
-      case BANG:               /* ! time pipeline */
-      case TIME:               /* time time pipeline */
---- 5131,5144 ----
-      case OR_OR:
-      case '&':
-+     case WHILE:
-      case DO:
-+     case UNTIL:
-+     case IF:
-      case THEN:
-+     case ELIF:
-      case ELSE:
-      case '{':                /* } */
-!     case '(':                /* )( */
-!     case ')':                /* only valid in case statement */
-      case BANG:               /* ! time pipeline */
-      case TIME:               /* time time pipeline */
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 37
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 38
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0039-patchlevel-39.patch b/package/bash/0039-patchlevel-39.patch
deleted file mode 100644 (file)
index 2a555b9..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-039
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-039
-
-Bug-Reported-by:       SN <poczta-sn@gazeta.pl>
-Bug-Reference-ID:      <54E2554C.205@gazeta.pl>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2015-02/msg00060.html
-
-Bug-Description:
-
-Using the output of `declare -p' when run in a function can result in variables
-that are invisible to `declare -p'.  This problem occurs when an assignment
-builtin such as `declare' receives a quoted compound array assignment as one of
-its arguments.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-4.3-patched/arrayfunc.c     2014-10-01 13:08:48.000000000 -0400
---- b/arrayfunc.c      2015-02-19 14:33:05.000000000 -0500
-***************
-*** 405,408 ****
---- 405,411 ----
-      else
-        array_insert (a, i, l->word->word);
-+ 
-+   VUNSETATTR (var, att_invisible);   /* no longer invisible */
-+ 
-    return var;
-  }
-***************
-*** 635,638 ****
---- 638,645 ----
-    if (nlist)
-      dispose_words (nlist);
-+ 
-+   if (var)
-+     VUNSETATTR (var, att_invisible); /* no longer invisible */
-+ 
-    return (var);
-  }
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 38
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 39
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0040-patchlevel-40.patch b/package/bash/0040-patchlevel-40.patch
deleted file mode 100644 (file)
index 2a03c45..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-040
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacrias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-040
-
-Bug-Reported-by:       Jean Delvare <jdelvare@suse.de>
-Bug-Reference-ID:      <20150609180231.5f463695@endymion.delvare>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00033.html
-
-Bug-Description:
-
-There is a memory leak that occurs when bash expands an array reference on
-the rhs of an assignment statement.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-4.3-patched/subst.c 2014-10-01 12:57:47.000000000 -0400
---- b/subst.c  2015-06-22 09:16:53.000000000 -0400
-***************
-*** 5783,5787 ****
-        if (pflags & PF_ASSIGNRHS)
-          {
-!           temp = array_variable_name (name, &tt, (int *)0);
-            if (ALL_ELEMENT_SUB (tt[0]) && tt[1] == ']')
-           temp = array_value (name, quoted|Q_DOUBLE_QUOTES, 0, &atype, &ind);
---- 5783,5787 ----
-        if (pflags & PF_ASSIGNRHS)
-          {
-!           var = array_variable_part (name, &tt, (int *)0);
-            if (ALL_ELEMENT_SUB (tt[0]) && tt[1] == ']')
-           temp = array_value (name, quoted|Q_DOUBLE_QUOTES, 0, &atype, &ind);
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 39
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 40
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0041-patchlevel-41.patch b/package/bash/0041-patchlevel-41.patch
deleted file mode 100644 (file)
index c8ba4b1..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-041
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-041
-
-Bug-Reported-by:       Hanno Böck <hanno@hboeck.de>
-Bug-Reference-ID:      <20150623131106.6f111da9@pc1>, <20150707004640.0e61d2f9@pc1>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00089.html,
-                       http://lists.gnu.org/archive/html/bug-bash/2015-07/msg00018.html
-
-Bug-Description:
-
-There are several out-of-bounds read errors that occur when completing command
-lines where assignment statements appear before the command name.  The first
-two appear only when programmable completion is enabled; the last one only
-happens when listing possible completions.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-4.3.40/bashline.c   2014-12-29 14:39:43.000000000 -0500
---- b/bashline.c       2015-08-12 10:21:58.000000000 -0400
-***************
-*** 1469,1476 ****
---- 1469,1489 ----
-        os = start;
-        n = 0;
-+       was_assignment = 0;
-        s = find_cmd_start (os);
-        e = find_cmd_end (end);
-        do
-       {
-+        /* Don't read past the end of rl_line_buffer */
-+        if (s > rl_end)
-+          {
-+            s1 = s = e1;
-+            break;
-+          }
-+        /* Or past point if point is within an assignment statement */
-+        else if (was_assignment && s > rl_point)
-+          {
-+            s1 = s = e1;
-+            break;
-+          }
-         /* Skip over assignment statements preceding a command name.  If we
-            don't find a command name at all, we can perform command name
-*** a/bash-4.3.40/lib/readline/complete.c      2013-10-14 09:27:10.000000000 -0400
---- b/lib/readline/complete.c  2015-07-31 09:34:39.000000000 -0400
-***************
-*** 690,693 ****
---- 690,695 ----
-    if (temp == 0 || *temp == '\0')
-      return (pathname);
-+   else if (temp[1] == 0 && temp == pathname)
-+     return (pathname);
-    /* If the basename is NULL, we might have a pathname like '/usr/src/'.
-       Look for a previous slash and, if one is found, return the portion
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 40
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 41
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0042-patchlevel-42.patch b/package/bash/0042-patchlevel-42.patch
deleted file mode 100644 (file)
index bb3471c..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-042
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-042
-
-Bug-Reported-by:       Nathan Neulinger <nneul@neulinger.org>
-Bug-Reference-ID:      <558EFDF2.7060402@neulinger.org>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2015-06/msg00096.html
-
-Bug-Description:
-
-There is a problem when parsing command substitutions containing `case'
-commands within pipelines that causes the parser to not correctly identify
-the end of the command substitution.
-
-Patch (apply with `patch -p0'):
-
-*** a/bash-4.3-patched/parse.y 2015-05-18 19:27:05.000000000 -0400
---- b/parse.y  2015-06-29 10:59:27.000000000 -0400
-***************
-*** 3709,3712 ****
---- 3709,3714 ----
-             tflags |= LEX_INWORD;
-             lex_wlen = 0;
-+            if (tflags & LEX_RESWDOK)
-+              lex_rwlen = 0;
-           }
-       }
-*** a/bash-4.3-patched/y.tab.c 2015-05-18 19:27:05.000000000 -0400
---- b/y.tab.c  2015-06-29 10:59:27.000000000 -0400
-***************
-*** 6021,6024 ****
---- 6021,6026 ----
-             tflags |= LEX_INWORD;
-             lex_wlen = 0;
-+            if (tflags & LEX_RESWDOK)
-+              lex_rwlen = 0;
-           }
-       }
-*** a/bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 41
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 42
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0043-patchlevel-43.patch b/package/bash/0043-patchlevel-43.patch
deleted file mode 100644 (file)
index a30a981..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-043
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-043
-
-Bug-Reported-by:       lolilolicon <lolilolicon@gmail.com>
-Bug-Reference-ID:      <CAMtVo_MF16KWanCB4C8WxA88Qt26zWsvV6V7+_U2fM0E6tCDxw@mail.gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-08/msg00040.html
-
-Bug-Description:
-
-When the lastpipe option is enabled, the last component can contain nested
-pipelines and cause a segmentation fault under certain circumestances.
-
-Patch (apply with `patch -p0'):
-
-*** a/execute_cmd.c    2014-07-30 10:26:52.000000000 -0400
---- b/execute_cmd.c    2014-08-15 08:55:24.000000000 -0400
-***************
-*** 2406,2412 ****
-      {
-  #if defined (JOB_CONTROL)
-!       append_process (savestring (the_printed_command), dollar_dollar_pid, exec_result, lastpipe_jid);
-! #endif
-        lstdin = wait_for (lastpid);
-  #if defined (JOB_CONTROL)
-        /* If wait_for removes the job from the jobs table, use result of last
---- 2433,2447 ----
-      {
-  #if defined (JOB_CONTROL)
-!       if (INVALID_JOB (lastpipe_jid) == 0)
-!         {
-!           append_process (savestring (the_printed_command_except_trap), dollar_dollar_pid, exec_result, lastpipe_jid);
-!           lstdin = wait_for (lastpid);
-!         }
-!       else
-!         lstdin = wait_for_single_pid (lastpid);              /* checks bgpids list */
-! #else
-        lstdin = wait_for (lastpid);
-+ #endif
-+ 
-  #if defined (JOB_CONTROL)
-        /* If wait_for removes the job from the jobs table, use result of last
-*** a/patchlevel.h     2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 42
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 43
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0044-patchlevel-44.patch b/package/bash/0044-patchlevel-44.patch
deleted file mode 100644 (file)
index 62d5412..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-044
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-044
-
-Bug-Reported-by:       Ondrej Oprala <ooprala@redhat.com>
-Bug-Reference-ID:      <539ED55B.2080103@redhat.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00046.html
-
-Bug-Description:
-
-A typo prevents the `compat42' shopt option from working as intended.
-
-Patch (apply with `patch -p0'):
-
-diff -rC 2 bash-4.3.42/builtins/shopt.def bash-4.3.43/builtins/shopt.def
-*** a/builtins/shopt.def       2013-02-27 09:43:20.000000000 -0500
---- b/builtins/shopt.def       2015-10-16 11:25:28.000000000 -0400
-***************
-*** 161,165 ****
-    { "compat40", &shopt_compat40, set_compatibility_level },
-    { "compat41", &shopt_compat41, set_compatibility_level },
-!   { "compat42", &shopt_compat41, set_compatibility_level },
-  #if defined (READLINE)
-    { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL},
---- 161,165 ----
-    { "compat40", &shopt_compat40, set_compatibility_level },
-    { "compat41", &shopt_compat41, set_compatibility_level },
-!   { "compat42", &shopt_compat42, set_compatibility_level },
-  #if defined (READLINE)
-    { "complete_fullquote", &complete_fullquote, (shopt_set_func_t *)NULL},
-
-*** a/patchlevel.h     2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 43
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 44
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0045-patchlevel-45.patch b/package/bash/0045-patchlevel-45.patch
deleted file mode 100644 (file)
index bb11b1a..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-045
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-045
-
-Bug-Reported-by:       Basin Ilya <basinilya@gmail.com>
-Bug-Reference-ID:      <5624C0AC.8070802@gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2015-10/msg00141.html
-
-Bug-Description:
-
-If a file open attempted as part of a redirection fails because it is interrupted
-by a signal, the shell needs to process any pending traps to allow the redirection
-to be canceled.
-
-Patch (apply with `patch -p0'):
-
-*** a/redir.c  2014-12-03 10:47:38.000000000 -0500
---- b/redir.c  2015-01-16 10:15:47.000000000 -0500
-***************
-*** 672,676 ****
-         e = errno;
-         if (fd < 0 && e == EINTR)
-!          QUIT;
-         errno = e;
-       }
---- 672,679 ----
-         e = errno;
-         if (fd < 0 && e == EINTR)
-!          {
-!            QUIT;
-!            run_pending_traps ();
-!          }
-         errno = e;
-       }
-
-*** a/patchlevel.h     2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 44
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 45
-  
-  #endif /* _PATCHLEVEL_H_ */
diff --git a/package/bash/0046-patchlevel-46.patch b/package/bash/0046-patchlevel-46.patch
deleted file mode 100644 (file)
index bc3798a..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/bash/bash-4.3-patches/bash43-046
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-                            BASH PATCH REPORT
-                            =================
-
-Bash-Release:  4.3
-Patch-ID:      bash43-046
-
-Bug-Reported-by:       Sergey Tselikh <stselikh@gmail.com>
-Bug-Reference-ID:      <20150816110235.91f3e12e3f20d20cdaad963e@gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2015-08/msg00080.html
-
-Bug-Description:
-
-An incorrect conversion from an indexed to associative array can result in a
-core dump.
-
-Patch (apply with `patch -p0'):
-
-*** a/subst.c  2015-08-13 11:32:54.000000000 -0400
---- b/subst.c  2015-08-18 10:13:59.000000000 -0400
-***************
-*** 9562,9566 ****
-         opts[opti] = '\0';
-         if (opti > 0)
-!          make_internal_declare (tlist->word->word, opts);
-  
-         t = do_word_assignment (tlist->word, 0);
---- 9562,9573 ----
-         opts[opti] = '\0';
-         if (opti > 0)
-!          {
-!            t = make_internal_declare (tlist->word->word, opts);
-!            if (t != EXECUTION_SUCCESS)
-!              {
-!                last_command_exit_value = t;
-!                exp_jump_to_top_level (DISCARD);
-!              }
-!          }
-  
-         t = do_word_assignment (tlist->word, 0);
-
-*** a/patchlevel.h     2012-12-29 10:47:57.000000000 -0500
---- b/patchlevel.h     2014-03-20 20:01:28.000000000 -0400
-***************
-*** 26,30 ****
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 45
-  
-  #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
-     looks for to find the patch level (for the sccs version string). */
-  
-! #define PATCHLEVEL 46
-  
-  #endif /* _PATCHLEVEL_H_ */
index faf2364588ba2e7b4aa8dbff2b5fa0d7d175c8e1..adbd60868a85f8374ddcd01f0fc4ed9f87bdd511 100644 (file)
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256 317881019bbf2262fb814b7dd8e40632d13c3608d2f237800a8828fbb8a640dd        bash-4.3.30.tar.gz
+sha256 d86b3392c1202e8ff5a423b302e6284db7f8f435ea9f39b5b1b20fd3ac36dfcb  bash-4.4.tar.gz
index 3cd8d8273c873d5f4809ccbfa093f9f0d80d2e37..090cf5224cb73c8b2c8bc334e944a05b28e4a666 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-BASH_VERSION = 4.3.30
+BASH_VERSION = 4.4
 BASH_SITE = $(BR2_GNU_MIRROR)/bash
 # Build after since bash is better than busybox shells
 BASH_DEPENDENCIES = ncurses readline host-bison \
index cbb3aa3cadbfb2b03e9919348ded31bba5e6dbf9..b030f1a08a2cd1eaced3d5f9a376730e4acc2262 100644 (file)
@@ -1,2 +1,2 @@
 # From https://www.kernel.org/pub/linux/bluetooth/sha256sums.asc:
-sha256  21d1bc9150d3576296595217efb98a746b592389d25d5637e8bee5da7272593b    bluez-5.39.tar.xz
+sha256 16c9c05d2a1da644ce3570d975ada3643d2e60c007a955bac09c0a0efeb58d15  bluez-5.43.tar.xz
index 49cc7c21760d661eb68f51382a24da0865e972da..66c3eab1e9b731563b7e9bbfe14f0382abb09e72 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-BLUEZ5_UTILS_VERSION = 5.39
+BLUEZ5_UTILS_VERSION = 5.43
 BLUEZ5_UTILS_SOURCE = bluez-$(BLUEZ5_UTILS_VERSION).tar.xz
 BLUEZ5_UTILS_SITE = $(BR2_KERNEL_MIRROR)/linux/bluetooth
 BLUEZ5_UTILS_INSTALL_STAGING = YES
diff --git a/package/bridge-utils/0002-libbridge-fix-headers-conflict-with-musl-libc.patch b/package/bridge-utils/0002-libbridge-fix-headers-conflict-with-musl-libc.patch
deleted file mode 100644 (file)
index fd7f45e..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-From 24e5409190820a14e4d097924b1acaab62bb3b99 Mon Sep 17 00:00:00 2001
-From: Baruch Siach <baruch@tkos.co.il>
-Date: Sun, 30 Oct 2016 18:12:00 +0200
-Subject: [PATCH] libbridge: fix headers conflict with musl libc
-
-Don't including kernel headers directly to avoid headers conflict like:
-
-In file included from .../sysroot/usr/include/linux/if_bridge.h:18:0,
-                 from libbridge.h:26,
-                 from libbridge_if.c:26:
-.../sysroot/usr/include/linux/in6.h:32:8: error: redefinition of â€˜struct in6_addr’
- struct in6_addr {
-        ^
-In file included from libbridge.h:24:0,
-                 from libbridge_if.c:26:
-.../sysroot/usr/include/netinet/in.h:23:8: note: originally defined here
- struct in6_addr {
-        ^
-
-Instead copy the required linux/if_bridge.h definitions into
-libbridge_private.h.
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
-Patch status: Nacked
-(https://lists.linuxfoundation.org/pipermail/bridge/2016-November/010107.html)
----
- libbridge/libbridge.h         |  1 -
- libbridge/libbridge_private.h | 83 ++++++++++++++++++++++++++++++++++++++++++-
- 2 files changed, 82 insertions(+), 2 deletions(-)
-
-diff --git a/libbridge/libbridge.h b/libbridge/libbridge.h
-index ff047f933cd6..18b40cd90413 100644
---- a/libbridge/libbridge.h
-+++ b/libbridge/libbridge.h
-@@ -23,7 +23,6 @@
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <linux/if.h>
--#include <linux/if_bridge.h>
- /* defined in net/if.h but that conflicts with linux/if.h... */
- extern unsigned int if_nametoindex (const char *__ifname);
-diff --git a/libbridge/libbridge_private.h b/libbridge/libbridge_private.h
-index 99a511dae00a..565025b7bccb 100644
---- a/libbridge/libbridge_private.h
-+++ b/libbridge/libbridge_private.h
-@@ -24,7 +24,88 @@
- #include <linux/sockios.h>
- #include <sys/time.h>
- #include <sys/ioctl.h>
--#include <linux/if_bridge.h>
-+
-+/* From linux/if_ether.h */
-+#ifndef ETH_ALEN
-+#define ETH_ALEN      6
-+#endif
-+
-+/* From linux/if_bridge.h */
-+#ifndef BRCTL_GET_VERSION
-+#define BRCTL_GET_VERSION 0
-+#define BRCTL_GET_BRIDGES 1
-+#define BRCTL_ADD_BRIDGE 2
-+#define BRCTL_DEL_BRIDGE 3
-+#define BRCTL_ADD_IF 4
-+#define BRCTL_DEL_IF 5
-+#define BRCTL_GET_BRIDGE_INFO 6
-+#define BRCTL_GET_PORT_LIST 7
-+#define BRCTL_SET_BRIDGE_FORWARD_DELAY 8
-+#define BRCTL_SET_BRIDGE_HELLO_TIME 9
-+#define BRCTL_SET_BRIDGE_MAX_AGE 10
-+#define BRCTL_SET_AGEING_TIME 11
-+#define BRCTL_SET_GC_INTERVAL 12
-+#define BRCTL_GET_PORT_INFO 13
-+#define BRCTL_SET_BRIDGE_STP_STATE 14
-+#define BRCTL_SET_BRIDGE_PRIORITY 15
-+#define BRCTL_SET_PORT_PRIORITY 16
-+#define BRCTL_SET_PATH_COST 17
-+#define BRCTL_GET_FDB_ENTRIES 18
-+
-+#define BR_STATE_DISABLED 0
-+#define BR_STATE_LISTENING 1
-+#define BR_STATE_LEARNING 2
-+#define BR_STATE_FORWARDING 3
-+#define BR_STATE_BLOCKING 4
-+
-+struct __bridge_info {
-+      __u64 designated_root;
-+      __u64 bridge_id;
-+      __u32 root_path_cost;
-+      __u32 max_age;
-+      __u32 hello_time;
-+      __u32 forward_delay;
-+      __u32 bridge_max_age;
-+      __u32 bridge_hello_time;
-+      __u32 bridge_forward_delay;
-+      __u8 topology_change;
-+      __u8 topology_change_detected;
-+      __u8 root_port;
-+      __u8 stp_enabled;
-+      __u32 ageing_time;
-+      __u32 gc_interval;
-+      __u32 hello_timer_value;
-+      __u32 tcn_timer_value;
-+      __u32 topology_change_timer_value;
-+      __u32 gc_timer_value;
-+};
-+
-+struct __port_info {
-+      __u64 designated_root;
-+      __u64 designated_bridge;
-+      __u16 port_id;
-+      __u16 designated_port;
-+      __u32 path_cost;
-+      __u32 designated_cost;
-+      __u8 state;
-+      __u8 top_change_ack;
-+      __u8 config_pending;
-+      __u8 unused0;
-+      __u32 message_age_timer_value;
-+      __u32 forward_delay_timer_value;
-+      __u32 hold_timer_value;
-+};
-+
-+struct __fdb_entry {
-+      __u8 mac_addr[ETH_ALEN];
-+      __u8 port_no;
-+      __u8 is_local;
-+      __u32 ageing_timer_value;
-+      __u8 port_hi;
-+      __u8 pad0;
-+      __u16 unused;
-+};
-+#endif /* BRCTL_GET_VERSION */
- #define MAX_BRIDGES   1024
- #define MAX_PORTS     1024
--- 
-2.10.1
-
index de9c56b930256e4a9824dabb35b85d2cc46b5e69..6d262a162f6e0901dd5a323f09cb26ab553f17fc 100644 (file)
@@ -1,2 +1,2 @@
 # From https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/sha256sums.asc
-sha256 81c023f519c8565b23eddb90e6d0eec2be63ee52e440708e418539dbaa635c5f        btrfs-progs-v4.8.2.tar.xz
+sha256 bf26ead666c337a62a74bc9ec7f8dd9ee200e60e5fe5289967d53328eff261c5  btrfs-progs-v4.8.4.tar.xz
index 2dd92463522c92f56b6efeb898424ed3f8b88662..e780903dc3dbf1e1e510d9560b262ab831f4ccec 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-BTRFS_PROGS_VERSION = 4.8.2
+BTRFS_PROGS_VERSION = 4.8.4
 BTRFS_PROGS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/people/kdave/btrfs-progs
 BTRFS_PROGS_SOURCE = btrfs-progs-v$(BTRFS_PROGS_VERSION).tar.xz
 BTRFS_PROGS_DEPENDENCIES = host-pkgconf e2fsprogs lzo util-linux zlib
index 47e2b63e19ded1099fac2b2c04e1840406384cf1..82952b8cb80480a7f458519c7c32dc084deef451 100755 (executable)
@@ -3,10 +3,13 @@
 # Start telnet....
 #
 
+TELNETD_ARGS=-F
+[ -r /etc/default/telnet ] && . /etc/default/telnet
+
 start() {
       printf "Starting telnetd: "
       start-stop-daemon -S -q -m -b -p /var/run/telnetd.pid \
-                       -x /usr/sbin/telnetd -- -F
+                       -x /usr/sbin/telnetd -- $TELNETD_ARGS
       [ $? = 0 ] && echo "OK" || echo "FAIL"
 }
 
index fc23a90a29d3bdae2549d22e125d7a07f9c5834f..f4a241d38bc24433af710eefbfd82d3169b8bacb 100644 (file)
@@ -36,6 +36,12 @@ BUSYBOX_MAKE_ENV = \
        $(TARGET_MAKE_ENV) \
        CFLAGS="$(BUSYBOX_CFLAGS)" \
        CFLAGS_busybox="$(BUSYBOX_CFLAGS_busybox)"
+
+ifeq ($(BR2_REPRODUCIBLE),y)
+BUSYBOX_MAKE_ENV += \
+       KCONFIG_NOTIMESTAMP=1
+endif
+
 BUSYBOX_MAKE_OPTS = \
        CC="$(TARGET_CC)" \
        ARCH=$(KERNEL_ARCH) \
index 5522afe54f03ef2c4ddcb9476292ecf383e8d0e3..ca949565f5a065c6331313ffef7e39fa108588ec 100644 (file)
@@ -11,7 +11,7 @@ comment "canfestival needs a glibc or uClibc toolchain w/ threads and dynamic li
 config BR2_PACKAGE_CANFESTIVAL
        bool "canfestival"
        depends on BR2_PACKAGE_CANFESTIVAL_ARCH_SUPPORTS
-       depends on !BR2_TOOLCHAIN_USES_MUSL
+       depends on !BR2_TOOLCHAIN_USES_MUSL # sigval_t
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on !BR2_STATIC_LIBS
        help
index 915b7e32bb5b6559a7176e14129bd009b2f59625..8c168c15a81a0a4b40db0fca2e4feafa25ecc4b6 100644 (file)
@@ -5,19 +5,25 @@ files are removed at build time via the target-finalize rule.
 This buildroot-specific patch makes sure ctest looks also for
 "Modules/CMake.cmake.ctest" before complaining
 
+[Vincent: tweak patch for 3.6.3]
+
 Signed-off-by: Davide Viti <zinosat@tiscali.it>
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
 
---- cmake-3.0.2/Source/cmake.cxx~      2014-09-11 15:24:01.000000000 +0200
-+++ cmake-3.0.2/Source/cmake.cxx       2014-11-25 15:48:04.461033690 +0100
-@@ -957,7 +957,10 @@
-      "Path to cpack program executable.", cmCacheManager::INTERNAL);
+diff -rup a/Source/cmake.cxx b/Source/cmake.cxx
+--- a/Source/cmake.cxx 2016-07-07 15:47:27.000000000 +0100
++++ b/Source/cmake.cxx 2016-07-14 10:14:59.914265515 +0100
+@@ -771,7 +771,12 @@ int cmake::AddCMakePaths()
+                       "Path to cpack program executable.", cmState::INTERNAL);
  #endif
-   if(!cmSystemTools::FileExists(
--       (cmSystemTools::GetCMakeRoot()+"/Modules/CMake.cmake").c_str()))
-+       (cmSystemTools::GetCMakeRoot()+"/Modules/CMake.cmake").c_str()) &&
-+     !cmSystemTools::FileExists(
-+       (cmSystemTools::GetCMakeRoot()+"/Modules/CMake.cmake.ctest").c_str())
+   if (!cmSystemTools::FileExists(
+-        (cmSystemTools::GetCMakeRoot() + "/Modules/CMake.cmake").c_str())) {
++        (cmSystemTools::GetCMakeRoot() + "/Modules/CMake.cmake").c_str()) &&
++      !cmSystemTools::FileExists(
++        (cmSystemTools::GetCMakeRoot()+"/Modules/CMake.cmake.ctest").c_str()
++        )
 +     )
-     {
++  {
      // couldn't find modules
-     cmSystemTools::Error("Could not find CMAKE_ROOT !!!\n"
+     cmSystemTools::Error(
+       "Could not find CMAKE_ROOT !!!\n"
index 6f04a4ad39eea1c89b37e9a3ac1dbb3df314bbc7..716d80ec55c28a56ff6706991ff214922826c409 100644 (file)
@@ -20,11 +20,14 @@ config BR2_PACKAGE_CMAKE_CTEST
        select BR2_PACKAGE_EXPAT
        select BR2_PACKAGE_BZIP2
        select BR2_PACKAGE_XZ
+       select BR2_PACKAGE_LIBUV
        depends on BR2_PACKAGE_CMAKE_ARCH_SUPPORTS
        depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # from jsoncpp
        depends on BR2_USE_WCHAR # libarchive
        depends on BR2_INSTALL_LIBSTDCPP
        depends on !BR2_STATIC_LIBS
+       depends on BR2_TOOLCHAIN_HAS_THREADS # libuv
+       depends on BR2_USE_MMU # libuv
        help
          CTest is a testing tool distributed as a part of CMake. It
          can be used to automate updating (using CVS for example),
@@ -34,7 +37,9 @@ config BR2_PACKAGE_CMAKE_CTEST
 
          http://www.cmake.org/
 
-comment "ctest needs a toolchain w/ C++, wchar, dynamic library, gcc >= 4.7"
+comment "ctest needs a toolchain w/ C++, wchar, dynamic library, gcc >= 4.7, threads"
        depends on BR2_PACKAGE_CMAKE_ARCH_SUPPORTS
+       depends on BR2_USE_MMU
        depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
-               BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
+               BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 || \
+               !BR2_TOOLCHAIN_HAS_THREADS
index e40d4ea39ace62fc9b0d05ee4f0a6e431e5d640d..687e5a448302fcd80aad7f73c33eafda7a8f3238 100644 (file)
@@ -1,2 +1,2 @@
-# From http://www.cmake.org/files/v3.5/cmake-3.5.2-SHA-256.txt
-sha256 92d8410d3d981bb881dfff2aed466da55a58d34c7390d50449aa59b32bb5e62a        cmake-3.5.2.tar.gz
+# From http://www.cmake.org/files/v3.7/cmake-3.7.0-SHA-256.txt
+sha256 ed63e05c41aeb6c036e503114ab15847f29c312f9f21f5f1a7060a4b4ec2fb31  cmake-3.7.0.tar.gz
index 7a80c1bfefcad4dfcb0b85db79d6dce804a878d9..522d7fec877a42a7d7728ea4bdadb0b9b22d57a5 100644 (file)
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-CMAKE_VERSION_MAJOR = 3.5
-CMAKE_VERSION = $(CMAKE_VERSION_MAJOR).2
+CMAKE_VERSION_MAJOR = 3.7
+CMAKE_VERSION = $(CMAKE_VERSION_MAJOR).0
 CMAKE_SITE = https://cmake.org/files/v$(CMAKE_VERSION_MAJOR)
 CMAKE_LICENSE = BSD-3c
 CMAKE_LICENSE_FILES = Copyright.txt
@@ -22,7 +22,7 @@ CMAKE_LICENSE_FILES = Copyright.txt
 #   the system-wide libraries instead of rebuilding and statically
 #   linking with the ones bundled into the CMake sources.
 
-CMAKE_DEPENDENCIES = zlib jsoncpp libcurl libarchive expat bzip2 xz
+CMAKE_DEPENDENCIES = zlib jsoncpp libcurl libarchive expat bzip2 xz libuv
 
 CMAKE_CONF_OPTS = \
        -DKWSYS_LFS_WORKS=TRUE \
index 5972bf8bebf9be6eb380430b1a48b49c3685cec7..b8c0d2b4e676e30c4c906e23e2f61503185b4c9d 100644 (file)
@@ -1,2 +1,2 @@
 # From https://www.kernel.org/pub/linux/utils/cryptsetup/v1.7/sha256sums.asc
-sha256 dbb35dbf5f0c1749168c86c913fe98e872247bfc8425314b494c2423e7e43342        cryptsetup-1.7.2.tar.xz
+sha256 af2b04e8475cf40b8d9ffd97a1acfa73aa787c890430afd89804fb544d6adc02  cryptsetup-1.7.3.tar.xz
index d7bd251228e43e3d24b1ff71d9eb8c4d0d397876..50bf5f2aaf02573e16dde53dd30abbb3d20d689d 100644 (file)
@@ -5,7 +5,7 @@
 ################################################################################
 
 CRYPTSETUP_VERSION_MAJOR = 1.7
-CRYPTSETUP_VERSION = $(CRYPTSETUP_VERSION_MAJOR).2
+CRYPTSETUP_VERSION = $(CRYPTSETUP_VERSION_MAJOR).3
 CRYPTSETUP_SOURCE = cryptsetup-$(CRYPTSETUP_VERSION).tar.xz
 CRYPTSETUP_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/cryptsetup/v$(CRYPTSETUP_VERSION_MAJOR)
 CRYPTSETUP_DEPENDENCIES = lvm2 popt util-linux host-pkgconf \
index fef72f52b69413e161cb9d1cdfe93b5062ceb417..7feab8fbcaf275dab856abfaa15c73e23c05bc1a 100644 (file)
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256 4b2d59c2bd70e61c486b372059164a688c53b8aa9f1aedb4beb3316ae2a130c5        domoticz-3.5837.tar.gz
+sha256 fb88edbe428851a7a337a85faa93f6da00713b3ad086ff6957031dc9b3b58bba        domoticz-3.5877.tar.gz
index 2272da87cc14041e12552f29d8cb6c1f6b2ddbeb..f43dbda49ebfabeebe37c24983ff698fb05a30d1 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-DOMOTICZ_VERSION = 3.5837
+DOMOTICZ_VERSION = 3.5877
 DOMOTICZ_SITE = $(call github,domoticz,domoticz,$(DOMOTICZ_VERSION))
 DOMOTICZ_LICENSE = GPLv3
 DOMOTICZ_LICENSE_FILES = License.txt
diff --git a/package/efibootmgr/0001-Allow-build-with-uClibc.patch b/package/efibootmgr/0001-Allow-build-with-uClibc.patch
new file mode 100644 (file)
index 0000000..fd29233
--- /dev/null
@@ -0,0 +1,40 @@
+From bbfcc60497c326576bb23cb01d90115ef3cf6947 Mon Sep 17 00:00:00 2001
+From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Date: Fri, 25 Nov 2016 20:26:52 +0200
+Subject: [PATCH] Remove unneeded <uchar.h> include
+
+This fixes the build with uClibc.
+
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+ src/efibootdump.c | 1 -
+ src/eficonman.c   | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/src/efibootdump.c b/src/efibootdump.c
+index 6ff8360..7c5a1c5 100644
+--- a/src/efibootdump.c
++++ b/src/efibootdump.c
+@@ -19,7 +19,6 @@
+ #include <stdint.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <uchar.h>
+ #include <unistd.h>
+ #include "error.h"
+diff --git a/src/eficonman.c b/src/eficonman.c
+index 2c2be38..9bfae79 100644
+--- a/src/eficonman.c
++++ b/src/eficonman.c
+@@ -17,7 +17,6 @@
+ #include <stdint.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <uchar.h>
+ #include <unistd.h>
+ #define  _(String) gettext (String)
+-- 
+2.10.2
+
index 988bf6d651a4e7f8bd7eb099d5393886a1465a89..8b29938d8a88d5a4dc90501a00bea9eac2654337 100644 (file)
@@ -1,10 +1,11 @@
 config BR2_PACKAGE_EFIBOOTMGR
        bool "efibootmgr"
        depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 # efivar
-       depends on BR2_TOOLCHAIN_USES_GLIBC # efivar
+       depends on !BR2_TOOLCHAIN_USES_MUSL # efivar
        depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # efivar
        depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS && \
                !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII # efivar
+       select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT
        select BR2_PACKAGE_EFIVAR
        help
          A Linux user-space application to modify the Intel Extensible
@@ -14,9 +15,9 @@ config BR2_PACKAGE_EFIBOOTMGR
 
          https://github.com/rhinstaller/efibootmgr
 
-comment "efibootmgr requires a glibc toolchain w/ headers >= 3.12, gcc >= 4.9"
+comment "efibootmgr requires a glibc or uClibc toolchain w/ headers >= 3.12, gcc >= 4.9"
        depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \
-               !BR2_TOOLCHAIN_USES_GLIBC || \\
+               BR2_TOOLCHAIN_USES_MUSL || \
                !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
        depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS && \
                !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
index 731d6e9f59574c9fee37af816f6e4bdcadb50156..487c8ca6665701d768f09b2bc47f477acda8e817 100644 (file)
@@ -8,7 +8,8 @@ EFIBOOTMGR_VERSION = 14
 EFIBOOTMGR_SITE = $(call github,rhinstaller,efibootmgr,$(EFIBOOTMGR_VERSION))
 EFIBOOTMGR_LICENSE = GPLv2+
 EFIBOOTMGR_LICENSE_FILES = COPYING
-EFIBOOTMGR_DEPENDENCIES = efivar
+EFIBOOTMGR_DEPENDENCIES = efivar $(if $(BR2_NEEDS_GETTEXT),gettext)
+EFIBOOTMGR_LDFLAGS = $(TARGET_LDFLAGS) $(if $(BR2_NEEDS_GETTEXT),-lintl)
 
 define EFIBOOTMSR_PATCH_HEADER_PATH
        $(SED) 's,-I/,-I$(STAGING_DIR)/,' $(@D)/Makefile
@@ -17,11 +18,12 @@ endef
 EFIBOOTMGR_POST_PATCH_HOOKS += EFIBOOTMSR_PATCH_HEADER_PATH
 
 define EFIBOOTMGR_BUILD_CMDS
-       $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D)
+       $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS)                     \
+               LDFLAGS="$(EFIBOOTMGR_LDFLAGS)" $(MAKE1) -C $(@D)
 endef
 
 define EFIBOOTMGR_INSTALL_TARGET_CMDS
-       $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) \
+       $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)    \
                DESTDIR=$(TARGET_DIR) install
 endef
 
diff --git a/package/efivar/0001-Use-z-muldefs-to-avoid-the-multiple-definitions-bug-.patch b/package/efivar/0001-Use-z-muldefs-to-avoid-the-multiple-definitions-bug-.patch
new file mode 100644 (file)
index 0000000..2bc3ff2
--- /dev/null
@@ -0,0 +1,29 @@
+From 314eb67b239e60c2ed3700e2baf9cd0e590465f3 Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones@redhat.com>
+Date: Thu, 27 Oct 2016 09:19:18 -0400
+Subject: [PATCH] Use -z muldefs to avoid the multiple definitions bug
+ without -flto
+
+This fixes github issue #64
+
+Signed-off-by: Peter Jones <pjones@redhat.com>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+ Make.defaults | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Make.defaults b/Make.defaults
+index aa974d9..c9d599f 100644
+--- a/Make.defaults
++++ b/Make.defaults
+@@ -32,6 +32,7 @@ cflags       = $(CFLAGS) -I${TOPDIR}/src/include/efivar/ \
+ clang_ccldflags =
+ gcc_ccldflags =
+ ccldflags = $(cflags) -L. $(CCLDFLAGS) $(LDFLAGS) \
++      -Wl,-z,muldefs \
+       $(if $(findstring clang,$(CCLD)),$(clang_ccldflags),) \
+       $(if $(findstring gcc,$(CCLD)),$(gcc_ccldflags),) \
+       $(call pkg-config-ccldflags)
+-- 
+2.10.2
+
diff --git a/package/efivar/0002-Allow-build-with-uClibc.patch b/package/efivar/0002-Allow-build-with-uClibc.patch
new file mode 100644 (file)
index 0000000..7c19587
--- /dev/null
@@ -0,0 +1,38 @@
+From 2255601757a8a58baddad2d37d0bcc6b003a3732 Mon Sep 17 00:00:00 2001
+From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Date: Fri, 25 Nov 2016 19:42:27 +0200
+Subject: [PATCH] Allow build with uClibc
+
+Basically this replaces type definitions in <uchar.h>.
+
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+ src/export.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/export.c b/src/export.c
+index 7f2d4dd..72c02d1 100644
+--- a/src/export.c
++++ b/src/export.c
+@@ -21,11 +21,17 @@
+ #include <inttypes.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+-#include <uchar.h>
+ #include <efivar.h>
+ #include "lib.h"
++#ifdef __UCLIBC__
++typedef int_least16_t char16_t;
++typedef int_least32_t char32_t;
++#else
++#include <uchar.h>
++#endif
++
+ #define EFIVAR_MAGIC 0xf3df1597
+ #define ATTRS_UNSET 0xa5a5a5a5a5a5a5a5
+-- 
+2.10.2
+
index 466a30ac5adec5fc3c5b60d45ef7c47531cc42bc..1bdb6cad63c78ab094c3f08e98b15d71d8663e1b 100644 (file)
@@ -9,9 +9,8 @@ config BR2_PACKAGE_EFIVAR
        # toolchains.
        depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS && \
                !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
-       # doesn't build with uclibc due to lack of uchar.h
        # doesn't build with musl due to lack of __bswap_constant_16
-       depends on BR2_TOOLCHAIN_USES_GLIBC
+       depends on !BR2_TOOLCHAIN_USES_MUSL
        depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
        select BR2_PACKAGE_POPT
        help
@@ -19,9 +18,9 @@ config BR2_PACKAGE_EFIVAR
 
          https://github.com/rhinstaller/efivar
 
-comment "efivar requires a glibc toolchain w/ headers >= 3.12, gcc >= 4.9"
+comment "efivar requires a glibc or uClibc toolchain w/ headers >= 3.12, gcc >= 4.9"
        depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \
-               !BR2_TOOLCHAIN_USES_GLIBC || \
+               BR2_TOOLCHAIN_USES_MUSL || \
                !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
        depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS && \
                !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
index 3671bbc05e15bd03408f8297f75a6119cd405c6a..e337b964506610f200c29ef562b917cebb57618e 100644 (file)
@@ -1,2 +1,2 @@
 # locally computed hash
-sha256 7fed0b31fe796d7dfef40cccb97b8bb0b806f16e568074ad2d456be30e195f5e efivar-28.tar.gz
+sha256 20709c76311f8eb8be92977b7ac008ce62501fa9f7fe885a784321540fc352f9 efivar-30.tar.gz
index cff3ac1d1142fea7be9cc85b8aed323045188039..913322e2f65e33467b277a85123e32c29565d70b 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-EFIVAR_VERSION = 28
+EFIVAR_VERSION = 30
 EFIVAR_SITE = $(call github,rhinstaller,efivar,$(EFIVAR_VERSION))
 EFIVAR_LICENSE = LGPLv2.1
 EFIVAR_LICENSE_FILES = COPYING
index 18393a43e68fb2e66e34665444ef1202b1df10ab..4077ddd436fe37ca6a870d4279dc341918a84dca 100644 (file)
@@ -1,2 +1,2 @@
-# From https://download.enlightenment.org/rel/libs/efl/efl-1.18.2.tar.xz.sha256
-sha256 292faf76557fe56a6bc15b48b5ea3eb1f0790e2ed7f2ade4ae79ef7973d67bed        efl-1.18.2.tar.xz
+# From https://download.enlightenment.org/rel/libs/efl/efl-1.18.3.tar.xz.sha256
+sha256 0748ec0847f543d96b149cb3a84e6438724e827a38d530922ecb4bd59d3e64c0        efl-1.18.3.tar.xz
index 6af7aa0c5e44875eddb57dcfb49ca9c37d7cedeb..bdf304d3c7caa56782fcf9dda502be1dee465e8a 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-EFL_VERSION = 1.18.2
+EFL_VERSION = 1.18.3
 EFL_SOURCE = efl-$(EFL_VERSION).tar.xz
 EFL_SITE = http://download.enlightenment.org/rel/libs/efl
 EFL_LICENSE = BSD-2c, LGPLv2.1+, GPLv2+
index 9e18d22039c109daaa69dcebef1af3c607685285..f51c5ab19c1a373832144f0765c5bc9e85ab6b55 100644 (file)
@@ -1,11 +1,14 @@
+# These are the architectures supported by FDK AAC
+config BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS
+       bool
+       default y if BR2_i386 || BR2_x86_64 || BR2_arm || BR2_armeb || \
+               BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
+               BR2_powerpc || BR2_sh
+
 config BR2_PACKAGE_FDK_AAC
        bool "fdk-aac"
+       depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS
        depends on BR2_INSTALL_LIBSTDCPP
-       # These are the architectures supported by FDK AAC
-       depends on BR2_i386 || BR2_x86_64 || BR2_arm || BR2_armeb || \
-                  BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
-                  BR2_powerpc || BR2_sh
-
        help
          The Fraunhofer FDK AAC Codec Library for Android ("FDK AAC Codec")
          is software that implements the MPEG Advanced Audio Coding ("AAC")
@@ -14,7 +17,5 @@ config BR2_PACKAGE_FDK_AAC
          http://sourceforge.net/projects/opencore-amr/files/fdk-aac/
 
 comment "fdk-aac needs a toolchain w/ C++"
+       depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS
        depends on !BR2_INSTALL_LIBSTDCPP
-       depends on BR2_i386 || BR2_x86_64 || BR2_arm || BR2_armeb || \
-                  BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
-                  BR2_powerpc || BR2_sh
index 541f421de68e8e9ab814341d6bd1f825ecc9b26a..aa9f0f738b428d198b1f651ad60043a1533959bb 100644 (file)
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256 88f70c1b8cab108f494ecbab5ba302cdb35d59a84cea88008b5fe49be068d5da  ffmpeg-3.2.tar.xz
+sha256 1ecf93da5d601e6fb3096c65cbe33fdaf042d690a3c50c4efadb0a9b74f2badf  ffmpeg-3.2.1.tar.xz
index de6d8416c318e705d2571aa060db6bc55fa088d0..699de2ac8f27ccaf2c56ff55176c2c2e3af21659 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-FFMPEG_VERSION = 3.2
+FFMPEG_VERSION = 3.2.1
 FFMPEG_SOURCE = ffmpeg-$(FFMPEG_VERSION).tar.xz
 FFMPEG_SITE = http://ffmpeg.org/releases
 FFMPEG_INSTALL_STAGING = YES
index 7bb988bdf76f14251d851d767f1b30bae5c817f5..a51e29cfc7e66480e951722ffa1d8842bc0417ac 100644 (file)
@@ -25,19 +25,6 @@ HOST_GCC_INITIAL_SUBDIR = build
 
 HOST_GCC_INITIAL_PRE_CONFIGURE_HOOKS += HOST_GCC_CONFIGURE_SYMLINK
 
-# gcc on ARC has a bug: in its libgcc, even when no C library is
-# available (--with-newlib is passed, and therefore inhibit_libc is
-# defined), it tries to use the C library for the libgmon
-# library. Since it's not needed in gcc-initial, we disabled it here.
-ifeq ($(BR2_GCC_VERSION_ARC),y)
-define HOST_GCC_INITIAL_DISABLE_LIBGMON
-       $(SED) 's/crtbeginS.o libgmon.a crtg.o/crtbeginS.o crtg.o/' \
-               $(@D)/libgcc/config.host
-endef
-HOST_GCC_INITIAL_POST_PATCH_HOOKS += HOST_GCC_INITIAL_DISABLE_LIBGMON
-HOST_GCC_INITIAL_POST_RSYNC_HOOKS += HOST_GCC_INITIAL_DISABLE_LIBGMON
-endif
-
 HOST_GCC_INITIAL_CONF_OPTS = \
        $(HOST_GCC_COMMON_CONF_OPTS) \
        --enable-languages=c \
index 0815641c105773d77dc78bb5143a7643abfd8843..ee7615797e430fcc88c2b8cc950d2770987fe9b0 100644 (file)
@@ -1,2 +1,2 @@
 # From: https://www.kernel.org/pub/software/scm/git/sha256sums.asc
-sha256 94802903dd707d85ca3b9a2be35e936a54ce86375f52c6a789efe7ce7e238671  git-2.10.2.tar.xz
+sha256 7e7e8d69d494892373b87007674be5820a4bc1ef596a0117d03ea3169119fd0b  git-2.11.0.tar.xz
index a7768ac53bdeb5e36b50fc34093c774b6a6caf70..7d4d36363949f88b78bbce89f412ef8ecae2a955 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GIT_VERSION = 2.10.2
+GIT_VERSION = 2.11.0
 GIT_SOURCE = git-$(GIT_VERSION).tar.xz
 GIT_SITE = https://www.kernel.org/pub/software/scm/git
 GIT_LICENSE = GPLv2 LGPLv2.1+
index f70875810187d0a12c0d39da47d53919089efd4a..534997af4948018b453dc1d14bc64e4b6ea573fe 100644 (file)
@@ -3,14 +3,11 @@ config BR2_PACKAGE_GLOG
        depends on BR2_INSTALL_LIBSTDCPP
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on !BR2_STATIC_LIBS
-       # build issues with this external toolchain
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
        help
          C++ implementation of the Google logging module
 
          https://github.com/google/glog
 
 comment "glog needs a toolchain w/ C++, threads, dynamic library"
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
        depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
                BR2_STATIC_LIBS
index 40d51971170f416bb873a8d0b69f1e4026f62748..d52b61fd6ac3eb5ea6f54df582ac285b987daca2 100644 (file)
@@ -1,2 +1,2 @@
-# locally computed
-sha256  0b4874961e6488ad9e5808114bd486ea981c540907262caab1419355fd82d745  gst-omx-1.2.0.tar.xz
+# From https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-1.10.2.tar.xz.sha256sum
+sha256 c069a9cf775c92f889ca8f3b2fc718e428cd0579b7b805851a960c850a7aa497  gst-omx-1.10.2.tar.xz
index 4ca441656b77e25c8a650cd3e0deb0785488939c..fcc7058b1138a597a50acd0f94bc70b69746799b 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GST_OMX_VERSION = 1.2.0
+GST_OMX_VERSION = 1.10.2
 GST_OMX_SOURCE = gst-omx-$(GST_OMX_VERSION).tar.xz
 GST_OMX_SITE = https://gstreamer.freedesktop.org/src/gst-omx
 
index d345debc394ddcf44ab7534dd790a8b566872a8b..b0124aae25ba2e46878976903f0ed38026f1cc4b 100644 (file)
@@ -1,2 +1,2 @@
 # locally computed hash
-sha256 a75f8bc3219fa3c62637f443cef0196c9eafb90aaa5af094847d007124895822  gst1-imx-0.12.2.tar.gz
+sha256 a75f8bc3219fa3c62637f443cef0196c9eafb90aaa5af094847d007124895822  gst1-imx-0.12.3.tar.gz
index 3c6b1b6027c12a8918874b9f55c34ebec7c36e4b..71b4e1e19ed607c1ac8212be5d3986bac37ea066 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GST1_IMX_VERSION = 0.12.2
+GST1_IMX_VERSION = 0.12.3
 GST1_IMX_SITE = $(call github,Freescale,gstreamer-imx,$(GST1_IMX_VERSION))
 
 GST1_IMX_LICENSE = LGPLv2+
index 46d48a956e68deeb6403e386f232a8bc7c38d5c4..8cda287f20a105a99c29504cd71332bba9fc8e77 100644 (file)
@@ -1,2 +1,2 @@
-# From http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.8.3.tar.xz.sha256sum
-sha256 9006a05990089f7155ee0e848042f6bb24e52ab1d0a59ff8d1b5d7e33001a495  gst-libav-1.8.3.tar.xz
+# From http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.10.2.tar.xz.sha256sum
+sha256 a3dd7036211f061e1eda04f985b7a9dd1a91b754f767ff2587eb6ec28f44e73c  gst-libav-1.10.2.tar.xz
index 5706c6462338683f70e381f8e938617b959e643b..8687ac652cbb855a2ef8878689171b0dbf83edf0 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GST1_LIBAV_VERSION = 1.8.3
+GST1_LIBAV_VERSION = 1.10.2
 GST1_LIBAV_SOURCE = gst-libav-$(GST1_LIBAV_VERSION).tar.xz
 GST1_LIBAV_SITE = https://gstreamer.freedesktop.org/src/gst-libav
 GST1_LIBAV_CONF_OPTS = --with-system-libav
diff --git a/package/gstreamer1/gst1-plugins-bad/0001-vmncdec-Sanity-check-width-height-before-using-it.patch b/package/gstreamer1/gst1-plugins-bad/0001-vmncdec-Sanity-check-width-height-before-using-it.patch
deleted file mode 100644 (file)
index ebc87bb..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From 465091253bb3c3198d055b2e9f02d95237204663 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
-Date: Wed, 16 Nov 2016 20:41:39 +0200
-Subject: [PATCH] vmncdec: Sanity-check width/height before using it
-
-We will allocate a screen area of width*height*bpp bytes, however this
-calculation can easily overflow if too high width or height are given
-inside the stream. Nonetheless we would just assume that enough memory
-was allocated, try to fill it and overwrite as much memory as wanted.
-
-Also allocate the screen area filled with zeroes to ensure that we start
-with full-black and not any random (or not so random) data.
-
-https://scarybeastsecurity.blogspot.gr/2016/11/0day-poc-risky-design-decisions-in.html
-
-Ideally we should just remove this plugin in favour of the one in
-gst-libav, which generally seems to be of better code quality.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=774533
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- gst/vmnc/vmncdec.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/gst/vmnc/vmncdec.c b/gst/vmnc/vmncdec.c
-index 5504302..a843136 100644
---- a/gst/vmnc/vmncdec.c
-+++ b/gst/vmnc/vmncdec.c
-@@ -261,7 +261,7 @@ vmnc_handle_wmvi_rectangle (GstVMncDec * dec, struct RfbRectangle *rect,
-   gst_video_codec_state_unref (state);
-   g_free (dec->imagedata);
--  dec->imagedata = g_malloc (dec->format.width * dec->format.height *
-+  dec->imagedata = g_malloc0 (dec->format.width * dec->format.height *
-       dec->format.bytes_per_pixel);
-   GST_DEBUG_OBJECT (dec, "Allocated image data at %p", dec->imagedata);
-@@ -791,6 +791,10 @@ vmnc_handle_packet (GstVMncDec * dec, const guint8 * data, int len,
-             GST_WARNING_OBJECT (dec, "Rectangle out of range, type %d", r.type);
-             return ERROR_INVALID;
-           }
-+        } else if (r.width > 16384 || r.height > 16384) {
-+          GST_WARNING_OBJECT (dec, "Width or height too high: %ux%u", r.width,
-+              r.height);
-+          return ERROR_INVALID;
-         }
-         switch (r.type) {
--- 
-2.10.2
-
index 2f288cabc6321857b3fde53f9f6b9322f9214435..16c0b7e3f2d134cfc52c7ccc4a073693ff6a04c4 100644 (file)
@@ -419,6 +419,9 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SUBENC
 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_STEREO
        bool "stereo"
 
+config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TIMECODE
+       bool "timecode"
+
 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TTA
        bool "tta"
 
@@ -520,6 +523,18 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FBDEV
        help
          Linux framebuffer video sink
 
+config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FDK_AAC
+       bool "fdk-aac"
+       select BR2_PACKAGE_FDK_AAC
+       depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS
+       depends on BR2_INSTALL_LIBSTDCPP
+       help
+         MPEG AAC encoder/decoder
+
+comment "fdk-aac needs a toolchain w/ C++"
+       depends on BR2_PACKAGE_FDK_AAC_ARCH_SUPPORTS
+       depends on !BR2_INSTALL_LIBSTDCPP
+
 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL
        bool "gl"
        default y
@@ -650,6 +665,10 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SNDFILE
        bool "sndfile"
        select BR2_PACKAGE_LIBSNDFILE
 
+config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SRTP
+       bool "srtp"
+       select BR2_PACKAGE_LIBSRTP
+
 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD
        bool "vcd"
 
@@ -670,6 +689,23 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBP
        help
          Webp image format plugin
 
+config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTC
+       bool "webrtc"
+       # All depends from webrtc-audio-processing
+       depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS
+       depends on BR2_INSTALL_LIBSTDCPP
+       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+       depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
+       select BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING
+       select BR2_PACKAGE_WEBRTC
+       help
+         WebRTC echo-cancellation, gain control and noise suppression
+
+comment "webrtc needs a toolchain w/ C++, NPTL, gcc >= 4.8"
+       depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS
+       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \
+               || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+
 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_X265
        bool "x265"
        depends on BR2_INSTALL_LIBSTDCPP
index a0d6cdccc9654df4284c71f2850271136388adcb..999a4e8666337446fc72906e5777abc737b6fd4c 100644 (file)
@@ -1,2 +1,2 @@
-# From http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.8.3.tar.xz.sha256sum
-sha256 7899fcb18e6a1af2888b19c90213af018a57d741c6e72ec56b133bc73ec8509b  gst-plugins-bad-1.8.3.tar.xz
+# From http://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.10.2.tar.xz.sha256sum
+sha256 0795ca9303a99cc7e44dda0e6e18524de02b39892e4b68eaba488f7b9db53a3a  gst-plugins-bad-1.10.2.tar.xz
index eb935bc290328a8d5727dfbe29d605966fab77ab..ba9f30542e8eca4eb47005009654dc4695a6afe2 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GST1_PLUGINS_BAD_VERSION = 1.8.3
+GST1_PLUGINS_BAD_VERSION = 1.10.2
 GST1_PLUGINS_BAD_SOURCE = gst-plugins-bad-$(GST1_PLUGINS_BAD_VERSION).tar.xz
 GST1_PLUGINS_BAD_SITE = https://gstreamer.freedesktop.org/src/gst-plugins-bad
 GST1_PLUGINS_BAD_INSTALL_STAGING = YES
@@ -44,7 +44,6 @@ GST1_PLUGINS_BAD_CONF_OPTS += \
        --disable-ladspa \
        --disable-lv2 \
        --disable-libde265 \
-       --disable-srtp \
        --disable-linsys \
        --disable-modplug \
        --disable-mimic \
@@ -517,6 +516,12 @@ else
 GST1_PLUGINS_BAD_CONF_OPTS += --disable-stereo
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TIMECODE),y)
+GST1_PLUGINS_BAD_CONF_OPTS += --enable-timecode
+else
+GST1_PLUGINS_BAD_CONF_OPTS += --disable-timecode
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_TTA),y)
 GST1_PLUGINS_BAD_CONF_OPTS += --enable-tta
 else
@@ -642,6 +647,14 @@ else
 GST1_PLUGINS_BAD_CONF_OPTS += --disable-fbdev
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FDK_AAC),y)
+GST1_PLUGINS_BAD_CONF_OPTS += --enable-fdk_aac
+GST1_PLUGINS_BAD_DEPENDENCIES += fdk-aac
+GST1_PLUGINS_BAD_HAS_UNKNOWN_LICENSE = y
+else
+GST1_PLUGINS_BAD_CONF_OPTS += --disable-fdk_aac
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL),y)
 GST1_PLUGINS_BAD_CONF_OPTS += --enable-gl
 else
@@ -766,6 +779,13 @@ else
 GST1_PLUGINS_BAD_CONF_OPTS += --disable-sndfile
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_SRTP),y)
+GST1_PLUGINS_BAD_CONF_OPTS += --enable-srtp
+GST1_PLUGINS_BAD_DEPENDENCIES += libsrtp
+else
+GST1_PLUGINS_BAD_CONF_OPTS += --disable-srtp
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_VCD),y)
 GST1_PLUGINS_BAD_CONF_OPTS += --enable-vcd
 else
@@ -786,6 +806,13 @@ else
 GST1_PLUGINS_BAD_CONF_OPTS += --disable-webp
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_WEBRTC),y)
+GST1_PLUGINS_BAD_CONF_OPTS += --enable-webrtc
+GST1_PLUGINS_BAD_DEPENDENCIES += webrtc-audio-processing
+else
+GST1_PLUGINS_BAD_CONF_OPTS += --disable-webrtc
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_X265),y)
 GST1_PLUGINS_BAD_CONF_OPTS += --enable-x265
 GST1_PLUGINS_BAD_DEPENDENCIES += x265
index 83f0e834612f0478d7c571420175981c8bb094c7..3f4d0cd4256ce1137f08b94b97af11af0c0627eb 100644 (file)
@@ -1,2 +1,2 @@
-# From http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.8.3.tar.xz.sha256sum
-sha256 114871d4d63606b4af424a8433cd923e4ff66896b244bb7ac97b9da47f71e79e  gst-plugins-base-1.8.3.tar.xz
+# From http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.10.2.tar.xz.sha256sum
+sha256 fbc0d40fcb746d2efe2ea47444674029912f66e6107f232766d33b722b97de20  gst-plugins-base-1.10.2.tar.xz
index 5a35897292d8333da89a5152bddf66fb85569790..1014bd78df6a084e46af9b5bae5ea2e3f38e6ae9 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GST1_PLUGINS_BASE_VERSION = 1.8.3
+GST1_PLUGINS_BASE_VERSION = 1.10.2
 GST1_PLUGINS_BASE_SOURCE = gst-plugins-base-$(GST1_PLUGINS_BASE_VERSION).tar.xz
 GST1_PLUGINS_BASE_SITE = https://gstreamer.freedesktop.org/src/gst-plugins-base
 GST1_PLUGINS_BASE_INSTALL_STAGING = YES
diff --git a/package/gstreamer1/gst1-plugins-good/0001-flxdec-add-some-write-bounds-checking.patch b/package/gstreamer1/gst1-plugins-good/0001-flxdec-add-some-write-bounds-checking.patch
deleted file mode 100644 (file)
index c8a7652..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-From ec66c7c584f0b41c98e93758d9b53bd6dd582df2 Mon Sep 17 00:00:00 2001
-From: Matthew Waters <matthew@centricular.com>
-Date: Tue, 22 Nov 2016 19:05:00 +1100
-Subject: [PATCH] flxdec: add some write bounds checking
-
-Without checking the bounds of the frame we are writing into, we can
-write off the end of the destination buffer.
-
-https://scarybeastsecurity.blogspot.dk/2016/11/0day-exploit-advancing-exploitation.html
-
-https://bugzilla.gnome.org/show_bug.cgi?id=774834
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- gst/flx/gstflxdec.c | 116 +++++++++++++++++++++++++++++++++++++++++-----------
- 1 file changed, 91 insertions(+), 25 deletions(-)
-
-diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c
-index 604be2f..d51a8e6 100644
---- a/gst/flx/gstflxdec.c
-+++ b/gst/flx/gstflxdec.c
-@@ -74,9 +74,9 @@ static gboolean gst_flxdec_src_query_handler (GstPad * pad, GstObject * parent,
-     GstQuery * query);
- static void flx_decode_color (GstFlxDec *, guchar *, guchar *, gint);
--static void flx_decode_brun (GstFlxDec *, guchar *, guchar *);
--static void flx_decode_delta_fli (GstFlxDec *, guchar *, guchar *);
--static void flx_decode_delta_flc (GstFlxDec *, guchar *, guchar *);
-+static gboolean flx_decode_brun (GstFlxDec *, guchar *, guchar *);
-+static gboolean flx_decode_delta_fli (GstFlxDec *, guchar *, guchar *);
-+static gboolean flx_decode_delta_flc (GstFlxDec *, guchar *, guchar *);
- #define rndalign(off) ((off) + ((off) & 1))
-@@ -203,13 +203,14 @@ gst_flxdec_sink_event_handler (GstPad * pad, GstObject * parent,
-   return ret;
- }
--static void
-+static gboolean
- flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data,
-     guchar * dest)
- {
-   FlxFrameChunk *hdr;
-+  gboolean ret = TRUE;
--  g_return_if_fail (data != NULL);
-+  g_return_val_if_fail (data != NULL, FALSE);
-   while (count--) {
-     hdr = (FlxFrameChunk *) data;
-@@ -228,17 +229,17 @@ flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data,
-         break;
-       case FLX_BRUN:
--        flx_decode_brun (flxdec, data, dest);
-+        ret = flx_decode_brun (flxdec, data, dest);
-         data += rndalign (hdr->size) - FlxFrameChunkSize;
-         break;
-       case FLX_LC:
--        flx_decode_delta_fli (flxdec, data, dest);
-+        ret = flx_decode_delta_fli (flxdec, data, dest);
-         data += rndalign (hdr->size) - FlxFrameChunkSize;
-         break;
-       case FLX_SS2:
--        flx_decode_delta_flc (flxdec, data, dest);
-+        ret = flx_decode_delta_flc (flxdec, data, dest);
-         data += rndalign (hdr->size) - FlxFrameChunkSize;
-         break;
-@@ -256,7 +257,12 @@ flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data,
-         data += rndalign (hdr->size) - FlxFrameChunkSize;
-         break;
-     }
-+
-+    if (!ret)
-+      break;
-   }
-+
-+  return ret;
- }
-@@ -289,13 +295,13 @@ flx_decode_color (GstFlxDec * flxdec, guchar * data, guchar * dest, gint scale)
-   }
- }
--static void
-+static gboolean
- flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
- {
-   gulong count, lines, row;
-   guchar x;
--  g_return_if_fail (flxdec != NULL);
-+  g_return_val_if_fail (flxdec != NULL, FALSE);
-   lines = flxdec->hdr.height;
-   while (lines--) {
-@@ -313,12 +319,21 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
-       if (count > 0x7f) {
-         /* literal run */
-         count = 0x100 - count;
-+        if ((glong) row - count < 0) {
-+          GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
-+          return FALSE;
-+        }
-         row -= count;
-         while (count--)
-           *dest++ = *data++;
-       } else {
-+        if ((glong) row - count < 0) {
-+          GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
-+          return FALSE;
-+        }
-+
-         /* replicate run */
-         row -= count;
-         x = *data++;
-@@ -328,22 +343,28 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
-       }
-     }
-   }
-+
-+  return TRUE;
- }
--static void
-+static gboolean
- flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
- {
-   gulong count, packets, lines, start_line;
-   guchar *start_p, x;
--  g_return_if_fail (flxdec != NULL);
--  g_return_if_fail (flxdec->delta_data != NULL);
-+  g_return_val_if_fail (flxdec != NULL, FALSE);
-+  g_return_val_if_fail (flxdec->delta_data != NULL, FALSE);
-   /* use last frame for delta */
-   memcpy (dest, flxdec->delta_data, flxdec->size);
-   start_line = (data[0] + (data[1] << 8));
-   lines = (data[2] + (data[3] << 8));
-+  if (start_line + lines > flxdec->hdr.height) {
-+    GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. too many lines.");
-+    return FALSE;
-+  }
-   data += 4;
-   /* start position of delta */
-@@ -356,7 +377,8 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
-     while (packets--) {
-       /* skip count */
--      dest += *data++;
-+      guchar skip = *data++;
-+      dest += skip;
-       /* RLE count */
-       count = *data++;
-@@ -364,12 +386,24 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
-       if (count > 0x7f) {
-         /* literal run */
-         count = 0x100 - count;
--        x = *data++;
-+        if (skip + count > flxdec->hdr.width) {
-+          GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. "
-+              "line too long.");
-+          return FALSE;
-+        }
-+
-+        x = *data++;
-         while (count--)
-           *dest++ = x;
-       } else {
-+        if (skip + count > flxdec->hdr.width) {
-+          GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. "
-+              "line too long.");
-+          return FALSE;
-+        }
-+
-         /* replicate run */
-         while (count--)
-           *dest++ = *data++;
-@@ -378,21 +412,27 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
-     start_p += flxdec->hdr.width;
-     dest = start_p;
-   }
-+
-+  return TRUE;
- }
--static void
-+static gboolean
- flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
- {
-   gulong count, lines, start_l, opcode;
-   guchar *start_p;
--  g_return_if_fail (flxdec != NULL);
--  g_return_if_fail (flxdec->delta_data != NULL);
-+  g_return_val_if_fail (flxdec != NULL, FALSE);
-+  g_return_val_if_fail (flxdec->delta_data != NULL, FALSE);
-   /* use last frame for delta */
-   memcpy (dest, flxdec->delta_data, flxdec->size);
-   lines = (data[0] + (data[1] << 8));
-+  if (lines > flxdec->hdr.height) {
-+    GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. too many lines.");
-+    return FALSE;
-+  }
-   data += 2;
-   start_p = dest;
-@@ -405,9 +445,15 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
-     while ((opcode = (data[0] + (data[1] << 8))) & 0xc000) {
-       data += 2;
-       if ((opcode & 0xc000) == 0xc000) {
--        /* skip count */
--        start_l += (0x10000 - opcode);
--        dest += flxdec->hdr.width * (0x10000 - opcode);
-+        /* line skip count */
-+        gulong skip = (0x10000 - opcode);
-+        if (skip > flxdec->hdr.height) {
-+          GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. "
-+              "skip line count too big.");
-+          return FALSE;
-+        }
-+        start_l += skip;
-+        dest += flxdec->hdr.width * skip;
-       } else {
-         /* last pixel */
-         dest += flxdec->hdr.width;
-@@ -419,7 +465,8 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
-     /* last opcode is the packet count */
-     while (opcode--) {
-       /* skip count */
--      dest += *data++;
-+      guchar skip = *data++;
-+      dest += skip;
-       /* RLE count */
-       count = *data++;
-@@ -427,12 +474,25 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
-       if (count > 0x7f) {
-         /* replicate word run */
-         count = 0x100 - count;
-+
-+        if (skip + count > flxdec->hdr.width) {
-+          GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. "
-+              "line too long.");
-+          return FALSE;
-+        }
-+
-         while (count--) {
-           *dest++ = data[0];
-           *dest++ = data[1];
-         }
-         data += 2;
-       } else {
-+        if (skip + count > flxdec->hdr.width) {
-+          GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. "
-+              "line too long.");
-+          return FALSE;
-+        }
-+
-         /* literal word run */
-         while (count--) {
-           *dest++ = *data++;
-@@ -442,6 +502,8 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
-     }
-     lines--;
-   }
-+
-+  return TRUE;
- }
- static GstFlowReturn
-@@ -571,9 +633,13 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
-           out = gst_buffer_new_and_alloc (flxdec->size * 4);
-           /* decode chunks */
--          flx_decode_chunks (flxdec,
--              ((FlxFrameType *) chunk)->chunks,
--              chunk + FlxFrameTypeSize, flxdec->frame_data);
-+          if (!flx_decode_chunks (flxdec,
-+                  ((FlxFrameType *) chunk)->chunks,
-+                  chunk + FlxFrameTypeSize, flxdec->frame_data)) {
-+            GST_ELEMENT_ERROR (flxdec, STREAM, DECODE,
-+                ("%s", "Could not decode chunk"), NULL);
-+            return GST_FLOW_ERROR;
-+          }
-           /* save copy of the current frame for possible delta. */
-           memcpy (flxdec->delta_data, flxdec->frame_data, flxdec->size);
--- 
-2.10.2
-
diff --git a/package/gstreamer1/gst1-plugins-good/0002-flxdec-fix-some-warnings-comparing-unsigned-0.patch b/package/gstreamer1/gst1-plugins-good/0002-flxdec-fix-some-warnings-comparing-unsigned-0.patch
deleted file mode 100644 (file)
index bf10ba6..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-From af7f70e60e364b551c2589dee5fb458a83fa0e7e Mon Sep 17 00:00:00 2001
-From: Matthew Waters <matthew@centricular.com>
-Date: Tue, 22 Nov 2016 23:46:00 +1100
-Subject: [PATCH] flxdec: fix some warnings comparing unsigned < 0
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-bf43f44fcfada5ec4a3ce60cb374340486fe9fac was comparing an unsigned
-expression to be < 0 which was always false.
-
-gstflxdec.c: In function â€˜flx_decode_brun’:
-gstflxdec.c:322:33: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
-         if ((glong) row - count < 0) {
-                                 ^
-gstflxdec.c:332:33: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
-         if ((glong) row - count < 0) {
-                                 ^
-
-https://bugzilla.gnome.org/show_bug.cgi?id=774834
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- gst/flx/gstflxdec.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c
-index d51a8e6..e675c99 100644
---- a/gst/flx/gstflxdec.c
-+++ b/gst/flx/gstflxdec.c
-@@ -319,7 +319,7 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
-       if (count > 0x7f) {
-         /* literal run */
-         count = 0x100 - count;
--        if ((glong) row - count < 0) {
-+        if ((glong) row - (glong) count < 0) {
-           GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
-           return FALSE;
-         }
-@@ -329,7 +329,7 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
-           *dest++ = *data++;
-       } else {
--        if ((glong) row - count < 0) {
-+        if ((glong) row - (glong) count < 0) {
-           GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
-           return FALSE;
-         }
--- 
-2.10.2
-
diff --git a/package/gstreamer1/gst1-plugins-good/0003-flxdec-Don-t-unref-parent-in-the-chain-function.patch b/package/gstreamer1/gst1-plugins-good/0003-flxdec-Don-t-unref-parent-in-the-chain-function.patch
deleted file mode 100644 (file)
index f14b1fe..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From 1b574eddf789a59aff11ee0b6eb3fe1af288ff06 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
-Date: Wed, 23 Nov 2016 11:20:49 +0200
-Subject: [PATCH] flxdec: Don't unref() parent in the chain function
-
-We don't own the reference here, it is owned by the caller and given to
-us for the scope of this function. Leftover mistake from 0.10 porting.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=774897
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- gst/flx/gstflxdec.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c
-index e675c99..a237976 100644
---- a/gst/flx/gstflxdec.c
-+++ b/gst/flx/gstflxdec.c
-@@ -677,7 +677,6 @@ wrong_type:
-   {
-     GST_ELEMENT_ERROR (flxdec, STREAM, WRONG_TYPE, (NULL),
-         ("not a flx file (type %x)", flxh->type));
--    gst_object_unref (flxdec);
-     return GST_FLOW_ERROR;
-   }
- }
--- 
-2.10.2
-
diff --git a/package/gstreamer1/gst1-plugins-good/0004-flxdec-rewrite-logic-based-on-GstByteReader-Writer.patch b/package/gstreamer1/gst1-plugins-good/0004-flxdec-rewrite-logic-based-on-GstByteReader-Writer.patch
deleted file mode 100644 (file)
index 4359260..0000000
+++ /dev/null
@@ -1,1039 +0,0 @@
-From 7c7a9f8df1b545eec1ef4461b742c3696d4d0e9e Mon Sep 17 00:00:00 2001
-From: Matthew Waters <matthew@centricular.com>
-Date: Wed, 23 Nov 2016 07:09:06 +1100
-Subject: [PATCH] flxdec: rewrite logic based on GstByteReader/Writer
-
-Solves overreading/writing the given arrays and will error out if the
-streams asks to do that.
-
-Also does more error checking that the stream is valid and won't
-overrun any allocated arrays.  Also mitigate integer overflow errors
-calculating allocation sizes.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=774859
-Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
----
- gst/flx/flx_color.c |   1 -
- gst/flx/flx_fmt.h   |  72 -------
- gst/flx/gstflxdec.c | 610 ++++++++++++++++++++++++++++++++++++----------------
- gst/flx/gstflxdec.h |   4 +-
- 4 files changed, 427 insertions(+), 260 deletions(-)
-
-diff --git a/gst/flx/flx_color.c b/gst/flx/flx_color.c
-index 047bfdf..3a58135 100644
---- a/gst/flx/flx_color.c
-+++ b/gst/flx/flx_color.c
-@@ -101,7 +101,6 @@ flx_set_palette_vector (FlxColorSpaceConverter * flxpal, guint start, guint num,
-   } else {
-     memcpy (&flxpal->palvec[start * 3], newpal, grab * 3);
-   }
--
- }
- void
-diff --git a/gst/flx/flx_fmt.h b/gst/flx/flx_fmt.h
-index 9ab31ba..abff200 100644
---- a/gst/flx/flx_fmt.h
-+++ b/gst/flx/flx_fmt.h
-@@ -123,78 +123,6 @@ typedef struct _FlxFrameType
- } FlxFrameType;
- #define FlxFrameTypeSize 10
--#if G_BYTE_ORDER == G_BIG_ENDIAN 
--#define LE_TO_BE_16(i16) ((guint16) (((i16) << 8) | ((i16) >> 8)))
--#define LE_TO_BE_32(i32) \
--    (((guint32) (LE_TO_BE_16((guint16) (i32))) << 16) | (LE_TO_BE_16((i32) >> 16)))
--
--#define FLX_FRAME_TYPE_FIX_ENDIANNESS(frm_type_p) \
--    do { \
--     (frm_type_p)->chunks = LE_TO_BE_16((frm_type_p)->chunks); \
--     (frm_type_p)->delay = LE_TO_BE_16((frm_type_p)->delay); \
--    } while(0)
--
--#define FLX_HUFFMAN_TABLE_FIX_ENDIANNESS(hffmn_table_p) \
--    do { \
--     (hffmn_table_p)->codelength = \
--      LE_TO_BE_16((hffmn_table_p)->codelength); \
--     (hffmn_table_p)->numcodes = LE_TO_BE_16((hffmn_table_p)->numcodes); \
--    } while(0)
--
--#define FLX_SEGMENT_TABLE_FIX_ENDIANNESS(sgmnt_table_p) \
--     ((sgmnt_table_p)->segments = LE_TO_BE_16((sgmnt_table_p)->segments))
--
--#define FLX_PREFIX_CHUNK_FIX_ENDIANNESS(prfx_chnk_p) \
--    do { \
--     (prfx_chnk_p)->chunks = LE_TO_BE_16((prfx_chnk_p)->chunks); \
--    } while(0)
--
--#define FLX_FRAME_CHUNK_FIX_ENDIANNESS(frm_chnk_p) \
--    do { \
--     (frm_chnk_p)->size = LE_TO_BE_32((frm_chnk_p)->size); \
--     (frm_chnk_p)->id = LE_TO_BE_16((frm_chnk_p)->id); \
--    } while(0)
--
--#define FLX_HDR_FIX_ENDIANNESS(hdr_p) \
--    do { \
--     (hdr_p)->size = LE_TO_BE_32((hdr_p)->size); \
--     (hdr_p)->type = LE_TO_BE_16((hdr_p)->type); \
--     (hdr_p)->frames = LE_TO_BE_16((hdr_p)->frames); \
--     (hdr_p)->width = LE_TO_BE_16((hdr_p)->width); \
--     (hdr_p)->height = LE_TO_BE_16((hdr_p)->height); \
--     (hdr_p)->depth = LE_TO_BE_16((hdr_p)->depth); \
--     (hdr_p)->flags = LE_TO_BE_16((hdr_p)->flags); \
--     (hdr_p)->speed = LE_TO_BE_32((hdr_p)->speed); \
--     (hdr_p)->reserved1 = LE_TO_BE_16((hdr_p)->reserved1); \
--     (hdr_p)->created = LE_TO_BE_32((hdr_p)->created); \
--     (hdr_p)->creator = LE_TO_BE_32((hdr_p)->creator); \
--     (hdr_p)->updated = LE_TO_BE_32((hdr_p)->updated); \
--     (hdr_p)->updater = LE_TO_BE_32((hdr_p)->updater); \
--     (hdr_p)->aspect_dx = LE_TO_BE_16((hdr_p)->aspect_dx); \
--     (hdr_p)->aspect_dy = LE_TO_BE_16((hdr_p)->aspect_dy); \
--     (hdr_p)->ext_flags = LE_TO_BE_16((hdr_p)->ext_flags); \
--     (hdr_p)->keyframes = LE_TO_BE_16((hdr_p)->keyframes); \
--     (hdr_p)->totalframes = LE_TO_BE_16((hdr_p)->totalframes); \
--     (hdr_p)->req_memory = LE_TO_BE_32((hdr_p)->req_memory); \
--     (hdr_p)->max_regions = LE_TO_BE_16((hdr_p)->max_regions); \
--     (hdr_p)->transp_num = LE_TO_BE_16((hdr_p)->transp_num); \
--     (hdr_p)->oframe1 = LE_TO_BE_32((hdr_p)->oframe1); \
--     (hdr_p)->oframe2 = LE_TO_BE_32((hdr_p)->oframe2); \
--    } while(0)
--#else
--
--#define LE_TO_BE_16(i16) ((i16))
--#define LE_TO_BE_32(i32) ((i32))
--
--#define FLX_FRAME_TYPE_FIX_ENDIANNESS(frm_type_p)
--#define FLX_HUFFMAN_TABLE_FIX_ENDIANNESS(hffmn_table_p)
--#define FLX_SEGMENT_TABLE_FIX_ENDIANNESS(sgmnt_table_p)
--#define FLX_PREFIX_CHUNK_FIX_ENDIANNESS(prfx_chnk_p)
--#define FLX_FRAME_CHUNK_FIX_ENDIANNESS(frm_chnk_p)
--#define FLX_HDR_FIX_ENDIANNESS(hdr_p)
--
--#endif /* G_BYTE_ORDER == G_BIG_ENDIAN */
--
- G_END_DECLS
- #endif /* __GST_FLX_FMT_H__ */
-diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c
-index a237976..aa1bed5 100644
---- a/gst/flx/gstflxdec.c
-+++ b/gst/flx/gstflxdec.c
-@@ -1,5 +1,6 @@
- /* GStreamer
-  * Copyright (C) <1999> Erik Walthinsen <omega@temple-baptist.com>
-+ * Copyright (C) <2016> Matthew Waters <matthew@centricular.com>
-  *
-  * This library is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU Library General Public
-@@ -24,6 +25,7 @@
- /*
-  * http://www.coolutils.com/Formats/FLI
-  * http://woodshole.er.usgs.gov/operations/modeling/flc.html
-+ * http://www.compuphase.com/flic.htm
-  */
- #ifdef HAVE_CONFIG_H
-@@ -73,10 +75,14 @@ static GstStateChangeReturn gst_flxdec_change_state (GstElement * element,
- static gboolean gst_flxdec_src_query_handler (GstPad * pad, GstObject * parent,
-     GstQuery * query);
--static void flx_decode_color (GstFlxDec *, guchar *, guchar *, gint);
--static gboolean flx_decode_brun (GstFlxDec *, guchar *, guchar *);
--static gboolean flx_decode_delta_fli (GstFlxDec *, guchar *, guchar *);
--static gboolean flx_decode_delta_flc (GstFlxDec *, guchar *, guchar *);
-+static gboolean flx_decode_color (GstFlxDec * flxdec, GstByteReader * reader,
-+    GstByteWriter * writer, gint scale);
-+static gboolean flx_decode_brun (GstFlxDec * flxdec,
-+    GstByteReader * reader, GstByteWriter * writer);
-+static gboolean flx_decode_delta_fli (GstFlxDec * flxdec,
-+    GstByteReader * reader, GstByteWriter * writer);
-+static gboolean flx_decode_delta_flc (GstFlxDec * flxdec,
-+    GstByteReader * reader, GstByteWriter * writer);
- #define rndalign(off) ((off) + ((off) & 1))
-@@ -204,57 +210,59 @@ gst_flxdec_sink_event_handler (GstPad * pad, GstObject * parent,
- }
- static gboolean
--flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data,
--    guchar * dest)
-+flx_decode_chunks (GstFlxDec * flxdec, gulong n_chunks, GstByteReader * reader,
-+    GstByteWriter * writer)
- {
--  FlxFrameChunk *hdr;
-   gboolean ret = TRUE;
--  g_return_val_if_fail (data != NULL, FALSE);
--
--  while (count--) {
--    hdr = (FlxFrameChunk *) data;
--    FLX_FRAME_CHUNK_FIX_ENDIANNESS (hdr);
--    data += FlxFrameChunkSize;
-+  while (n_chunks--) {
-+    GstByteReader chunk;
-+    guint32 size;
-+    guint16 type;
-+
-+    if (!gst_byte_reader_get_uint32_le (reader, &size))
-+      goto parse_error;
-+    if (!gst_byte_reader_get_uint16_le (reader, &type))
-+      goto parse_error;
-+    GST_LOG_OBJECT (flxdec, "chunk has type 0x%02x size %d", type, size);
-+
-+    if (!gst_byte_reader_get_sub_reader (reader, &chunk,
-+            size - FlxFrameChunkSize)) {
-+      GST_ERROR_OBJECT (flxdec, "Incorrect size in the chunk header");
-+      goto error;
-+    }
--    switch (hdr->id) {
-+    switch (type) {
-       case FLX_COLOR64:
--        flx_decode_color (flxdec, data, dest, 2);
--        data += rndalign (hdr->size) - FlxFrameChunkSize;
-+        ret = flx_decode_color (flxdec, &chunk, writer, 2);
-         break;
-       case FLX_COLOR256:
--        flx_decode_color (flxdec, data, dest, 0);
--        data += rndalign (hdr->size) - FlxFrameChunkSize;
-+        ret = flx_decode_color (flxdec, &chunk, writer, 0);
-         break;
-       case FLX_BRUN:
--        ret = flx_decode_brun (flxdec, data, dest);
--        data += rndalign (hdr->size) - FlxFrameChunkSize;
-+        ret = flx_decode_brun (flxdec, &chunk, writer);
-         break;
-       case FLX_LC:
--        ret = flx_decode_delta_fli (flxdec, data, dest);
--        data += rndalign (hdr->size) - FlxFrameChunkSize;
-+        ret = flx_decode_delta_fli (flxdec, &chunk, writer);
-         break;
-       case FLX_SS2:
--        ret = flx_decode_delta_flc (flxdec, data, dest);
--        data += rndalign (hdr->size) - FlxFrameChunkSize;
-+        ret = flx_decode_delta_flc (flxdec, &chunk, writer);
-         break;
-       case FLX_BLACK:
--        memset (dest, 0, flxdec->size);
-+        ret = gst_byte_writer_fill (writer, 0, flxdec->size);
-         break;
-       case FLX_MINI:
--        data += rndalign (hdr->size) - FlxFrameChunkSize;
-         break;
-       default:
--        GST_WARNING ("Unimplented chunk type: 0x%02x size: %d - skipping",
--            hdr->id, hdr->size);
--        data += rndalign (hdr->size) - FlxFrameChunkSize;
-+        GST_WARNING ("Unimplemented chunk type: 0x%02x size: %d - skipping",
-+            type, size);
-         break;
-     }
-@@ -263,43 +271,60 @@ flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data,
-   }
-   return ret;
-+
-+parse_error:
-+  GST_ERROR_OBJECT (flxdec, "Failed to decode chunk");
-+error:
-+  return FALSE;
- }
--static void
--flx_decode_color (GstFlxDec * flxdec, guchar * data, guchar * dest, gint scale)
-+static gboolean
-+flx_decode_color (GstFlxDec * flxdec, GstByteReader * reader,
-+    GstByteWriter * writer, gint scale)
- {
--  guint packs, count, indx;
-+  guint8 count, indx;
-+  guint16 packs;
--  g_return_if_fail (flxdec != NULL);
--
--  packs = (data[0] + (data[1] << 8));
--
--  data += 2;
-+  if (!gst_byte_reader_get_uint16_le (reader, &packs))
-+    goto error;
-   indx = 0;
--  GST_LOG ("GstFlxDec: cmap packs: %d", packs);
-+  GST_LOG ("GstFlxDec: cmap packs: %d", (guint) packs);
-   while (packs--) {
-+    const guint8 *data;
-+    guint16 actual_count;
-+
-     /* color map index + skip count */
--    indx += *data++;
-+    if (!gst_byte_reader_get_uint8 (reader, &indx))
-+      goto error;
-     /* number of rgb triplets */
--    count = *data++ & 0xff;
--    if (count == 0)
--      count = 256;
-+    if (!gst_byte_reader_get_uint8 (reader, &count))
-+      goto error;
--    GST_LOG ("GstFlxDec: cmap count: %d (indx: %d)", count, indx);
--    flx_set_palette_vector (flxdec->converter, indx, count, data, scale);
-+    actual_count = count == 0 ? 256 : count;
--    data += (count * 3);
-+    if (!gst_byte_reader_get_data (reader, count * 3, &data))
-+      goto error;
-+
-+    GST_LOG_OBJECT (flxdec, "cmap count: %d (indx: %d)", actual_count, indx);
-+    flx_set_palette_vector (flxdec->converter, indx, actual_count,
-+        (guchar *) data, scale);
-   }
-+
-+  return TRUE;
-+
-+error:
-+  GST_ERROR_OBJECT (flxdec, "Error decoding color palette");
-+  return FALSE;
- }
- static gboolean
--flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
-+flx_decode_brun (GstFlxDec * flxdec, GstByteReader * reader,
-+    GstByteWriter * writer)
- {
--  gulong count, lines, row;
--  guchar x;
-+  gulong lines, row;
-   g_return_val_if_fail (flxdec != NULL, FALSE);
-@@ -310,82 +335,125 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
-      * contain more then 255 RLE packets. we use the frame 
-      * width instead. 
-      */
--    data++;
-+    if (!gst_byte_reader_skip (reader, 1))
-+      goto error;
-     row = flxdec->hdr.width;
-     while (row) {
--      count = *data++;
-+      gint8 count;
-+
-+      if (!gst_byte_reader_get_int8 (reader, &count))
-+        goto error;
-+
-+      if (count <= 0) {
-+        const guint8 *data;
--      if (count > 0x7f) {
-         /* literal run */
--        count = 0x100 - count;
--        if ((glong) row - (glong) count < 0) {
--          GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
-+        count = ABS (count);
-+
-+        GST_LOG_OBJECT (flxdec, "have literal run of size %d", count);
-+
-+        if (count > row) {
-+          GST_ERROR_OBJECT (flxdec, "Invalid BRUN line detected. "
-+              "bytes to write exceeds the end of the row");
-           return FALSE;
-         }
-         row -= count;
--        while (count--)
--          *dest++ = *data++;
--
-+        if (!gst_byte_reader_get_data (reader, count, &data))
-+          goto error;
-+        if (!gst_byte_writer_put_data (writer, data, count))
-+          goto error;
-       } else {
--        if ((glong) row - (glong) count < 0) {
--          GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
-+        guint8 x;
-+
-+        GST_LOG_OBJECT (flxdec, "have replicate run of size %d", count);
-+
-+        if (count > row) {
-+          GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected."
-+              "bytes to write exceeds the end of the row");
-           return FALSE;
-         }
-         /* replicate run */
-         row -= count;
--        x = *data++;
--        while (count--)
--          *dest++ = x;
-+        if (!gst_byte_reader_get_uint8 (reader, &x))
-+          goto error;
-+        if (!gst_byte_writer_fill (writer, x, count))
-+          goto error;
-       }
-     }
-   }
-   return TRUE;
-+
-+error:
-+  GST_ERROR_OBJECT (flxdec, "Failed to decode BRUN packet");
-+  return FALSE;
- }
- static gboolean
--flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
-+flx_decode_delta_fli (GstFlxDec * flxdec, GstByteReader * reader,
-+    GstByteWriter * writer)
- {
--  gulong count, packets, lines, start_line;
--  guchar *start_p, x;
-+  guint16 start_line, lines;
-+  guint line_start_i;
-   g_return_val_if_fail (flxdec != NULL, FALSE);
-   g_return_val_if_fail (flxdec->delta_data != NULL, FALSE);
-   /* use last frame for delta */
--  memcpy (dest, flxdec->delta_data, flxdec->size);
-+  if (!gst_byte_writer_put_data (writer, flxdec->delta_data, flxdec->size))
-+    goto error;
-+
-+  if (!gst_byte_reader_get_uint16_le (reader, &start_line))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &lines))
-+    goto error;
-+  GST_LOG_OBJECT (flxdec, "height %d start line %d line count %d",
-+      flxdec->hdr.height, start_line, lines);
--  start_line = (data[0] + (data[1] << 8));
--  lines = (data[2] + (data[3] << 8));
-   if (start_line + lines > flxdec->hdr.height) {
-     GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. too many lines.");
-     return FALSE;
-   }
--  data += 4;
--  /* start position of delta */
--  dest += (flxdec->hdr.width * start_line);
--  start_p = dest;
-+  line_start_i = flxdec->hdr.width * start_line;
-+  if (!gst_byte_writer_set_pos (writer, line_start_i))
-+    goto error;
-   while (lines--) {
-+    guint8 packets;
-+
-     /* packet count */
--    packets = *data++;
-+    if (!gst_byte_reader_get_uint8 (reader, &packets))
-+      goto error;
-+    GST_LOG_OBJECT (flxdec, "have %d packets", packets);
-     while (packets--) {
-       /* skip count */
--      guchar skip = *data++;
--      dest += skip;
-+      guint8 skip;
-+      gint8 count;
-+      if (!gst_byte_reader_get_uint8 (reader, &skip))
-+        goto error;
-+
-+      /* skip bytes */
-+      if (!gst_byte_writer_set_pos (writer,
-+              gst_byte_writer_get_pos (writer) + skip))
-+        goto error;
-       /* RLE count */
--      count = *data++;
-+      if (!gst_byte_reader_get_int8 (reader, &count))
-+        goto error;
-+
-+      if (count < 0) {
-+        guint8 x;
--      if (count > 0x7f) {
-         /* literal run */
--        count = 0x100 - count;
-+        count = ABS (count);
-+        GST_LOG_OBJECT (flxdec, "have literal run of size %d at offset %d",
-+            count, skip);
-         if (skip + count > flxdec->hdr.width) {
-           GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. "
-@@ -393,11 +461,16 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
-           return FALSE;
-         }
--        x = *data++;
--        while (count--)
--          *dest++ = x;
--
-+        if (!gst_byte_reader_get_uint8 (reader, &x))
-+          goto error;
-+        if (!gst_byte_writer_fill (writer, x, count))
-+          goto error;
-       } else {
-+        const guint8 *data;
-+
-+        GST_LOG_OBJECT (flxdec, "have replicate run of size %d at offset %d",
-+            count, skip);
-+
-         if (skip + count > flxdec->hdr.width) {
-           GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. "
-               "line too long.");
-@@ -405,45 +478,60 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
-         }
-         /* replicate run */
--        while (count--)
--          *dest++ = *data++;
-+        if (!gst_byte_reader_get_data (reader, count, &data))
-+          goto error;
-+        if (!gst_byte_writer_put_data (writer, data, count))
-+          goto error;
-       }
-     }
--    start_p += flxdec->hdr.width;
--    dest = start_p;
-+    line_start_i += flxdec->hdr.width;
-+    if (!gst_byte_writer_set_pos (writer, line_start_i))
-+      goto error;
-   }
-   return TRUE;
-+
-+error:
-+  GST_ERROR_OBJECT (flxdec, "Failed to decode FLI packet");
-+  return FALSE;
- }
- static gboolean
--flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
-+flx_decode_delta_flc (GstFlxDec * flxdec, GstByteReader * reader,
-+    GstByteWriter * writer)
- {
--  gulong count, lines, start_l, opcode;
--  guchar *start_p;
-+  guint16 lines, start_l;
-   g_return_val_if_fail (flxdec != NULL, FALSE);
-   g_return_val_if_fail (flxdec->delta_data != NULL, FALSE);
-   /* use last frame for delta */
--  memcpy (dest, flxdec->delta_data, flxdec->size);
-+  if (!gst_byte_writer_put_data (writer, flxdec->delta_data, flxdec->size))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &lines))
-+    goto error;
--  lines = (data[0] + (data[1] << 8));
-   if (lines > flxdec->hdr.height) {
-     GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. too many lines.");
-     return FALSE;
-   }
--  data += 2;
--  start_p = dest;
-   start_l = lines;
-   while (lines) {
--    dest = start_p + (flxdec->hdr.width * (start_l - lines));
-+    guint16 opcode;
-+
-+    if (!gst_byte_writer_set_pos (writer,
-+            flxdec->hdr.width * (start_l - lines)))
-+      goto error;
-     /* process opcode(s) */
--    while ((opcode = (data[0] + (data[1] << 8))) & 0xc000) {
--      data += 2;
-+    while (TRUE) {
-+      if (!gst_byte_reader_get_uint16_le (reader, &opcode))
-+        goto error;
-+      if ((opcode & 0xc000) == 0)
-+        break;
-+
-       if ((opcode & 0xc000) == 0xc000) {
-         /* line skip count */
-         gulong skip = (0x10000 - opcode);
-@@ -453,27 +541,44 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
-           return FALSE;
-         }
-         start_l += skip;
--        dest += flxdec->hdr.width * skip;
-+        if (!gst_byte_writer_set_pos (writer,
-+                gst_byte_writer_get_pos (writer) + flxdec->hdr.width * skip))
-+          goto error;
-       } else {
-         /* last pixel */
--        dest += flxdec->hdr.width;
--        *dest++ = (opcode & 0xff);
-+        if (!gst_byte_writer_set_pos (writer,
-+                gst_byte_writer_get_pos (writer) + flxdec->hdr.width))
-+          goto error;
-+        if (!gst_byte_writer_put_uint8 (writer, opcode & 0xff))
-+          goto error;
-       }
-     }
--    data += 2;
-     /* last opcode is the packet count */
-+    GST_LOG_OBJECT (flxdec, "have %d packets", opcode);
-     while (opcode--) {
-       /* skip count */
--      guchar skip = *data++;
--      dest += skip;
-+      guint8 skip;
-+      gint8 count;
-+
-+      if (!gst_byte_reader_get_uint8 (reader, &skip))
-+        goto error;
-+      if (!gst_byte_writer_set_pos (writer,
-+              gst_byte_writer_get_pos (writer) + skip))
-+        goto error;
-       /* RLE count */
--      count = *data++;
-+      if (!gst_byte_reader_get_int8 (reader, &count))
-+        goto error;
-+
-+      if (count < 0) {
-+        guint16 x;
--      if (count > 0x7f) {
-         /* replicate word run */
--        count = 0x100 - count;
-+        count = ABS (count);
-+
-+        GST_LOG_OBJECT (flxdec, "have replicate run of size %d at offset %d",
-+            count, skip);
-         if (skip + count > flxdec->hdr.width) {
-           GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. "
-@@ -481,22 +586,31 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
-           return FALSE;
-         }
-+        if (!gst_byte_reader_get_uint16_le (reader, &x))
-+          goto error;
-+
-         while (count--) {
--          *dest++ = data[0];
--          *dest++ = data[1];
-+          if (!gst_byte_writer_put_uint16_le (writer, x)) {
-+            goto error;
-+          }
-         }
--        data += 2;
-       } else {
-+        GST_LOG_OBJECT (flxdec, "have literal run of size %d at offset %d",
-+            count, skip);
-+
-         if (skip + count > flxdec->hdr.width) {
-           GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. "
-               "line too long.");
-           return FALSE;
-         }
--        /* literal word run */
-         while (count--) {
--          *dest++ = *data++;
--          *dest++ = *data++;
-+          guint16 x;
-+
-+          if (!gst_byte_reader_get_uint16_le (reader, &x))
-+            goto error;
-+          if (!gst_byte_writer_put_uint16_le (writer, x))
-+            goto error;
-         }
-       }
-     }
-@@ -504,13 +618,91 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
-   }
-   return TRUE;
-+
-+error:
-+  GST_ERROR_OBJECT (flxdec, "Failed to decode FLI packet");
-+  return FALSE;
-+}
-+
-+static gboolean
-+_read_flx_header (GstFlxDec * flxdec, GstByteReader * reader, FlxHeader * flxh)
-+{
-+  memset (flxh, 0, sizeof (*flxh));
-+
-+  if (!gst_byte_reader_get_uint32_le (reader, &flxh->size))
-+    goto error;
-+  if (flxh->size < FlxHeaderSize) {
-+    GST_ERROR_OBJECT (flxdec, "Invalid file size in the header");
-+    return FALSE;
-+  }
-+
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->type))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->frames))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->width))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->height))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->depth))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->flags))
-+    goto error;
-+  if (!gst_byte_reader_get_uint32_le (reader, &flxh->speed))
-+    goto error;
-+  if (!gst_byte_reader_skip (reader, 2))        /* reserved */
-+    goto error;
-+  /* FLC */
-+  if (!gst_byte_reader_get_uint32_le (reader, &flxh->created))
-+    goto error;
-+  if (!gst_byte_reader_get_uint32_le (reader, &flxh->creator))
-+    goto error;
-+  if (!gst_byte_reader_get_uint32_le (reader, &flxh->updated))
-+    goto error;
-+  if (!gst_byte_reader_get_uint32_le (reader, &flxh->updater))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->aspect_dx))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->aspect_dy))
-+    goto error;
-+  /* EGI */
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->ext_flags))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->keyframes))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->totalframes))
-+    goto error;
-+  if (!gst_byte_reader_get_uint32_le (reader, &flxh->req_memory))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->max_regions))
-+    goto error;
-+  if (!gst_byte_reader_get_uint16_le (reader, &flxh->transp_num))
-+    goto error;
-+  if (!gst_byte_reader_skip (reader, 24))       /* reserved */
-+    goto error;
-+  /* FLC */
-+  if (!gst_byte_reader_get_uint32_le (reader, &flxh->oframe1))
-+    goto error;
-+  if (!gst_byte_reader_get_uint32_le (reader, &flxh->oframe2))
-+    goto error;
-+  if (!gst_byte_reader_skip (reader, 40))       /* reserved */
-+    goto error;
-+
-+  return TRUE;
-+
-+error:
-+  GST_ERROR_OBJECT (flxdec, "Error reading file header");
-+  return FALSE;
- }
- static GstFlowReturn
- gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
- {
-+  GstByteReader reader;
-+  GstBuffer *input;
-+  GstMapInfo map_info;
-   GstCaps *caps;
--  guint avail;
-+  guint available;
-   GstFlowReturn res = GST_FLOW_OK;
-   GstFlxDec *flxdec;
-@@ -521,31 +713,50 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
-   g_return_val_if_fail (flxdec != NULL, GST_FLOW_ERROR);
-   gst_adapter_push (flxdec->adapter, buf);
--  avail = gst_adapter_available (flxdec->adapter);
-+  available = gst_adapter_available (flxdec->adapter);
-+  input = gst_adapter_get_buffer (flxdec->adapter, available);
-+  if (!gst_buffer_map (input, &map_info, GST_MAP_READ)) {
-+    GST_ELEMENT_ERROR (flxdec, STREAM, DECODE,
-+        ("%s", "Failed to map buffer"), (NULL));
-+    goto error;
-+  }
-+  gst_byte_reader_init (&reader, map_info.data, map_info.size);
-   if (flxdec->state == GST_FLXDEC_READ_HEADER) {
--    if (avail >= FlxHeaderSize) {
--      const guint8 *data = gst_adapter_map (flxdec->adapter, FlxHeaderSize);
-+    if (available >= FlxHeaderSize) {
-+      GstByteReader header;
-       GstCaps *templ;
--      memcpy ((gchar *) & flxdec->hdr, data, FlxHeaderSize);
--      FLX_HDR_FIX_ENDIANNESS (&(flxdec->hdr));
--      gst_adapter_unmap (flxdec->adapter);
-+      if (!gst_byte_reader_get_sub_reader (&reader, &header, FlxHeaderSize)) {
-+        GST_ELEMENT_ERROR (flxdec, STREAM, DECODE,
-+            ("%s", "Could not read header"), (NULL));
-+        goto unmap_input_error;
-+      }
-       gst_adapter_flush (flxdec->adapter, FlxHeaderSize);
-+      available -= FlxHeaderSize;
-+
-+      if (!_read_flx_header (flxdec, &header, &flxdec->hdr)) {
-+        GST_ELEMENT_ERROR (flxdec, STREAM, DECODE,
-+            ("%s", "Failed to parse header"), (NULL));
-+        goto unmap_input_error;
-+      }
-       flxh = &flxdec->hdr;
-       /* check header */
-       if (flxh->type != FLX_MAGICHDR_FLI &&
--          flxh->type != FLX_MAGICHDR_FLC && flxh->type != FLX_MAGICHDR_FLX)
--        goto wrong_type;
-+          flxh->type != FLX_MAGICHDR_FLC && flxh->type != FLX_MAGICHDR_FLX) {
-+        GST_ELEMENT_ERROR (flxdec, STREAM, WRONG_TYPE, (NULL),
-+            ("not a flx file (type %x)", flxh->type));
-+        goto unmap_input_error;
-+      }
--      GST_LOG ("size      :  %d", flxh->size);
--      GST_LOG ("frames    :  %d", flxh->frames);
--      GST_LOG ("width     :  %d", flxh->width);
--      GST_LOG ("height    :  %d", flxh->height);
--      GST_LOG ("depth     :  %d", flxh->depth);
--      GST_LOG ("speed     :  %d", flxh->speed);
-+      GST_INFO_OBJECT (flxdec, "size      :  %d", flxh->size);
-+      GST_INFO_OBJECT (flxdec, "frames    :  %d", flxh->frames);
-+      GST_INFO_OBJECT (flxdec, "width     :  %d", flxh->width);
-+      GST_INFO_OBJECT (flxdec, "height    :  %d", flxh->height);
-+      GST_INFO_OBJECT (flxdec, "depth     :  %d", flxh->depth);
-+      GST_INFO_OBJECT (flxdec, "speed     :  %d", flxh->speed);
-       flxdec->next_time = 0;
-@@ -573,18 +784,32 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
-       gst_pad_set_caps (flxdec->srcpad, caps);
-       gst_caps_unref (caps);
--      if (flxh->depth <= 8)
--        flxdec->converter =
--            flx_colorspace_converter_new (flxh->width, flxh->height);
-+      /* zero means 8 */
-+      if (flxh->depth == 0)
-+        flxh->depth = 8;
-+
-+      if (flxh->depth != 8) {
-+        GST_ELEMENT_ERROR (flxdec, STREAM, WRONG_TYPE,
-+            ("%s", "Don't know how to decode non 8 bit depth streams"), (NULL));
-+        goto unmap_input_error;
-+      }
-+
-+      flxdec->converter =
-+          flx_colorspace_converter_new (flxh->width, flxh->height);
-       if (flxh->type == FLX_MAGICHDR_FLC || flxh->type == FLX_MAGICHDR_FLX) {
--        GST_LOG ("(FLC) aspect_dx :  %d", flxh->aspect_dx);
--        GST_LOG ("(FLC) aspect_dy :  %d", flxh->aspect_dy);
--        GST_LOG ("(FLC) oframe1   :  0x%08x", flxh->oframe1);
--        GST_LOG ("(FLC) oframe2   :  0x%08x", flxh->oframe2);
-+        GST_INFO_OBJECT (flxdec, "(FLC) aspect_dx :  %d", flxh->aspect_dx);
-+        GST_INFO_OBJECT (flxdec, "(FLC) aspect_dy :  %d", flxh->aspect_dy);
-+        GST_INFO_OBJECT (flxdec, "(FLC) oframe1   :  0x%08x", flxh->oframe1);
-+        GST_INFO_OBJECT (flxdec, "(FLC) oframe2   :  0x%08x", flxh->oframe2);
-       }
-       flxdec->size = ((guint) flxh->width * (guint) flxh->height);
-+      if (flxdec->size >= G_MAXSIZE / 4) {
-+        GST_ELEMENT_ERROR (flxdec, STREAM, DECODE,
-+            ("%s", "Cannot allocate required memory"), (NULL));
-+        goto unmap_input_error;
-+      }
-       /* create delta and output frame */
-       flxdec->frame_data = g_malloc (flxdec->size);
-@@ -596,55 +821,66 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
-     GstBuffer *out;
-     /* while we have enough data in the adapter */
--    while (avail >= FlxFrameChunkSize && res == GST_FLOW_OK) {
--      FlxFrameChunk flxfh;
--      guchar *chunk;
--      const guint8 *data;
--      GstMapInfo map;
--
--      chunk = NULL;
--      data = gst_adapter_map (flxdec->adapter, FlxFrameChunkSize);
--      memcpy (&flxfh, data, FlxFrameChunkSize);
--      FLX_FRAME_CHUNK_FIX_ENDIANNESS (&flxfh);
--      gst_adapter_unmap (flxdec->adapter);
--
--      switch (flxfh.id) {
--        case FLX_FRAME_TYPE:
--          /* check if we have the complete frame */
--          if (avail < flxfh.size)
--            goto need_more_data;
--
--          /* flush header */
--          gst_adapter_flush (flxdec->adapter, FlxFrameChunkSize);
--
--          chunk = gst_adapter_take (flxdec->adapter,
--              flxfh.size - FlxFrameChunkSize);
--          FLX_FRAME_TYPE_FIX_ENDIANNESS ((FlxFrameType *) chunk);
--          if (((FlxFrameType *) chunk)->chunks == 0)
--            break;
-+    while (available >= FlxFrameChunkSize && res == GST_FLOW_OK) {
-+      guint32 size;
-+      guint16 type;
--          /* create 32 bits output frame */
--//          res = gst_pad_alloc_buffer_and_set_caps (flxdec->srcpad,
--//              GST_BUFFER_OFFSET_NONE,
--//              flxdec->size * 4, GST_PAD_CAPS (flxdec->srcpad), &out);
--//          if (res != GST_FLOW_OK)
--//            break;
-+      if (!gst_byte_reader_get_uint32_le (&reader, &size))
-+        goto parse_error;
-+      if (available < size)
-+        goto need_more_data;
--          out = gst_buffer_new_and_alloc (flxdec->size * 4);
-+      available -= size;
-+      gst_adapter_flush (flxdec->adapter, size);
-+
-+      if (!gst_byte_reader_get_uint16_le (&reader, &type))
-+        goto parse_error;
-+
-+      switch (type) {
-+        case FLX_FRAME_TYPE:{
-+          GstByteReader chunks;
-+          GstByteWriter writer;
-+          guint16 n_chunks;
-+          GstMapInfo map;
-+
-+          GST_LOG_OBJECT (flxdec, "Have frame type 0x%02x of size %d", type,
-+              size);
-+
-+          if (!gst_byte_reader_get_sub_reader (&reader, &chunks,
-+                  size - FlxFrameChunkSize))
-+            goto parse_error;
-+
-+          if (!gst_byte_reader_get_uint16_le (&chunks, &n_chunks))
-+            goto parse_error;
-+          GST_LOG_OBJECT (flxdec, "Have %d chunks", n_chunks);
-+
-+          if (n_chunks == 0)
-+            break;
-+          if (!gst_byte_reader_skip (&chunks, 8))       /* reserved */
-+            goto parse_error;
-+
-+          gst_byte_writer_init_with_data (&writer, flxdec->frame_data,
-+              flxdec->size, TRUE);
-           /* decode chunks */
--          if (!flx_decode_chunks (flxdec,
--                  ((FlxFrameType *) chunk)->chunks,
--                  chunk + FlxFrameTypeSize, flxdec->frame_data)) {
-+          if (!flx_decode_chunks (flxdec, n_chunks, &chunks, &writer)) {
-             GST_ELEMENT_ERROR (flxdec, STREAM, DECODE,
-                 ("%s", "Could not decode chunk"), NULL);
--            return GST_FLOW_ERROR;
-+            goto unmap_input_error;
-           }
-+          gst_byte_writer_reset (&writer);
-           /* save copy of the current frame for possible delta. */
-           memcpy (flxdec->delta_data, flxdec->frame_data, flxdec->size);
--          gst_buffer_map (out, &map, GST_MAP_WRITE);
-+          out = gst_buffer_new_and_alloc (flxdec->size * 4);
-+          if (!gst_buffer_map (out, &map, GST_MAP_WRITE)) {
-+            GST_ELEMENT_ERROR (flxdec, STREAM, DECODE,
-+                ("%s", "Could not map output buffer"), NULL);
-+            gst_buffer_unref (out);
-+            goto unmap_input_error;
-+          }
-+
-           /* convert current frame. */
-           flx_colorspace_convert (flxdec->converter, flxdec->frame_data,
-               map.data);
-@@ -655,30 +891,32 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
-           res = gst_pad_push (flxdec->srcpad, out);
-           break;
-+        }
-         default:
--          /* check if we have the complete frame */
--          if (avail < flxfh.size)
--            goto need_more_data;
--
--          gst_adapter_flush (flxdec->adapter, flxfh.size);
-+          GST_DEBUG_OBJECT (flxdec, "Unknown frame type 0x%02x, skipping %d",
-+              type, size);
-+          if (!gst_byte_reader_skip (&reader, size - FlxFrameChunkSize))
-+            goto parse_error;
-           break;
-       }
--
--      g_free (chunk);
--
--      avail = gst_adapter_available (flxdec->adapter);
-     }
-   }
-+
-+  gst_buffer_unmap (input, &map_info);
-+  gst_buffer_unref (input);
-+
- need_more_data:
-   return res;
-   /* ERRORS */
--wrong_type:
--  {
--    GST_ELEMENT_ERROR (flxdec, STREAM, WRONG_TYPE, (NULL),
--        ("not a flx file (type %x)", flxh->type));
--    return GST_FLOW_ERROR;
--  }
-+parse_error:
-+  GST_ELEMENT_ERROR (flxdec, STREAM, DECODE,
-+      ("%s", "Failed to parse stream"), (NULL));
-+unmap_input_error:
-+  gst_buffer_unmap (input, &map_info);
-+  gst_buffer_unref (input);
-+error:
-+  return GST_FLOW_ERROR;
- }
- static GstStateChangeReturn
-diff --git a/gst/flx/gstflxdec.h b/gst/flx/gstflxdec.h
-index 3f9a0aa..4fd8dfd 100644
---- a/gst/flx/gstflxdec.h
-+++ b/gst/flx/gstflxdec.h
-@@ -23,6 +23,8 @@
- #include <gst/gst.h>
- #include <gst/base/gstadapter.h>
-+#include <gst/base/gstbytereader.h>
-+#include <gst/base/gstbytewriter.h>
- #include "flx_color.h"
- G_BEGIN_DECLS
-@@ -45,7 +47,7 @@ struct _GstFlxDec {
-   guint8 *delta_data, *frame_data;
-   GstAdapter *adapter;
--  gulong size;
-+  gsize size;
-   GstFlxDecState state;
-   gint64 frame_time;
-   gint64 next_time;
--- 
-2.10.2
-
index 2e3db3d81bc29d46307b010d53dec63472eb2e9c..98b79886985168372bb7defe586c2a56e9f4103d 100644 (file)
@@ -1,2 +1,2 @@
-# From http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.8.3.tar.xz.sha256sum
-sha256 a1d6579ba203a7734927c24b90bf6590d846c5a5fcec01a48201018c8ad2827a  gst-plugins-good-1.8.3.tar.xz
+# From http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.10.2.tar.xz.sha256sum
+sha256 198f325bcce982dce1ebeb36929a5f430b8bf9528e0d519e18df0b29e1d23313  gst-plugins-good-1.10.2.tar.xz
index b4bc2e474cb8494af9714f6b5f512a1b46983f62..da0345497c92e131e7bcd4ca63958851284f79b0 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GST1_PLUGINS_GOOD_VERSION = 1.8.3
+GST1_PLUGINS_GOOD_VERSION = 1.10.2
 GST1_PLUGINS_GOOD_SOURCE = gst-plugins-good-$(GST1_PLUGINS_GOOD_VERSION).tar.xz
 GST1_PLUGINS_GOOD_SITE = https://gstreamer.freedesktop.org/src/gst-plugins-good
 GST1_PLUGINS_GOOD_LICENSE_FILES = COPYING
index 1c6aa7d80a210d569463fbf3b836fcafbc67869c..a86fd649272cad63820fcd6f7927b305e2542fd3 100644 (file)
@@ -1,2 +1,2 @@
-# From http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.8.3.tar.xz.sha256sum
-sha256 6fa2599fdd072d31fbaf50c34af406e2be944a010b1f4eab67a5fe32a0310693  gst-plugins-ugly-1.8.3.tar.xz
+# From http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.10.2.tar.xz.sha256sum
+sha256 f303dd4c2ebc963e8b0b03c3069f70657bcf1cd62224d344ad579b3dda17ec9d  gst-plugins-ugly-1.10.2.tar.xz
index 4a67a73bceddbedcb4d213bc426922b9e1778a6c..b064c954cc28e7b94ecb1d484c627a1a3228baa3 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GST1_PLUGINS_UGLY_VERSION = 1.8.3
+GST1_PLUGINS_UGLY_VERSION = 1.10.2
 GST1_PLUGINS_UGLY_SOURCE = gst-plugins-ugly-$(GST1_PLUGINS_UGLY_VERSION).tar.xz
 GST1_PLUGINS_UGLY_SITE = https://gstreamer.freedesktop.org/src/gst-plugins-ugly
 GST1_PLUGINS_UGLY_LICENSE_FILES = COPYING
index a30afbc1d3b62ccb1f2d66ce767a2cadf5de880d..30cd68466b8cf7e295e1bf0ebb6a2733bd2ab157 100644 (file)
@@ -1,2 +1,2 @@
-# From https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-1.8.3.tar.xz.sha256sum
-sha256 010f06800c1c957851d1352e5ec7a8ba3ce6a857fec1b8afc7d1a9e5f53288bf  gst-rtsp-server-1.8.3.tar.xz
+# From https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-1.10.2.tar.xz.sha256sum
+sha256 822dd6f754fea2bbf3369a7c388372f49b74668fb57943c1888675e544b07235  gst-rtsp-server-1.10.2.tar.xz
index 458e3aff37c7f86d073754779b5b11ecbf5b3433..8fcaaf472669c0352b067860fe7ef7474e4ea044 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GST1_RTSP_SERVER_VERSION = 1.8.3
+GST1_RTSP_SERVER_VERSION = 1.10.2
 GST1_RTSP_SERVER_SOURCE = gst-rtsp-server-$(GST1_RTSP_SERVER_VERSION).tar.xz
 GST1_RTSP_SERVER_SITE = http://gstreamer.freedesktop.org/src/gst-rtsp-server
 GST1_RTSP_SERVER_LICENSE = LGPLv2+
index a9bb2aa388be41886f030e38a1fb030a73117773..2022d38d99bae472d17b936d36fe136a650f5366 100644 (file)
@@ -2,6 +2,7 @@ config BR2_PACKAGE_GST1_VALIDATE
        bool "gst1-validate"
        depends on BR2_PACKAGE_PYTHON
        select BR2_PACKAGE_GST1_PLUGINS_BASE
+       select BR2_PACKAGE_JSON_GLIB
        select BR2_PACKAGE_PYTHON_PYEXPAT
        # cairo is autodetected but needs PNG support
        select BR2_PACKAGE_CAIRO_PNG if BR2_PACKAGE_CAIRO
index 09061f402a47a24272c327f7acdc88ad8dc688bd..70b868ff0afad3a56df8cdec9d756ff94b9c4208 100644 (file)
@@ -1,2 +1,2 @@
-# From http://gstreamer.freedesktop.org/src/gst-validate/gst-validate-1.8.3.tar.xz.sha256sum
-sha256 4525a4fb5b85b8a49674e00d652bee9ac62c56241c148abbff23efa50a224e34  gst-validate-1.8.3.tar.xz
+# From http://gstreamer.freedesktop.org/src/gst-validate/gst-validate-1.10.2.tar.xz.sha256sum
+sha256 be274418d78694cecb1be6c860f3f499baa4313eece60a654507ab14d6989ed7  gst-validate-1.10.2.tar.xz
index 372e5d663367cbe5d844f20ccbd2ed7b53f2d34f..69a78bde3afc4f11f8550fb300f75f02cc588b3d 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GST1_VALIDATE_VERSION = 1.8.3
+GST1_VALIDATE_VERSION = 1.10.2
 GST1_VALIDATE_SOURCE = gst-validate-$(GST1_VALIDATE_VERSION).tar.xz
 GST1_VALIDATE_SITE = https://gstreamer.freedesktop.org/src/gst-validate
 GST1_VALIDATE_LICENSE = LGPLv2.1+
@@ -15,6 +15,7 @@ GST1_VALIDATE_CONF_OPTS = --disable-sphinx-doc
 GST1_VALIDATE_DEPENDENCIES = \
        gstreamer1 \
        gst1-plugins-base \
+       json-glib \
        host-python \
        python \
        $(if $(BR2_PACKAGE_CAIRO),cairo)
index c85518e270c8f5e4a4a62ab55a1abc1123f14f97..3fd7c6bebb5a6f3e08874e35ae503e90501c6fca 100644 (file)
@@ -1,2 +1,2 @@
-# From http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.8.3.tar.xz.sha256sum
-sha256 66b37762d4fdcd63bce5a2bec57e055f92420e95037361609900278c0db7c53f  gstreamer-1.8.3.tar.xz
+# From http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.10.2.tar.xz.sha256sum
+sha256 150e8e81febac94c161d8141cde78a38038a8f56e8ec549f353da54994278d65  gstreamer-1.10.2.tar.xz
index d69c3e87cde69324082d8917e3e21d2571d0c909..6086e1329c9f9b714f18f5b7e1e201b545016fb1 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GSTREAMER1_VERSION = 1.8.3
+GSTREAMER1_VERSION = 1.10.2
 GSTREAMER1_SOURCE = gstreamer-$(GSTREAMER1_VERSION).tar.xz
 GSTREAMER1_SITE = https://gstreamer.freedesktop.org/src/gstreamer
 GSTREAMER1_INSTALL_STAGING = YES
@@ -34,16 +34,11 @@ GSTREAMER1_CONF_OPTS = \
        $(if $(BR2_PACKAGE_GSTREAMER1_PLUGIN_REGISTRY),,--disable-registry) \
        $(if $(BR2_PACKAGE_GSTREAMER1_INSTALL_TOOLS),,--disable-tools)
 
-GSTREAMER1_DEPENDENCIES = libglib2 host-pkgconf host-bison host-flex
-
-# gstreamer-1.6 changed the location of its gstconfig.h file,
-# and unfortunately, not all (by far!) consumers have been
-# updated to look in the correct location.
-# Add a symlink to the legacy location
-define GSTREAMER1_LEGACY_CGSTCONFIG_H
-       cd $(STAGING_DIR)/usr/include/gstreamer-1.0/gst && \
-               ln -sf ../../../lib/gstreamer-1.0/include/gst/gstconfig.h .
-endef
-GSTREAMER1_POST_INSTALL_STAGING_HOOKS += GSTREAMER1_LEGACY_CGSTCONFIG_H
+GSTREAMER1_DEPENDENCIES = \
+       host-bison \
+       host-flex \
+       host-pkgconf \
+       libglib2 \
+       $(if $(BR2_PACKAGE_LIBUNWIND),libunwind)
 
 $(eval $(autotools-package))
index 7409a78e287af8c06bcaad4c31884d97d6f7e710..adc509014620d6a1424235bd5edfb8a7dde61fb1 100644 (file)
@@ -7,10 +7,15 @@
 HTOP_VERSION = 2.0.2
 HTOP_SITE = http://hisham.hm/htop/releases/$(HTOP_VERSION)
 HTOP_DEPENDENCIES = ncurses
-HTOP_CONF_OPTS = --disable-unicode
 # Prevent htop build system from searching the host paths
 HTOP_CONF_ENV = HTOP_NCURSES_CONFIG_SCRIPT=$(STAGING_DIR)/usr/bin/ncurses5-config
 HTOP_LICENSE = GPLv2
 HTOP_LICENSE_FILES = COPYING
 
+ifeq ($(BR2_PACKAGE_NCURSES_WCHAR),y)
+HTOP_CONF_OPTS += --enable-unicode
+else
+HTOP_CONF_OPTS += --disable-unicode
+endif
+
 $(eval $(autotools-package))
index e8179b70215c1a00ca0eea493d7f9f186e83a129..0f212241da9edf15d15f5fdd1b6f6bc7977f13b3 100644 (file)
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256 2300187bf25616c382cb2f191a2eb13033e019511854794ce234a76cf9f5ad6b  kexec-lite-783fb4a811d0b0f8cc2ed68fa7872dcad56a3944.tar.gz
+sha256 5786ddc0c94ead4fd4a1fded44bb1da0c9bc91af08049fed373ea161603e1e1f  kexec-lite-86e45a47e8cc1f598ccfa9b873a23067f4ecc36f.tar.gz
index 27bc20485d5ba3cadddda8b118f69af7e7d0ca6f..2467306dab0223f65e530472a8bb701f7ee45122 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-KEXEC_LITE_VERSION = 783fb4a811d0b0f8cc2ed68fa7872dcad56a3944
+KEXEC_LITE_VERSION = 86e45a47e8cc1f598ccfa9b873a23067f4ecc36f
 KEXEC_LITE_SITE = $(call github,antonblanchard,kexec-lite,$(KEXEC_LITE_VERSION))
 KEXEC_LITE_LICENSE = GPLv2+
 KEXEC_LITE_DEPENDENCIES = elfutils dtc
diff --git a/package/kodi/0012-Fix_includes_in_amcodec.patch b/package/kodi/0012-Fix_includes_in_amcodec.patch
new file mode 100644 (file)
index 0000000..4a6d44f
--- /dev/null
@@ -0,0 +1,38 @@
+commit 4bbb21aa5cee6b2f40759aa8b1bd65246a237f79
+Author: Alex Deryskyba <alex@codesnake.com>
+Date:   Wed May 4 01:38:27 2016 +0200
+
+    [aml] Fix includes in amcodec/codec.h to make them relative
+
+[Taken from upstream commit
+https://github.com/xbmc/xbmc/commit/4bbb21aa5cee6b2f40759aa8b1bd65246a237f79.]
+Signed-off-by: Dagg Stompler <daggs@gmx.com>
+
+diff --git a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec.h b/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec.h
+index 187d4d5..632c24e 100644
+--- a/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec.h
++++ b/tools/depends/target/libamplayer/libamplayer/include/amcodec/codec.h
+@@ -12,8 +12,8 @@
+ #ifndef CODEC_CTRL_H_
+ #define CODEC_CTRL_H_
+-#include <codec_type.h>
+-#include <codec_error.h>
++#include "codec_type.h"
++#include "codec_error.h"
+ int codec_init(codec_para_t *);
+diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in
+index a1a3447..1bf5a89 100644
+--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in
++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in
+@@ -24,8 +24,6 @@ endif
+ ifeq (@USE_LIBAMCODEC@,1)
+ SRCS += AMLCodec.cpp
+ SRCS += DVDVideoCodecAmlogic.cpp
+-INCLUDES += -I$(prefix)/include/amcodec
+-INCLUDES += -I$(prefix)/include/amplayer
+ endif
+ ifeq (@USE_ANDROID@,1)
index e0361dae781b343d692d4fa24df2a62fe465c115..de4d308f6b156625550abad1f24bcef6f0c8dee8 100644 (file)
@@ -96,9 +96,10 @@ endif
 ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
 KODI_DEPENDENCIES += rpi-userland
 KODI_CONF_OPTS += --with-platform=raspberry-pi --enable-player=omxplayer
-KODI_CONF_ENV += INCLUDES="-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \
-       -I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux" \
-       LIBS="-lvcos -lvchostif"
+KODI_INCLUDES += \
+       -I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \
+       -I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux
+KODI_LIBS = -lvcos -lvchostif
 endif
 
 ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
@@ -113,6 +114,16 @@ KODI_DEPENDENCIES += imx-vpuwrap
 KODI_CONF_OPTS += --enable-codec=imxvpu
 endif
 
+ifeq ($(BR2_PACKAGE_LIBAMCODEC),y)
+KODI_DEPENDENCIES += libamcodec
+KODI_CONF_OPTS += --enable-codec=amcodec
+KODI_INCLUDES += -I$(STAGING_DIR)/usr/include/amcodec
+endif
+
+KODI_CONF_ENV += \
+       INCLUDES="$(KODI_INCLUDES)" \
+       LIBS="$(KODI_LIBS)"
+
 ifeq ($(BR2_PACKAGE_LIBCAP),y)
 KODI_CONF_OPTS += --enable-libcap
 KODI_DEPENDENCIES += libcap
index 908822f8c150129d7cc590739d2ca21c9f43b934..1cf1017c5404119ad273b9ce3728886f031798e9 100644 (file)
@@ -1,5 +1,4 @@
-# From http://sourceforge.net/projects/lcms/files/lcms/2.7/
-sha1   625f0d74bad4a0f6f917120fd992437d26f754d2        lcms2-2.7.tar.gz
-md5    06c1626f625424a811fb4b5eb070839d                lcms2-2.7.tar.gz
+# From https://sourceforge.net/projects/lcms/files/lcms/2.8
+sha1 e9535ec4a572b8fc7a1c405c35e6f4dc97714197 lcms2-2.8.tar.gz
 # Locally computed:
-sha256 4524234ae7de185e6b6da5d31d6875085b2198bc63b1211f7dde6e2d197d6a53        lcms2-2.7.tar.gz
+sha256 66d02b229d2ea9474e62c2b6cd6720fde946155cd1d0d2bffdab829790a0fb22 lcms2-2.8.tar.gz
index 265af29098874c67bc0baae2a47c0f1bee4fc5f7..8d0609ea1e12686a83cc16c0d894097ebadffa33 100644 (file)
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-LCMS2_VERSION = 2.7
-LCMS2_SITE = http://downloads.sourceforge.net/lcms/lcms
+LCMS2_VERSION = 2.8
+LCMS2_SITE = http://downloads.sourceforge.net/project/lcms/lcms/$(LCMS2_VERSION)
 LCMS2_LICENSE = MIT
 LCMS2_LICENSE_FILES = COPYING
 LCMS2_INSTALL_STAGING = YES
index 57a5205af055d39b1d9e784f040cce4f16c5d2f0..0e0f927a5600b7dd9e9bad8c6a83c76392b061e8 100644 (file)
@@ -1,2 +1,2 @@
-# Locally calculated
-sha256 3b22259cdc4c1a6ae349057d16bda4b4816929e04d223242ab8927bc31a48e7c  lftp-4.7.3.tar.xz
+# Locally calculated after checking gpg signature
+sha256 bf67c4d128b6f769a4082947376a9679c5ee3463a24ab761a0757f75d70bd92c  lftp-4.7.4.tar.xz
index 802bbc74bed9bc06e5d179d2bb8a56f3a52eeed6..a7e1f92619e78cc656a057b68179926f85e64f25 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LFTP_VERSION = 4.7.3
+LFTP_VERSION = 4.7.4
 LFTP_SOURCE = lftp-$(LFTP_VERSION).tar.xz
 LFTP_SITE = http://lftp.yar.ru/ftp
 LFTP_LICENSE = GPLv3+
index c6fe7a03b414c40fcdf54004127e14d24214eeff..e9206f33953f3649b116bdb94fb200f3802a54cc 100644 (file)
@@ -1,6 +1,8 @@
 config BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS
        bool
-       default y if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_i386 || BR2_sparc || BR2_sparc64 || BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || BR2_x86_64
+       default y if BR2_arm || BR2_armeb || BR2_aarch64 || BR2_i386 || BR2_sparc || BR2_sparc64 || BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || BR2_x86_64 || BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
+       # Unsupported for MIPS R6
+       depends on !BR2_MIPS_CPU_MIPS32R6 && !BR2_MIPS_CPU_MIPS64R6
 
 config BR2_PACKAGE_LIBATOMIC_OPS
        bool "libatomic_ops"
index d91f7059d0a6460af35f4a6a978009dcb634ecc2..47a281ddf26e3c4cdf7121a7afdc9227349b12ed 100644 (file)
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256 2616be0a2f70f7e3eb12f131a36e32723ed5a1928f17b886c3e7c62f7ed14339  libatomic_ops-libatomic_ops-7_4_2.tar.gz
+sha256 ef8335676f18a111f885d48810ab090fb6bfad94e5a5dd76cdccd2a536828662  libatomic_ops-libatomic_ops-7_4_4.tar.gz
index fd457267502b24e2673552fa211ebef42100b583..b5e217237c07c3c3200d766e016f69b48891b61e 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBATOMIC_OPS_VERSION = libatomic_ops-7_4_2
+LIBATOMIC_OPS_VERSION = libatomic_ops-7_4_4
 LIBATOMIC_OPS_SITE = $(call github,ivmai,libatomic_ops,$(LIBATOMIC_OPS_VERSION))
 LIBATOMIC_OPS_AUTORECONF = YES
 
index bda054eb0120d1cd527de541ba92297eb5fa8ed3..3131705228efe3a1d2162b2974acfec70d5c64c5 100644 (file)
@@ -1,2 +1,2 @@
-# From https://lists.freedesktop.org/archives/dri-devel/2016-October/119998.html
-sha256 c66287ddeee5f46ea8f8880b94b80acb3bbc33ba6321d17767eef145046df9b8        libdrm-2.4.71.tar.bz2
+# From https://lists.freedesktop.org/archives/dri-devel/2016-November/123704.html
+sha256 96bfd39242fe168017d95f22e141645a35591f5902a7d98c2fa4ca8c31df5e4d  libdrm-2.4.73.tar.bz2
index cce50236f413db9edaa9fff0f34de06684e637aa..b4e1aada79acba7d47b41920def2c0a7ab9f5660 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBDRM_VERSION = 2.4.71
+LIBDRM_VERSION = 2.4.73
 LIBDRM_SOURCE = libdrm-$(LIBDRM_VERSION).tar.bz2
 LIBDRM_SITE = http://dri.freedesktop.org/libdrm
 LIBDRM_LICENSE = MIT
index 175702f751a411b7a27e066cebe78828a2cbcf69..3388c5cda2e98815a8c0fece021b55a4fa399efc 100644 (file)
@@ -1,2 +1,2 @@
-# From http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.30.sha256sum
-sha256 0d15cec3b6d55c60eac205b1f3ba81a1ed4eadd9d0f8e7c508bc7065d0c4ca50        gtk+-2.24.30.tar.xz
+# From http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-2.24.31.sha256sum
+sha256 68c1922732c7efc08df4656a5366dcc3afdc8791513400dac276009b40954658  gtk+-2.24.31.tar.xz
index 94fa97f20439f1a4ea533e943ee1cc44a6517163..cf8b2f4eeecc1458d3624aae3c18c470f7f08019 100644 (file)
@@ -5,7 +5,7 @@
 ################################################################################
 
 LIBGTK2_VERSION_MAJOR = 2.24
-LIBGTK2_VERSION = $(LIBGTK2_VERSION_MAJOR).30
+LIBGTK2_VERSION = $(LIBGTK2_VERSION_MAJOR).31
 LIBGTK2_SOURCE = gtk+-$(LIBGTK2_VERSION).tar.xz
 LIBGTK2_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK2_VERSION_MAJOR)
 LIBGTK2_INSTALL_STAGING = YES
index b60671753c296de036bfae3cd1c727afc34f9b15..1c58efc2fc6e53b033dd2f441a26cbf985464b75 100644 (file)
@@ -1,2 +1,2 @@
-# From http://ftp.gnome.org/pub/gnome/sources/gtk+/3.22/gtk+-3.22.2.sha256sum
-sha256 2343dcaed2fc237ef718136ff4110fef7eb1ebfe178a9b064aa21cd74ecb6946        gtk+-3.22.2.tar.xz
+# From http://ftp.gnome.org/pub/gnome/sources/gtk+/3.22/gtk+-3.22.3.sha256sum
+sha256 e190ab1a9a893861b8e8be341aa57bce8b7146d6445ebfe5a8ab64236fe82ed3  gtk+-3.22.3.tar.xz
index b7cea7dd37f38d77f74ed2abe63c825b71230ff0..0b9a9992ef656b3c348fd3946e77c37f408c4afa 100644 (file)
@@ -5,7 +5,7 @@
 ################################################################################
 
 LIBGTK3_VERSION_MAJOR = 3.22
-LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).2
+LIBGTK3_VERSION = $(LIBGTK3_VERSION_MAJOR).3
 LIBGTK3_SOURCE = gtk+-$(LIBGTK3_VERSION).tar.xz
 LIBGTK3_SITE = http://ftp.gnome.org/pub/gnome/sources/gtk+/$(LIBGTK3_VERSION_MAJOR)
 LIBGTK3_LICENSE = LGPLv2+
diff --git a/package/libnet/0001-support-musl-libc.patch b/package/libnet/0001-support-musl-libc.patch
new file mode 100644 (file)
index 0000000..0704157
--- /dev/null
@@ -0,0 +1,50 @@
+From ffd7fab744a9ad2893169a8fb6244074604d5d0d Mon Sep 17 00:00:00 2001
+From: rofl0r <retnyg@gmx.net>
+Date: Tue, 12 Aug 2014 21:51:39 +0200
+Subject: [PATCH] Support musl libc, remove support for glibc < 2.1
+
+The workarounds for glibc < 2.1 (was released february 1999) break the
+build with musl libc.
+
+It is very unlikely that 2.0 or earlier is still in use, and if so,
+1) that's a big security hole
+2) code wouldnt compile anyway since noone tested build in the last decade
+3) user of it wouldn't expect anyway to get bleeding edge sw built on it,
+   so he would just use the latest version that works for him.
+
+Closes #52
+---
+ libnet/src/libnet_link_linux.c | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/libnet/src/libnet_link_linux.c b/libnet/src/libnet_link_linux.c
+index 054458d..3c6df3c 100644
+--- a/src/libnet_link_linux.c
++++ b/src/libnet_link_linux.c
+@@ -30,26 +30,15 @@
+ #include <sys/time.h>
+ #include <net/if.h>
+-#if (__GLIBC__)
+ #include <netinet/if_ether.h>
+ #include <net/if_arp.h>
+-#else
+-#include <linux/if_arp.h>
+-#include <linux/if_ether.h>
+-#endif
+ #if (HAVE_PACKET_SOCKET)
+ #ifndef SOL_PACKET
+ #define SOL_PACKET 263
+ #endif  /* SOL_PACKET */
+-#if __GLIBC__ >= 2 && __GLIBC_MINOR >= 1
+ #include <netpacket/packet.h>
+ #include <net/ethernet.h>     /* the L2 protocols */
+-#else
+-#include <asm/types.h>
+-#include <linux/if_packet.h>
+-#include <linux/if_ether.h>   /* The L2 protocols */
+-#endif
+ #endif  /* HAVE_PACKET_SOCKET */
+ #include "../include/libnet.h"
index 0c5c230af42b8203ed322cc7d63eb6938f2aa2bb..7186972b7e441b63401f0655f174f1fa9fceb310 100644 (file)
@@ -1,12 +1,7 @@
 config BR2_PACKAGE_LIBNET
        bool "libnet"
-       # Build with musl fails due to header issues
-       depends on !BR2_TOOLCHAIN_USES_MUSL
        help
          libnet provides a portable framework for low-level network
          packet construction.
 
          http://sourceforge.net/projects/libnet-dev
-
-comment "libnet needs a glibc or uClibc toolchain"
-       depends on BR2_TOOLCHAIN_USES_MUSL
diff --git a/package/libpjsip/0001-Use-mutex-types-compatible-with-musl-fixes-musl-buil.patch b/package/libpjsip/0001-Use-mutex-types-compatible-with-musl-fixes-musl-buil.patch
deleted file mode 100644 (file)
index ab3444b..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-From ba1057d74aac6c2dde5477bd6a2deea79f14962c Mon Sep 17 00:00:00 2001
-From: Luca Ceresoli <luca@lucaceresoli.net>
-Date: Sat, 12 Mar 2016 15:19:34 +0100
-Subject: [PATCH 1/2] Use mutex types compatible with musl (fixes musl build)
-
-PTHREAD_MUTEX_FAST_NP and PTHREAD_MUTEX_RECURSIVE_NP are not defined
-in the musl C library. Use values that map to the same mutex type in
-GNU libc and uClibc-ng.
-
-Fixes the following build errors when building with musl:
-
-  ../src/pj/os_core_unix.c: In function 'init_mutex':
-  ../src/pj/os_core_unix.c:1128:40: error: 'PTHREAD_MUTEX_FAST_NP' undeclared (first use in this function)
-    rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_FAST_NP);
-                                          ^
-  ../src/pj/os_core_unix.c:1128:40: note: each undeclared identifier is reported only once for each function it appears in
-  ../src/pj/os_core_unix.c:1138:40: error: 'PTHREAD_MUTEX_RECURSIVE_NP' undeclared (first use in this function)
-    rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
-                                          ^
-
-Original patch:
-http://git.alpinelinux.org/cgit/aports/plain/main/pjproject/musl-fixes.patch
-
-Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
----
- pjlib/src/pj/os_core_unix.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/pjlib/src/pj/os_core_unix.c b/pjlib/src/pj/os_core_unix.c
-index 1c87b2f..f08ba27 100644
---- a/pjlib/src/pj/os_core_unix.c
-+++ b/pjlib/src/pj/os_core_unix.c
-@@ -1125,7 +1125,7 @@ static pj_status_t init_mutex(pj_mutex_t *mutex, const char *name, int type)
-     if (type == PJ_MUTEX_SIMPLE) {
- #if (defined(PJ_LINUX) && PJ_LINUX!=0) || \
-     defined(PJ_HAS_PTHREAD_MUTEXATTR_SETTYPE)
--      rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_FAST_NP);
-+      rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL);
- #elif (defined(PJ_RTEMS) && PJ_RTEMS!=0) || \
-        defined(PJ_PTHREAD_MUTEXATTR_T_HAS_RECURSIVE)
-       /* Nothing to do, default is simple */
-@@ -1135,7 +1135,7 @@ static pj_status_t init_mutex(pj_mutex_t *mutex, const char *name, int type)
-     } else {
- #if (defined(PJ_LINUX) && PJ_LINUX!=0) || \
-      defined(PJ_HAS_PTHREAD_MUTEXATTR_SETTYPE)
--      rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
-+      rc = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
- #elif (defined(PJ_RTEMS) && PJ_RTEMS!=0) || \
-        defined(PJ_PTHREAD_MUTEXATTR_T_HAS_RECURSIVE)
-       // Phil Torre <ptorre@zetron.com>:
--- 
-1.9.1
-
diff --git a/package/libpjsip/0002-Replace-__sched_priority-with-sched_priority-fixes-m.patch b/package/libpjsip/0002-Replace-__sched_priority-with-sched_priority-fixes-m.patch
deleted file mode 100644 (file)
index e1cb002..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-From cca93ce25f993c97ef3d96fa32461d5717c30518 Mon Sep 17 00:00:00 2001
-From: Luca Ceresoli <luca@lucaceresoli.net>
-Date: Sat, 12 Mar 2016 15:31:47 +0100
-Subject: [PATCH 2/2] Replace __sched_priority with sched_priority(fixes musl
- build)
-
-The musl C library defines sched_priority, not __sched_priority as GNU
-libc and uClibc-ng do. Use sched_priority instead.
-
-This does not break compatibility with GNU libc and uClibc-ng because
-both define in sched.h:
-
-  #define sched_priority         __sched_priority
-
-Fixes the following build errors when building with musl:
-
-  ../src/samples/siprtp.c: In function 'boost_priority':
-  ../src/samples/siprtp.c:1137:7: error: 'struct sched_param' has no member named '__sched_priority'
-       tp.__sched_priority = max_prio;
-         ^
-  In file included from /home/murray/devel/buildroot/test-musl-eabi/build/libpjsip-2.4.5/pjlib/include/pj/except.h:30:0,
-                   from /home/murray/devel/buildroot/test-musl-eabi/build/libpjsip-2.4.5/pjlib/include/pjlib.h:35,
-                   from ../src/samples/siprtp.c:76:
-  ../src/samples/siprtp.c:1146:18: error: 'struct sched_param' has no member named '__sched_priority'
-          policy, tp.__sched_priority));
-                    ^
-
-Original patch:
-http://git.alpinelinux.org/cgit/aports/plain/main/pjproject/musl-fixes.patch
-
-Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
----
- pjsip-apps/src/samples/siprtp.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/pjsip-apps/src/samples/siprtp.c b/pjsip-apps/src/samples/siprtp.c
-index 796464f..6e32a8f 100644
---- a/pjsip-apps/src/samples/siprtp.c
-+++ b/pjsip-apps/src/samples/siprtp.c
-@@ -1134,7 +1134,7 @@ static void boost_priority(void)
-                   PJ_RETURN_OS_ERROR(rc));
-       return;
-     }
--    tp.__sched_priority = max_prio;
-+    tp.sched_priority = max_prio;
-     rc = sched_setscheduler(0, POLICY, &tp);
-     if (rc != 0) {
-@@ -1143,7 +1143,7 @@ static void boost_priority(void)
-     }
-     PJ_LOG(4, (THIS_FILE, "New process policy=%d, priority=%d",
--            policy, tp.__sched_priority));
-+            policy, tp.sched_priority));
-     /*
-      * Adjust thread scheduling algorithm and priority
-@@ -1156,10 +1156,10 @@ static void boost_priority(void)
-     }
-     PJ_LOG(4, (THIS_FILE, "Old thread policy=%d, priority=%d",
--            policy, tp.__sched_priority));
-+            policy, tp.sched_priority));
-     policy = POLICY;
--    tp.__sched_priority = max_prio;
-+    tp.sched_priority = max_prio;
-     rc = pthread_setschedparam(pthread_self(), policy, &tp);
-     if (rc != 0) {
-@@ -1169,7 +1169,7 @@ static void boost_priority(void)
-     }
-     PJ_LOG(4, (THIS_FILE, "New thread policy=%d, priority=%d",
--            policy, tp.__sched_priority));
-+            policy, tp.sched_priority));
- }
- #else
--- 
-1.9.1
-
index e0d3d14323abe6952e054701be44d0c2208a9545..99760652cb116790bb7d76ab6784a7628d09c9d8 100644 (file)
@@ -1,5 +1,5 @@
-# From http://www.pjsip.org/release/2.4.5/MD5SUM.TXT
-md5    f58b3485977b3a700256203a554b3869  pjproject-2.4.5.tar.bz2
+# From http://www.pjsip.org/release/2.5.5/MD5SUM.TXT
+md5    183f7144b9aa238884243c0fc52ece36  pjproject-2.5.5.tar.bz2
 
 # Locally computed
-sha256 086f5e70dcaee312b66ddc24dac6ef85e6f1fec4eed00ff2915cebe0ee3cdd8d        pjproject-2.4.5.tar.bz2
+sha256 ab39207b761d3485199cd881410afeb2d171dff7c2bf75e8caae91c6dca508f3        pjproject-2.5.5.tar.bz2
index 2b5e18f2230e1d5cd24d3c704da28aab166b3d7f..cb0d866e255b06a3fb0342f9b6839dee6416dca1 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBPJSIP_VERSION = 2.4.5
+LIBPJSIP_VERSION = 2.5.5
 LIBPJSIP_SOURCE = pjproject-$(LIBPJSIP_VERSION).tar.bz2
 LIBPJSIP_SITE = http://www.pjsip.org/release/$(LIBPJSIP_VERSION)
 LIBPJSIP_DEPENDENCIES = libsrtp
@@ -34,6 +34,8 @@ LIBPJSIP_CONF_OPTS = \
        --disable-opencore-amr \
        --disable-g7221-codec \
        --disable-ilbc-codec \
+       --disable-webrtc \
+       --disable-opus \
        --with-external-srtp=$(STAGING_DIR)/usr
 
 ifeq ($(BR2_PACKAGE_OPENSSL),y)
index 24c2170451238b397d60bf5d8741f42f38a21d74..10664d051b2d29c611185f074edd7625a5197bc9 100644 (file)
@@ -1,2 +1,2 @@
-# From https://lists.freedesktop.org/archives/libva/2016-September/004380.html
-sha1 9373afadd6ec0d6d983cf5bb2001d91c22b39719  libva-intel-driver-1.7.2.tar.bz2
+# From https://lists.freedesktop.org/archives/libva/2016-November/004731.html
+sha1 5100f187afc4e39fce5664b96fe11a38faa9afaa  libva-intel-driver-1.7.3.tar.bz2
index c388de1589381a96554cb640e82796abbd950188..86f6eaa60e29776997605598ce41f60a55c19454 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBVA_INTEL_DRIVER_VERSION = 1.7.2
+LIBVA_INTEL_DRIVER_VERSION = 1.7.3
 LIBVA_INTEL_DRIVER_SOURCE = libva-intel-driver-$(LIBVA_INTEL_DRIVER_VERSION).tar.bz2
 LIBVA_INTEL_DRIVER_SITE = http://www.freedesktop.org/software/vaapi/releases/libva-intel-driver
 LIBVA_INTEL_DRIVER_LICENSE = MIT
index c2e5ea4644c54ddc325c5c022ef7baa8d69fd343..e63f4dbd8350366e351808e1d0fd738b19d8105b 100644 (file)
@@ -1,2 +1,2 @@
-# From https://lists.freedesktop.org/archives/libva/2016-September/004379.html
-sha1 a89680d34236fdc63adeec25cf431c005644b8c6  libva-1.7.2.tar.bz2
+# From https://lists.freedesktop.org/archives/libva/2016-November/004730.html
+sha1 18e46f3d5a0e971eb0ec9fe14bc021e69eb13fb8  libva-1.7.3.tar.bz2
index df1758efcd62d9a1455d1b2dc4b326ed9d8374e1..cf42b70e843b27a04da133b891c86d360f563ddf 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBVA_VERSION = 1.7.2
+LIBVA_VERSION = 1.7.3
 LIBVA_SOURCE = libva-$(LIBVA_VERSION).tar.bz2
 LIBVA_SITE = http://www.freedesktop.org/software/vaapi/releases/libva
 LIBVA_LICENSE = MIT
index 8cdd9329f58af2ebcd6aa763eb0af1095cc127b8..e98e5cbf58ff5f592174750d03bfe4902ea1cea8 100644 (file)
@@ -19,7 +19,7 @@ Index: b/lib/expat/gennmtab/Makefile
 +      $(CC_FOR_BUILD) -c $< -o $@ $(CFLAGS_FOR_BUILD) $(INCLUDES)
  
  gennmtab:%:%.o
--      $(BUILDTOOL_CCLD) -o $@ $(LDFLAGS) $^
+-      $(BUILDTOOL_CCLD) -o $@ $(LDFLAGS_ALL) $^
 +      $(CC_FOR_BUILD) -o $@ $(LDFLAGS_FOR_BUILD) $^
  
  include depend.mk
index b5816432d8921dc2f30c1288e583b28ca6740699..f2f1c557baa204f50728abe9726188c4f9d0ee3f 100644 (file)
@@ -12,15 +12,15 @@ Index: b/src/Makefile
 ===================================================================
 --- a/src/Makefile
 +++ b/src/Makefile
-@@ -56,7 +56,7 @@
-   TRANSPORT_MODS += blddir/lib/curl_transport/curltransaction
-   TRANSPORT_MODS += blddir/lib/curl_transport/curlmulti
-   TRANSPORT_MODS += blddir/lib/curl_transport/lock_pthread
+@@ -57,7 +57,7 @@
+   TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/xmlrpc_curl_transport
+   TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/curltransaction
+   TRANSPORT_MODS += $(BLDDIR)/lib/curl_transport/curlmulti
 -  TRANSPORT_LIBDEP += $(shell curl-config --libs)
 +  TRANSPORT_LIBDEP += $(shell $CURL_CONFIG --libs)
+   TRANSPORT_INCLUDES += -Isrcdir/lib/curl_transport
  endif
  ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
-   TRANSPORT_MODS += blddir/lib/libwww_transport/xmlrpc_libwww_transport
 Index: b/config.mk.in
 ===================================================================
 --- a/config.mk.in
@@ -68,29 +68,3 @@ Index: b/lib/curl_transport/Makefile
  # We expect that curl-config --cflags just gives us -I options, because
  # we need just the -I options for 'make dep'.  Plus, it's scary to think
  # of what any other compiler flag would do to our compile.
-Index: b/src/cpp/test/Makefile
-===================================================================
---- a/src/cpp/test/Makefile
-+++ b/src/cpp/test/Makefile
-@@ -20,7 +20,7 @@
- LIBS := $(shell $(XMLRPC_C_CONFIG) client --ldadd)
- ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
--  LIBS += $(shell curl-config --libs)
-+  LIBS += $(shell $(CURL_CONFIG) --libs)
- endif
- ifeq ($(MUST_BUILD_LIBWWW_CLIENT),yes)
-   LIBS += $(shell libwww-config --libs)
-Index: b/tools/common.mk
-===================================================================
---- a/tools/common.mk
-+++ b/tools/common.mk
-@@ -15,7 +15,7 @@
-   CLIENT_LDLIBS += $(shell libwww-config --libs)
- endif
- ifeq ($(MUST_BUILD_CURL_CLIENT),yes)
--  CLIENT_LDLIBS += $(shell curl-config --libs)
-+  CLIENT_LDLIBS += $(shell $(CURL_CONFIG) --libs)
- endif
- ifeq ($(MUST_BUILD_WININET_CLIENT),yes)
-   CLIENT_LDLIBS += $(shell wininet-config --libs)
diff --git a/package/libxmlrpc/0006-fix-ar-ranlib-handling.patch b/package/libxmlrpc/0006-fix-ar-ranlib-handling.patch
new file mode 100644 (file)
index 0000000..1e58d24
--- /dev/null
@@ -0,0 +1,28 @@
+Fix detection of AR and RANLIB
+
+The configure.in script assumes that ranlib and ar are necessarily
+prefixed by ${ac_tool_prefix}, which is the value of --host. However,
+it's not necessarily the case.
+
+So instead, use AC_CHECK_TOOL to check for AR, and AC_PROG_RANLIB to
+check for RANLIB.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/configure.in
+===================================================================
+--- a/configure.in
++++ b/configure.in
+@@ -621,10 +621,8 @@
+ BUILDDIR=$(pwd)
+ AC_SUBST(BUILDDIR)
+-AR=${ac_tool_prefix}ar
+-AC_SUBST([AR])
+-RANLIB=${ac_tool_prefix}ranlib
+-AC_SUBST([RANLIB])
++AC_CHECK_TOOL([AR], [ar])
++AC_PROG_RANLIB
+ dnl =======================================================================
+ dnl Output our results.
diff --git a/package/libxmlrpc/0006-narrowing.patch b/package/libxmlrpc/0006-narrowing.patch
deleted file mode 100644 (file)
index 43a5ca5..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Fix build with gcc6
-
-Downloaded from
-https://build.opensuse.org/package/view_file/devel:libraries:c_c++/xmlrpc-c/narrowing.patch
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
-
-Index: xmlrpc-c-1.33.18/src/cpp/base64.cpp
-===================================================================
---- xmlrpc-c-1.33.18.orig/src/cpp/base64.cpp
-+++ xmlrpc-c-1.33.18/src/cpp/base64.cpp
-@@ -14,7 +14,7 @@ using namespace xmlrpc_c;
- namespace {
--char const table_a2b_base64[] = {
-+signed char const table_a2b_base64[] = {
-     -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
-     -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1,
-     -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,62, -1,-1,-1,63,
index d37fcfc95c8c78d6059529b5bd826cf8760c6589..8ec1e14ea7341df524a3e602f888e3f79a31023f 100644 (file)
@@ -1,2 +1,2 @@
 # Locally computed
-sha256 8ae6ed4ec57d50ed132b1150fc5258346eef3e291501a564f14fa97586902f98 xmlrpc-c-1.25.30.tgz
+sha256 2e56cdcdd5c5fa564bcdc7a56bca108a88f5b78b34ccc85558366efabdc8b8e8 xmlrpc-c-1.39.11.tgz
index 03a709597bc7bb08a98439880af6a21982b1155d..53a587780c77f7cec5eec6d0126d33f05b73e146 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBXMLRPC_VERSION = 1.25.30
+LIBXMLRPC_VERSION = 1.39.11
 LIBXMLRPC_SOURCE = xmlrpc-c-$(LIBXMLRPC_VERSION).tgz
 LIBXMLRPC_SITE = http://downloads.sourceforge.net/project/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(LIBXMLRPC_VERSION)
 LIBXMLRPC_LICENSE = BSD-3c (xml-rpc main code and abyss web server), BSD like (lib/expat), Python 1.5.2 license (parts of xmlrpc_base64.c)
index 5d3fd61fa4ed3a8195dd3321f8f476b87cc864dd..3d9835e8cc39641222df3bda20ef2e9941869779 100644 (file)
@@ -4,7 +4,7 @@ config BR2_PACKAGE_LINUX_PAM
        select BR2_PACKAGE_FLEX
        depends on (BR2_ENABLE_LOCALE && BR2_USE_WCHAR)
        depends on !BR2_STATIC_LIBS
-       depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam
+       depends on !BR2_TOOLCHAIN_USES_MUSL
        depends on BR2_USE_MMU # fork()
        help
          A Security Framework that Provides Authentication for Applications
index a269eb6d38b3acd23afdd5fc65e8b69bc8ee01e6..edc936030113567b93fdf8ece7740d6170f7b41f 100644 (file)
@@ -1,2 +1,2 @@
 # From ftp://sources.redhat.com/pub/lvm2/releases/sha512.sum
-sha512 8bebe9b474f791b5edf5366b0bd24861fbbaf8a83afa2a9e2a8e3917e05e4ecbf6877f018be03ffb4e9b4c8832208264165b85182bf79a07661adf35128b4a21  LVM2.2.02.166.tgz
+sha512 492b2f5ca462dbbb8e182befdb6ca60c7a31b16a39f59a38cabdcd0996d9e2c49ae56a2289def80b89da738176ac55cf13cbefd401feb7a1e3a6ef9a4c267f2b  LVM2.2.02.167.tgz
index d76cdd2caf8244f5fec2a7f7379af066ed6682a5..dd574218f7a6c530915ac2bcf40a136bdd5208b7 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LVM2_VERSION = 2.02.166
+LVM2_VERSION = 2.02.167
 LVM2_SOURCE = LVM2.$(LVM2_VERSION).tgz
 LVM2_SITE = ftp://sources.redhat.com/pub/lvm2/releases
 LVM2_INSTALL_STAGING = YES
diff --git a/package/makedevs/Config.in b/package/makedevs/Config.in
deleted file mode 100644 (file)
index 923150d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-config BR2_PACKAGE_MAKEDEVS
-       bool "makedevs"
-       help
-         The makedevs utility allows to create a set of device files
-         according to a configuration file.
index 95933c4f4e540cb7a44e59cca0ab7159dcb5eda8..9bd684f0363bd9a4d53d685e9e5a369ffe0c2ba4 100644 (file)
@@ -15,15 +15,6 @@ HOST_MAKEDEVS_CFLAGS += -DEXTENDED_ATTRIBUTES
 HOST_MAKEDEVS_LDFLAGS += -lcap
 endif
 
-define MAKEDEVS_BUILD_CMDS
-       $(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_LDFLAGS) \
-               package/makedevs/makedevs.c -o $(@D)/makedevs
-endef
-
-define MAKEDEVS_INSTALL_TARGET_CMDS
-       $(INSTALL) -D -m 755 $(@D)/makedevs $(TARGET_DIR)/usr/sbin/makedevs
-endef
-
 define HOST_MAKEDEVS_BUILD_CMDS
        $(HOSTCC) $(HOST_MAKEDEVS_CFLAGS) package/makedevs/makedevs.c \
                -o $(@D)/makedevs $(HOST_MAKEDEVS_LDFLAGS)
@@ -33,5 +24,4 @@ define HOST_MAKEDEVS_INSTALL_CMDS
        $(INSTALL) -D -m 755 $(@D)/makedevs $(HOST_DIR)/usr/bin/makedevs
 endef
 
-$(eval $(generic-package))
 $(eval $(host-generic-package))
index b3b80ebc8e5a4017b1bc3077ff1f0d3e20a21a1e..3cb0d2739059246eb80c5a4636a8c8001822db76 100644 (file)
@@ -12,7 +12,7 @@ endif
 
 # Not possible to directly refer to mesa3d variables, because of
 # first/second expansion trickery...
-MESA3D_HEADERS_VERSION = 13.0.0
+MESA3D_HEADERS_VERSION = 13.0.2
 MESA3D_HEADERS_SOURCE = mesa-$(MESA3D_HEADERS_VERSION).tar.xz
 MESA3D_HEADERS_SITE = ftp://ftp.freedesktop.org/pub/mesa/$(MESA3D_HEADERS_VERSION)
 MESA3D_HEADERS_LICENSE = MIT, SGI, Khronos
index 7dbe1ac8fab7c44c1ff1971219a5ee8ff26c4188..dfab5e2a706d32e6637f6fd1d669e6b2acf9357c 100644 (file)
@@ -1,2 +1,2 @@
-# From https://lists.freedesktop.org/archives/mesa-announce/2016-November/000264.html
-sha256 94edb4ebff82066a68be79d9c2627f15995e1fe10f67ab3fc63deb842027d727  mesa-13.0.0.tar.xz
+# From https://lists.freedesktop.org/archives/mesa-announce/2016-November/000274.html
+sha256 a6ed622645f4ed61da418bf65adde5bcc4bb79023c36ba7d6b45b389da4416d5  mesa-13.0.2.tar.xz
index 96ebb95b30d95a68418bf6222370cfd06992d70a..ed50371feb0191f553c043a024e6d74ed2c784a1 100644 (file)
@@ -5,7 +5,7 @@
 ################################################################################
 
 # When updating the version, please also update mesa3d-headers
-MESA3D_VERSION = 13.0.0
+MESA3D_VERSION = 13.0.2
 MESA3D_SOURCE = mesa-$(MESA3D_VERSION).tar.xz
 MESA3D_SITE = ftp://ftp.freedesktop.org/pub/mesa/$(MESA3D_VERSION)
 MESA3D_LICENSE = MIT, SGI, Khronos
index 69d9a3e42f56b88e404aaad3892ee8ed9de233da..c6e1efa39df668f43474571708a11119df0e2d46 100644 (file)
@@ -9,6 +9,9 @@ config BR2_PACKAGE_MOARVM
        select BR2_PACKAGE_LIBUV
        select BR2_PACKAGE_LIBTOMMATH
        select BR2_PACKAGE_LIBATOMIC_OPS
+       # dyncall does not work on MIPS; libffi needs to be used.
+       # See: https://github.com/MoarVM/MoarVM/issues/222
+       select BR2_PACKAGE_LIBFFI if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
        help
          Short for "Metamodel On A Runtime", MoarVM is a virtual machine
          built especially for Rakudo Perl 6 and the NQP Compiler Toolchain.
index 514a1bfe803770cc4d0d437e81d201271aa40521..2e49811d149d554238e5b27c7209cca52a6628d6 100644 (file)
@@ -1,2 +1,2 @@
 # Locally computed
-sha256  d8cb9fe74267dd933c3e405b098dea99cb9c0561aedb06e8efd8ddaef43396d0  MoarVM-2016.10.tar.gz
+sha256 5eaa8ff47b1c25e023a900947f88222fffe0884ce74652659ecd2265ae2d1387  MoarVM-2016.11.tar.gz
index d2421fd78aa5aff77571b5be45a7cb92ae836e16..d09117471fc3c8c6ca03ca2d3ea5c030b81856bc 100644 (file)
@@ -4,13 +4,13 @@
 #
 ################################################################################
 
-MOARVM_VERSION = 2016.10
+MOARVM_VERSION = 2016.11
 MOARVM_SITE = http://moarvm.com/releases
 MOARVM_SOURCE = MoarVM-$(MOARVM_VERSION).tar.gz
 MOARVM_LICENSE = Artistic-2.0
 MOARVM_LICENSE_FILES = Artistic2.txt
 MOARVM_INSTALL_STAGING = YES
-MOARVM_DEPENDENCIES = host-luajit libuv libtommath libatomic_ops
+MOARVM_DEPENDENCIES = host-luajit host-pkgconf libuv libtommath libatomic_ops
 
 MOARVM_CONF_OPTS = \
        --build=$(GNU_HOST_NAME) \
@@ -19,11 +19,17 @@ MOARVM_CONF_OPTS = \
        --cc="$(TARGET_CC)" \
        --ld="$(TARGET_CC)" \
        --prefix="/usr" \
+       --pkgconfig=$(PKG_CONFIG_HOST_BINARY) \
        --lua=$(HOST_DIR)/usr/bin/luajit \
        --has-libuv \
        --has-libtommath \
        --has-libatomic
 
+ifeq ($(BR2_PACKAGE_LIBFFI),y)
+MOARVM_CONF_OPTS += --has-libffi
+MOARVM_DEPENDENCIES += libffi
+endif
+
 ifeq ($(BR2_ENDIAN),"BIG")
 MOARVM_CONF_OPTS += --big-endian
 endif
index e52bb25f0acd3d7fbc04e696ec59051b54f69f38..00617e37192139ba926e7129910fe99bcaf25bf7 100644 (file)
@@ -7,8 +7,7 @@ config BR2_PACKAGE_NETSNIFF_NG
        select BR2_PACKAGE_LIBURCU
        select BR2_PACKAGE_LIBNET
        # Build with uClibc fails due to missing ceill()
-       # Build with musl fails due to various header issues
-       depends on BR2_TOOLCHAIN_USES_GLIBC
+       depends on !BR2_TOOLCHAIN_USES_UCLIBC
        depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
@@ -17,7 +16,7 @@ config BR2_PACKAGE_NETSNIFF_NG
          networking toolkit. If you will, the Swiss army knife for
          network packets.
 
-comment "netsniff-ng needs a glibc toolchain w/ threads, headers >= 3.0"
+comment "netsniff-ng needs a glibc or musl toolchain w/ threads, headers >= 3.0"
        depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
-       depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC \
+       depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_UCLIBC \
                || !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
index 52124977ed433335b71d9d8d7c470f9f9978ae0e..67b3331a92d901bc07e2f9dfdd353cbb1ad480a0 100644 (file)
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256 902661bcdbc129c6a6c1f69a72f921fffc9e765d005568dc153f09ca0097c180 netsniff-ng-v0.6.1.tar.gz
+sha256 62e8aa970a4f46cdaddf54daf8ea26e7ae9f9f358efaf0651799c8c4e937c286 netsniff-ng-v0.6.2.tar.gz
index ad97a887e44eaf196acc7f21b43cbec3ca3c2980..4ec7e743f50b6fe622c05140c3689e58401771a9 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-NETSNIFF_NG_VERSION = v0.6.1
+NETSNIFF_NG_VERSION = v0.6.2
 NETSNIFF_NG_SITE = $(call github,netsniff-ng,netsniff-ng,$(NETSNIFF_NG_VERSION))
 NETSNIFF_NG_LICENSE = GPLv2
 NETSNIFF_NG_LICENSE_FILES = README COPYING
index 976be50e4d4503fadd8102ffcf4a4f4930c49cef..a47ba37a4a1ba32ace18fefd19dcf7ac7f874dbb 100644 (file)
@@ -43,7 +43,7 @@ config BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
 
 config BR2_PACKAGE_NODEJS_VERSION_STRING
        string
-       default "6.7.0"         if BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
+       default "6.9.1"         if BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
        default "0.10.47"
 
 config BR2_PACKAGE_NODEJS_NPM
index f334a47e989f6705a5df4837b92ad9cdf6308026..5df79afee4e9f0cae18917c3f7b33a76537ea703 100644 (file)
@@ -1,5 +1,5 @@
 # From upstream URL: http://nodejs.org/dist/v0.10.47/SHASUMS256.txt
 sha256  335bdf4db702885a8acaf2c9f241c70cabd62497361da81aca65c8e8a8e7ff09  node-v0.10.47.tar.xz
 
-# From upstream URL: http://nodejs.org/dist/v6.7.0/SHASUMS256.txt
-sha256  ceb028324aab1ee8c7ea6a62026f036f3ea71f5ef5212593d0f833f999dd3be5  node-v6.7.0.tar.xz
+# From upstream URL: http://nodejs.org/dist/v6.9.1/SHASUMS256.txt
+sha256  0bdd8d1305777cc8cd206129ea494d6c6ce56001868dd80147aff531d6df0729  node-v6.9.1.tar.xz
diff --git a/package/norm/0003-remove-kernel-headers-include-musl-fix.patch b/package/norm/0003-remove-kernel-headers-include-musl-fix.patch
deleted file mode 100644 (file)
index 7581c10..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-Remove kernel header includes causing issues with musl
-
-Include the kernel headers from netfilter causes a conflict with the
-<netinet/in.h> way of defining the IPPROTO_* constants, resulting in
-the following build failure:
-
-In file included from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/netdb.h:9:0,
-                 from /home/peko/autobuild/instance-0/output/build/norm-1.5r6/protolib/include/protoAddress.h:13,
-                 from /home/peko/autobuild/instance-0/output/build/norm-1.5r6/protolib/include/protoDetour.h:5,
-                 from ../protolib/src/linux/linuxDetour.cpp:3:
-/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected identifier before numeric constant
-   IPPROTO_IP = 0,  /* Dummy protocol for TCP  */
-   ^
-/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected '}' before numeric constant
-/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected unqualified-id before numeric constant
-In file included from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/netfilter.h:7:0,
-                 from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/netfilter_ipv4.h:8,
-                 from ../protolib/src/linux/linuxDetour.cpp:10:
-/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:79:1: error: expected declaration before '}' token
- };
- ^
-
-Since from musl's developers perspective including kernel headers is
-seen as being unsafe, we simply duplicate the necessary netfilter
-definitions (there are just a few) instead of including some kernel
-headers.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
-Index: b/protolib/src/linux/linuxDetour.cpp
-===================================================================
---- a/protolib/src/linux/linuxDetour.cpp
-+++ b/protolib/src/linux/linuxDetour.cpp
-@@ -7,15 +7,18 @@
- #include <stdlib.h>  // for atoi(), getenv()
- #include <stdio.h>
- #include <unistd.h>  // for close()
--#include <linux/netfilter_ipv4.h>  // for NF_IP_LOCAL_OUT, etc
--#include <linux/netfilter_ipv6.h>  // for NF_IP6_LOCAL_OUT, etc
--#include <linux/netfilter.h>  // for NF_ACCEPT, etc
- #include <libnetfilter_queue/libnetfilter_queue.h>
- #include <fcntl.h>  // for fcntl(), etc
- #include <linux/if_ether.h>  // for ETH_P_IP
- #include <net/if_arp.h>   // for ARPHRD_ETHER
-+/* From netfilter kernel headers */
-+#define NF_IP_LOCAL_OUT               3
-+
-+#define NF_DROP               0
-+#define NF_ACCEPT             1
-+
- /** NOTES: 
-  *
-  * 1) This newer implementation of LinuxDetour uses netfilter_queue
index 8fd4b2c6428ae2d64febd6aad40048878c21285d..e5a262d2090b8d9ffcc29701099631f5becdb179 100644 (file)
@@ -1,2 +1,2 @@
 #  Locally computed hash
-sha256 779e8beccf8c66d51e495a4cc0e6eccf72c295499a1ecdc0740aa4459de786a0 odroid-scripts-a252de04562dcf8d8a4918a544b45a9e3d46d2fb.tar.gz
+sha256 9d61472ee6aed2d1a7b5afdcb91b823003c8524a242572f24f89d4e57323daf3  odroid-scripts-cfd289b1d69136b8bfd725d90cd648da4654f2bd.tar.gz
index 858ec37fe88af1c3f77f43ff64d1a0232eff5573..fc1940dcefa0bcfbeca440fa7d90fde5566072fc 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-ODROID_SCRIPTS_VERSION = a252de04562dcf8d8a4918a544b45a9e3d46d2fb
+ODROID_SCRIPTS_VERSION = cfd289b1d69136b8bfd725d90cd648da4654f2bd
 ODROID_SCRIPTS_SITE = $(call github,mdrjr,c2_bootini,$(ODROID_SCRIPTS_VERSION))
 ODROID_SCRIPTS_LICENSE = unclear
 
@@ -29,8 +29,8 @@ define ODROID_SCRIPTS_INSTALL_INIT_SYSTEMD
 endef
 
 define ODROID_SCRIPTS_INSTALL_INIT_SYSV
-       $(INSTALL) -D -m 0755 package/odroid-scripts/S50odroidc2_fb \
-               $(TARGET_DIR)/etc/init.d/S50odroidc2_fb
+       $(INSTALL) -D -m 0755 package/odroid-scripts/S02odroidc2_fb \
+               $(TARGET_DIR)/etc/init.d/S02odroidc2_fb
 endef
 
 $(eval $(generic-package))
index ce005d3d51c0a2996156aef4a4414665a2062170..0c5cb09e94b29982a8fc22053b4cb417128e7b18 100644 (file)
@@ -1,2 +1,2 @@
-# Locally calculated after checking pgp signature
-sha256 13b963414e2430215981868c77b9795d93653ee535a2d73576f7bb2c28200abc        openvpn-2.3.12.tar.xz
+# Locally calculated
+sha256 9cde0c8000fd32d5275adb55f8bb1d8ba429ff3de35f60a36e81f3859b7537e0  openvpn-2.3.13.tar.xz
index 0e59fdc98d3502f969c0b616e092f632179c7198..cd0a2d13e66a245c9f38f89caff1d720dd9c4fcd 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-OPENVPN_VERSION = 2.3.12
+OPENVPN_VERSION = 2.3.13
 OPENVPN_SOURCE = openvpn-$(OPENVPN_VERSION).tar.xz
 OPENVPN_SITE = http://swupdate.openvpn.net/community/releases
 OPENVPN_DEPENDENCIES = host-pkgconf openssl
index 0da413e6cacb037547f6fb73737cf00f0ca6f166..653eb466bff4764d384ac6bb41cd58bce02d074c 100644 (file)
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256 14af06a2da688d577d64ff8dac065bb8903bbffbe01d30c62df7af9bf4ce72fe        patchelf-0.8.tar.gz
+sha256 a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83        patchelf-0.9.tar.bz2
index 043224dab2d0a9405cd8b109430b4d7f1a739a81..cf2e43a730e148b770b54e51ce41a53b34d7028d 100644 (file)
@@ -4,8 +4,9 @@
 #
 ################################################################################
 
-PATCHELF_VERSION = 0.8
-PATCHELF_SITE = http://releases.nixos.org/patchelf/patchelf-0.8
+PATCHELF_VERSION = 0.9
+PATCHELF_SITE = http://releases.nixos.org/patchelf/patchelf-$(PATCHELF_VERSION)
+PATCHELF_SOURCE = patchelf-$(PATCHELF_VERSION).tar.bz2
 PATCHELF_LICENSE = GPLv3+
 PATCHELF_LICENSE_FILES = COPYING
 
index 253bfa7b7c45dad2918892a632d03168330a6410..0aa2021f5ab0615e7bd48db87c60616843ec7c0e 100644 (file)
@@ -2,7 +2,6 @@ config BR2_PACKAGE_PHP_AMQP
        bool "php-amqp"
        depends on BR2_PACKAGE_PHP
        depends on BR2_TOOLCHAIN_HAS_THREADS # rabbitmq-c
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX # rabbitmq-c
        select BR2_PACKAGE_RABBITMQ_C
        help
          Communicate with any AMQP compliant server.
@@ -11,4 +10,3 @@ config BR2_PACKAGE_PHP_AMQP
 
 comment "php-amqp needs a toolchain w/ threads"
        depends on !BR2_TOOLCHAIN_HAS_THREADS
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
index dde6a64dc30d9542fc2b6849094ca2f959a97250..f1cd34654e6067e7acd45ed820e82918639cb02d 100644 (file)
@@ -1,2 +1,2 @@
 # From http://php.net/downloads.php
-sha256 f3d6c49e1c242e5995dec15e503fde996c327eb86cd7ec45c690e93c971b83ff  php-7.0.12.tar.xz
+sha256 357ba7f93975d7d836abed0852dc3ed96a988af539e87750613294cbee82f1bf  php-7.0.13.tar.xz
index f85cb371c22e3c0540b58165da9492f2c67f962b..c8abe660ad0dc6bad57754d99084c54068abb1a0 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-PHP_VERSION = 7.0.12
+PHP_VERSION = 7.0.13
 PHP_SITE = http://www.php.net/distributions
 PHP_SOURCE = php-$(PHP_VERSION).tar.xz
 PHP_INSTALL_STAGING = YES
index ed195f6188af181fae8ee6d586cec8d692353a87..1dd816cb9f53757e26b6cde11be0d45dc4764325 100644 (file)
@@ -1,3 +1,3 @@
 # md5 from https://pypi.python.org/pypi/pillow/json, sha256 locally computed
-md5    1ea45914e8cc375fb385da2555b37267  Pillow-3.4.0.tar.gz
-sha256 51027d511f4ab991f628f6f7b9b0fbf18f584ee8a67160410afe3b19685b9d50  Pillow-3.4.0.tar.gz
+md5    09ebb92ec5cbba13ff1acf139caf6b66  Pillow-3.4.2.tar.gz
+sha256 0ee9975c05602e755ff5000232e0335ba30d507f6261922a658ee11b1cec36d1  Pillow-3.4.2.tar.gz
index f06ce8d1970c4d653cfc7e1ab30d0a69829c32c7..59cde75b751774a187b0d65bd59290130689aa97 100644 (file)
@@ -4,9 +4,9 @@
 #
 ################################################################################
 
-PYTHON_PILLOW_VERSION = 3.4.0
+PYTHON_PILLOW_VERSION = 3.4.2
 PYTHON_PILLOW_SOURCE = Pillow-$(PYTHON_PILLOW_VERSION).tar.gz
-PYTHON_PILLOW_SITE = https://pypi.python.org/packages/51/1d/6456623ea7e155249c0e82cf92715c42ba1902759d1eeff6ac5c3107e747
+PYTHON_PILLOW_SITE = https://pypi.python.org/packages/46/4f/94f6165052774839b4a4af0c72071aa528d5dc8cb8bc6bb43e24a55c10cc
 PYTHON_PILLOW_LICENSE = PIL Software License
 PYTHON_PILLOW_LICENSE_FILES = LICENSE
 PYTHON_PILLOW_SETUP_TYPE = setuptools
index 8bae5f40eca92e742fa914408455da806d255136..f4a75fc269ddf357417c16b2d01f8280c061548e 100644 (file)
@@ -2,7 +2,8 @@ config BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
        bool
        # Only tested on these architectures
        default y if BR2_aarch64 || BR2_i386 || BR2_mips || BR2_mipsel \
-               || BR2_x86_64 || BR2_arm
+               || BR2_x86_64 || BR2_arm \
+               || BR2_powerpc64 || BR2_powerpc64le
 
 comment "QEMU requires a toolchain with wchar, threads"
        depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
@@ -111,4 +112,9 @@ comment "FDT support needs a toolchain w/ dynamic library"
 
 endif # BR2_PACKAGE_QEMU_HAS_EMULS
 
+config BR2_PACKAGE_QEMU_TOOLS
+       bool "Enable tools"
+       help
+         Say 'y' here to include tools packaged with QEMU (e.g. qemu-img).
+
 endif # BR2_PACKAGE_QEMU
index 45fc0fad0af1f9591c46d71f8cb074429c27adf8..bc707cf7e6e94337977ced7c68b65b660f96b32a 100644 (file)
@@ -204,6 +204,12 @@ else
 QEMU_OPTS += --disable-fdt
 endif
 
+ifeq ($(BR2_PACKAGE_QEMU_TOOLS),y)
+QEMU_OPTS += --enable-tools
+else
+QEMU_OPTS += --disable-tools
+endif
+
 # Override CPP, as it expects to be able to call it like it'd
 # call the compiler.
 define QEMU_CONFIGURE_CMDS
@@ -242,7 +248,6 @@ define QEMU_CONFIGURE_CMDS
                        --disable-strip                 \
                        --disable-seccomp               \
                        --disable-sparse                \
-                       --disable-tools                 \
                        $(QEMU_OPTS)                    \
        )
 endef
index d25f663662ee26eeff32b545b9258536649d0404..e937e234b596d25c785bd0c65dda9c6723fd7c08 100644 (file)
@@ -1,6 +1,7 @@
 QT5_VERSION_MAJOR = 5.6
 QT5_VERSION = $(QT5_VERSION_MAJOR).2
 QT5_SITE = http://download.qt.io/official_releases/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/submodules
+QT5_SNAPSHOTS_SITE = http://download.qt.io/snapshots/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)/latest_src/submodules
 include $(sort $(wildcard package/qt5/*/*.mk))
 
 define QT5_LA_PRL_FILES_FIXUP
index 96b8bdd6909a5c39101f1c1429126e0a5ff72cc3..309f776b3ff3c8ce5a9039248b64d73441dd3f49 100644 (file)
@@ -1,2 +1,2 @@
-# locally computed
-sha256 bdd659573e7e75cd4ad57b7160a7353d98d21a6fef06e4fb9e114a5b1f1e9dab qt5webkit-b35917bcb44d7f200af0f4ac68a126fa0aa8d93d.tar.gz
+# Hash from: http://download.qt.io/snapshots/qt/5.6/5.6.2/latest_src/submodules/qtwebkit-opensource-src-5.6.2.tar.xz.mirrorlist
+sha256 528a6b8b1c5095367b26e8ce4f3a46bb739e2e9913ff4dfc6ef58a04fcd73966 qtwebkit-opensource-src-5.6.2.tar.xz
index 378cdf78573e21ef7d6542c10565286edd801f4b..980d2aff01674b8e2d78febb3447fdbd0ff77447 100644 (file)
@@ -4,10 +4,9 @@
 #
 ################################################################################
 
-QT5WEBKIT_VERSION = b35917bcb44d7f200af0f4ac68a126fa0aa8d93d
-# Using GitHub since it supports downloading tarballs from random commits.
-# The http://code.qt.io/cgit/qt/qtwebkit.git/ repo doesn't allow to do so.
-QT5WEBKIT_SITE = $(call github,qtproject,qtwebkit,$(QT5WEBKIT_VERSION))
+QT5WEBKIT_VERSION = $(QT5_VERSION)
+QT5WEBKIT_SITE = $(QT5_SNAPSHOTS_SITE)
+QT5WEBKIT_SOURCE = qtwebkit-opensource-src-$(QT5WEBKIT_VERSION).tar.xz
 QT5WEBKIT_DEPENDENCIES = \
        host-bison host-flex host-gperf host-python host-ruby \
        qt5base sqlite
@@ -43,14 +42,7 @@ define QT5WEBKIT_PYTHON2_SYMLINK
 endef
 QT5WEBKIT_PRE_CONFIGURE_HOOKS += QT5WEBKIT_PYTHON2_SYMLINK
 
-# Since we get the source from git, generated header files are not included.
-# qmake detects that header file generation (using the syncqt tool) must be
-# done based on the existence of a .git directory (cfr. the git_build config
-# option which is set in qt_build_paths.prf).
-# So, to make sure that qmake detects that header files must be generated,
-# create an empty .git directory.
 define QT5WEBKIT_CONFIGURE_CMDS
-       mkdir -p $(@D)/.git
        (cd $(@D); $(TARGET_MAKE_ENV) $(QT5WEBKIT_ENV) $(HOST_DIR)/usr/bin/qmake)
 endef
 
index 0d08233a7080cedca5413bd21760139a7a590a8f..b330c904744fb653d33d7a20f251dc7520a98261 100644 (file)
@@ -1,9 +1,6 @@
 config BR2_PACKAGE_RABBITMQ_C
        bool "rabbitmq-c"
        depends on BR2_TOOLCHAIN_HAS_THREADS
-       # too old uClibc, not providing posix_spawn functions
-       # http://autobuild.buildroot.net/results/a6c3e79c61c5a535970d03bf37b068349f766a7f/
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
        help
          This is a C-language AMQP client library for use with v2.0+
          of the RabbitMQ broker.
@@ -12,4 +9,3 @@ config BR2_PACKAGE_RABBITMQ_C
 
 comment "rabbitmq-c needs a toolchain w/ threads"
        depends on !BR2_TOOLCHAIN_HAS_THREADS
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
diff --git a/package/readline/0001-patchlevel-1.patch b/package/readline/0001-patchlevel-1.patch
deleted file mode 100644 (file)
index 8593073..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/readline/readline-6.3-patches/readline63-001
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-001
-
-Bug-Reported-by:       Daan van Rossum <daan@flash.uchicago.edu>
-Bug-Reference-ID:      <20140307072523.GA14250@flash.uchicago.edu>
-Bug-Reference-URL:     
-
-Bug-Description:
-
-The `.' command in vi mode cannot undo multi-key commands beginning with
-`c', `d', and `y' (command plus motion specifier).
-
-Patch (apply with `patch -p0'):
-
-*** a/readline-6.3/readline.c  2013-10-28 14:58:06.000000000 -0400
---- b/readline.c       2014-03-07 15:20:33.000000000 -0500
-***************
-*** 965,969 ****
-    if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
-        key != ANYOTHERKEY &&
-!       rl_key_sequence_length == 1 && /* XXX */
-        _rl_vi_textmod_command (key))
-      _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
---- 965,969 ----
-    if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
-        key != ANYOTHERKEY &&
-!       _rl_dispatching_keymap == vi_movement_keymap &&
-        _rl_vi_textmod_command (key))
-      _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
-*** a/readline-6.3/patchlevel  2013-11-15 08:11:11.000000000 -0500
---- b/patchlevel       2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 5
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 1
diff --git a/package/readline/0002-patchlevel-2.patch b/package/readline/0002-patchlevel-2.patch
deleted file mode 100644 (file)
index a8a94e0..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/readline/readline-6.3-patches/readline63-002
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-002
-
-Bug-Reported-by:       Anatol Pomozov <anatol.pomozov@gmail.com>
-Bug-Reference-ID:      <CAOMFOmXy3mT2So5GQ5F-smCVArQuAeBwZ2QKzgCtMeXJoDeYOQ@mail.gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html
-
-Bug-Description:
-
-When in callback mode, some readline commands can cause readline to seg
-fault by passing invalid contexts to callback functions.
-
-Patch (apply with `patch -p0'):
-
-*** a/readline-6.3/readline.c  2013-10-28 14:58:06.000000000 -0400
---- b/readline.c       2014-03-10 14:15:02.000000000 -0400
-***************
-*** 745,749 ****
-  
-    RL_CHECK_SIGNALS ();
-!   if (r == 0)                        /* success! */
-      {
-        _rl_keyseq_chain_dispose ();
---- 745,750 ----
-  
-    RL_CHECK_SIGNALS ();
-!   /* We only treat values < 0 specially to simulate recursion. */
-!   if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0))        /* success! or failure! */
-      {
-        _rl_keyseq_chain_dispose ();
-*** a/readline-6.3/patchlevel  2013-11-15 08:11:11.000000000 -0500
---- b/patchlevel       2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 1
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 2
diff --git a/package/readline/0003-patchlevel-3.patch b/package/readline/0003-patchlevel-3.patch
deleted file mode 100644 (file)
index 195ed55..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/readline/readline-6.3-patches/readline63-003
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-003
-
-Bug-Reported-by:
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-There are debugging functions in the readline release that are theoretically
-exploitable as security problems.  They are not public functions, but have
-global linkage.
-
-Patch (apply with `patch -p0'):
-
-*** a/readline-6.3/util.c      2013-09-02 13:36:12.000000000 -0400
---- b/util.c   2014-03-20 10:25:53.000000000 -0400
-***************
-*** 477,480 ****
---- 479,483 ----
-  }
-  
-+ #if defined (DEBUG)
-  #if defined (USE_VARARGS)
-  static FILE *_rl_tracefp;
-***************
-*** 539,542 ****
---- 542,546 ----
-  }
-  #endif
-+ #endif /* DEBUG */
-  
-  
-*** a/readline-6.3/patchlevel  2013-11-15 08:11:11.000000000 -0500
---- b/patchlevel       2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 2
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 3
diff --git a/package/readline/0004-patchlevel-4.patch b/package/readline/0004-patchlevel-4.patch
deleted file mode 100644 (file)
index 86ab3d5..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/readline/readline-6.3-patches/readline63-004
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-004
-
-Bug-Reported-by:       Egmont Koblinger <egmont@gmail.com>
-Bug-Reference-ID:      <CAGWcZk+bU5Jo1M+tutGvL-250UBE9DXjpeJVofYJSFcqFEVfMg@mail.gmail.com>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html
-
-Bug-Description:
-
-The signal handling changes to bash and readline (to avoid running any code
-in a signal handler context) cause the cursor to be placed on the wrong
-line of a multi-line command after a ^C interrupts editing.
-
-Patch (apply with `patch -p0'):
-
-*** a/readline-6.3-patched/display.c   2013-12-27 13:10:56.000000000 -0500
---- b/display.c        2014-03-27 11:52:45.000000000 -0400
-***************
-*** 2678,2682 ****
-    if (_rl_echoing_p)
-      {
-!       _rl_move_vert (_rl_vis_botlin);
-        _rl_vis_botlin = 0;
-        fflush (rl_outstream);
---- 2678,2683 ----
-    if (_rl_echoing_p)
-      {
-!       if (_rl_vis_botlin > 0)        /* minor optimization plus bug fix */
-!      _rl_move_vert (_rl_vis_botlin);
-        _rl_vis_botlin = 0;
-        fflush (rl_outstream);
-*** a/readline-6.3/patchlevel  2013-11-15 08:11:11.000000000 -0500
---- b/patchlevel       2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 3
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 4
diff --git a/package/readline/0005-patchlevel-5.patch b/package/readline/0005-patchlevel-5.patch
deleted file mode 100644 (file)
index 6e73c7f..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/readline/readline-6.3-patches/readline63-005
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-005
-
-Bug-Reported-by:       Juergen Daubert <jue@jue.li>
-Bug-Reference-ID:      <20140303180430.GA7346@jue.netz>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00002.html
-
-Bug-Description:
-
-There are still applications using the deprecated Function/VFunction/etc.
-typedefs in rltypedefs.h.  This patch restores the typedefs, but attempts
-to mark them as deprecated using gcc/clang attributes.  Thanks to Max Horn
-for the suggestion.
-
-Patch (apply with `patch -p0'):
-
-*** a/readline-6.3-patched/rltypedefs.h        2011-03-26 14:53:31.000000000 -0400
---- b/rltypedefs.h     2014-04-10 11:30:45.000000000 -0400
-***************
-*** 27,30 ****
---- 27,49 ----
-  #endif
-  
-+ /* Old-style, attempt to mark as deprecated in some way people will notice. */
-+ 
-+ #if !defined (_FUNCTION_DEF)
-+ #  define _FUNCTION_DEF
-+ 
-+ #if defined(__GNUC__) || defined(__clang__)
-+ typedef int Function () __attribute__ ((deprecated));
-+ typedef void VFunction () __attribute__ ((deprecated));
-+ typedef char *CPFunction () __attribute__ ((deprecated));
-+ typedef char **CPPFunction () __attribute__ ((deprecated));
-+ #else
-+ typedef int Function ();
-+ typedef void VFunction ();
-+ typedef char *CPFunction ();
-+ typedef char **CPPFunction ();
-+ #endif
-+ 
-+ #endif /* _FUNCTION_DEF */
-+ 
-  /* New style. */
-  
-*** a/readline-6.3/patchlevel  2013-11-15 08:11:11.000000000 -0500
---- b/patchlevel       2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 4
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 5
diff --git a/package/readline/0006-patchlevel-6.patch b/package/readline/0006-patchlevel-6.patch
deleted file mode 100644 (file)
index b28b53c..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/readline/readline-6.3-patches/readline63-006
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-006
-
-Bug-Reported-by:       <Trond.Endrestol@ximalas.info>
-Bug-Reference-ID:      <alpine.BSF.2.03.1404192114310.1973@enterprise.ximalas.info>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html
-
-Bug-Description:
-
-Using reverse-i-search when horizontal scrolling is enabled does not redisplay
-the entire line containing the successful search results.
-
-Patch (apply with `patch -p0'):
-
-*** a/readline-6.3-patched/display.c   2014-04-08 18:19:36.000000000 -0400
---- b/display.c        2014-04-20 18:32:52.000000000 -0400
-***************
-*** 1638,1642 ****
-       the spot of first difference is before the end of the invisible chars,
-       lendiff needs to be adjusted. */
-!   if (current_line == 0 && !_rl_horizontal_scroll_mode &&
-        current_invis_chars != visible_wrap_offset)
-      {
---- 1638,1642 ----
-       the spot of first difference is before the end of the invisible chars,
-       lendiff needs to be adjusted. */
-!   if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */
-        current_invis_chars != visible_wrap_offset)
-      {
-***************
-*** 1826,1831 ****
-               _rl_last_c_pos += bytes_to_insert;
-  
-             if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
-!              goto clear_rest_of_line;
-           }
-       }
---- 1826,1836 ----
-               _rl_last_c_pos += bytes_to_insert;
-  
-+            /* XXX - we only want to do this if we are at the end of the line
-+               so we move there with _rl_move_cursor_relative */
-             if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
-!              {
-!                _rl_move_cursor_relative (ne-new, new);
-!                goto clear_rest_of_line;
-!              }
-           }
-       }
-*** a/readline-6.3/patchlevel  2013-11-15 08:11:11.000000000 -0500
---- b/patchlevel       2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 5
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 6
diff --git a/package/readline/0007-patchlevel-7.patch b/package/readline/0007-patchlevel-7.patch
deleted file mode 100644 (file)
index 4c6f59c..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/readline/readline-6.3-patches/readline63-007
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-007
-
-Bug-Reported-by:       John Lenton
-Bug-Reference-ID:
-Bug-Reference-URL:     https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476
-
-Bug-Description:
-
-Readline should allow SIGALRM and SIGVTALRM (if available) to `interrupt'
-rl_getc and cause the handler to run when not in a signal handling context.
-
-Patch (apply with `patch -p0'):
-
-*** a/readline-6.3-patched/input.c     2014-01-10 15:07:08.000000000 -0500
---- b/input.c  2014-05-30 16:20:56.000000000 -0400
-***************
-*** 535,540 ****
---- 538,551 ----
-        else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM)
-       return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
-+       /* keyboard-generated signals of interest */
-        else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT)
-          RL_CHECK_SIGNALS ();
-+       /* non-keyboard-generated signals of interest */
-+       else if (_rl_caught_signal == SIGALRM
-+ #if defined (SIGVTALRM)
-+              || _rl_caught_signal == SIGVTALRM
-+ #endif
-+            )
-+         RL_CHECK_SIGNALS ();
-  
-        if (rl_signal_event_hook)
-*** a/readline-6.3/patchlevel  2013-11-15 08:11:11.000000000 -0500
---- b/patchlevel       2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 6
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 7
diff --git a/package/readline/0008-patchlevel-8.patch b/package/readline/0008-patchlevel-8.patch
deleted file mode 100644 (file)
index 412ba35..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From http://ftp.gnu.org/pub/gnu/readline/readline-6.3-patches/readline63-008
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
-                          READLINE PATCH REPORT
-                          =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-008
-
-Bug-Reported-by:       Jared Yanovich <slovichon@gmail.com>
-Bug-Reference-ID:      <20140625225019.GJ17044@nightderanger.psc.edu>
-Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00070.html
-
-Bug-Description:
-
-When the readline `revert-all-at-newline' option is set, pressing newline
-when the current line is one retrieved from history results in a double free
-and a segmentation fault.
-
-Patch (apply with `patch -p0'):
-
-*** a/readline-6.3-patched/misc.c      2012-09-01 18:03:11.000000000 -0400
---- b/misc.c   2014-06-30 13:41:19.000000000 -0400
-***************
-*** 462,465 ****
---- 462,466 ----
-         /* Set up rl_line_buffer and other variables from history entry */
-         rl_replace_from_history (entry, 0);   /* entry->line is now current */
-+        entry->data = 0;                      /* entry->data is now current undo list */
-         /* Undo all changes to this history entry */
-         while (rl_undo_list)
-***************
-*** 469,473 ****
-         FREE (entry->line);
-         entry->line = savestring (rl_line_buffer);
--        entry->data = 0;
-       }
-        entry = previous_history ();
---- 470,473 ----
-*** a/readline-6.3/patchlevel  2013-11-15 08:11:11.000000000 -0500
---- b/patchlevel       2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
-  # Do not edit -- exists only for use by patch
-  
-! 7
---- 1,3 ----
-  # Do not edit -- exists only for use by patch
-  
-! 8
index d8833e91926d9f7dee0241b3cb874b3a7b5a07b5..43f8c64bb25a04d702bf7eddb733183fdc9310c5 100644 (file)
@@ -1,2 +1,2 @@
 # Locally calculated after checking pgp signature
-sha256 56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43        readline-6.3.tar.gz
+sha256 750d437185286f40a369e1e4f4764eda932b9459b5ec9a731628393dd3d32334  readline-7.0.tar.gz
index 763197085e15be5f3a950178db4b6d42b2684b3e..ed4e1442eef6877474995b8eb1280bfe15d80faa 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-READLINE_VERSION = 6.3
+READLINE_VERSION = 7.0
 READLINE_SITE = $(BR2_GNU_MIRROR)/readline
 READLINE_INSTALL_STAGING = YES
 READLINE_DEPENDENCIES = ncurses
index 7e627441a1b56e76427e52acad0a616310393a0f..8182e2c15832542180e90377a6bd510e57cb354d 100644 (file)
@@ -1,2 +1,2 @@
-# From https://www.ruby-lang.org/en/news/2016/04/26/ruby-2-3-1-released/
-sha256 6725b5534d5a3a21ec4f14d6d7b9921a0d00d08acb88fd04cd50b47b70496338        ruby-2.3.1.tar.xz
+# From https://www.ruby-lang.org/en/news/2016/11/21/ruby-2-3-3-released/
+sha256 1a4fa8c2885734ba37b97ffdb4a19b8fba0e8982606db02d936e65bac07419dc  ruby-2.3.3.tar.xz
index f3f80475b8230a615b74ab15db6bf8b87d165261..b8e03ac07f52e80560d908d9c1d634164ffdeb53 100644 (file)
@@ -5,7 +5,7 @@
 ################################################################################
 
 RUBY_VERSION_MAJOR = 2.3
-RUBY_VERSION = $(RUBY_VERSION_MAJOR).1
+RUBY_VERSION = $(RUBY_VERSION_MAJOR).3
 RUBY_VERSION_EXT = 2.3.0
 RUBY_SITE = http://cache.ruby-lang.org/pub/ruby/$(RUBY_VERSION_MAJOR)
 RUBY_SOURCE = ruby-$(RUBY_VERSION).tar.xz
index 84c3d75d1a2c074deb4ed7b490aec870384535d0..16a97cc75909213a4c84d6b527dcdeb137294692 100644 (file)
@@ -11,6 +11,7 @@ SCREEN_LICENSE_FILES = COPYING
 SCREEN_DEPENDENCIES = ncurses
 SCREEN_AUTORECONF = YES
 SCREEN_CONF_ENV = CFLAGS="$(TARGET_CFLAGS)"
+SCREEN_CONF_OPTS = --enable-colors256
 SCREEN_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) SCREEN=screen install_bin
 
 define SCREEN_INSTALL_SCREENRC
index f3b5692bfcbdeaac50526f6825ae0b95a5a87c92..1b9364329fab32558097fa9d23bf734699439e0b 100644 (file)
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256 ad0db28e2a4b79a6d4e4b38ec1e50a22cc80fbbb4d7cad0a42f651457b00475e  ser2net-3.1.tar.gz
+sha256 e91cf85ab2c1769e17be7726b133f8f3ad197e9d4b445bb0b0d2f3f97f88a083  ser2net-3.2.tar.gz
index 9a4a8d561a2a63786cd267fdbdb553e9d2f92a26..b33512edcbbfcbd43d3bb3ef352269f63ade0c9d 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SER2NET_VERSION = 3.1
+SER2NET_VERSION = 3.2
 SER2NET_SITE = http://downloads.sourceforge.net/project/ser2net/ser2net
 SER2NET_LICENSE = GPLv2+
 SER2NET_LICENSE_FILES = COPYING
diff --git a/package/snowball-hdmiservice/Config.in b/package/snowball-hdmiservice/Config.in
deleted file mode 100644 (file)
index 21a4f3c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-config BR2_PACKAGE_SNOWBALL_HDMISERVICE
-       bool "snowball-hdmiservice"
-       depends on BR2_TOOLCHAIN_HAS_THREADS
-       depends on !BR2_STATIC_LIBS
-       help
-         HDMI userspace control daemon
-
-         This package contains the HDMI userspace control daemon for the
-         snowball board
-
-         http://www.igloocommunity.org
-
-comment "snowball-hdmiservice needs a toolchain w/ threads, dynamic library"
-       depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
diff --git a/package/snowball-hdmiservice/snowball-hdmiservice.hash b/package/snowball-hdmiservice/snowball-hdmiservice.hash
deleted file mode 100644 (file)
index e9fffd7..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# locally computed
-sha256  dd2d8362a66178be082affa7cc238aebf3d671be184356bc23d13789db638b9d  snowball-hdmiservice-f75c99d1c52707240a78b4ba78e41d20d3aa3b08.tar.gz
diff --git a/package/snowball-hdmiservice/snowball-hdmiservice.mk b/package/snowball-hdmiservice/snowball-hdmiservice.mk
deleted file mode 100644 (file)
index 4aa1a27..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-################################################################################
-#
-# snowball-hdmiservice
-#
-################################################################################
-
-SNOWBALL_HDMISERVICE_VERSION = f75c99d1c52707240a78b4ba78e41d20d3aa3b08
-SNOWBALL_HDMISERVICE_SITE = $(call github,igloocommunity,hdmiservice,$(SNOWBALL_HDMISERVICE_VERSION))
-SNOWBALL_HDMISERVICE_LICENSE = MIT
-SNOWBALL_HDMISERVICE_LICENSE_FILES = debian/copyright
-SNOWBALL_HDMISERVICE_INSTALL_STAGING = YES
-
-define SNOWBALL_HDMISERVICE_BUILD_CMDS
-       $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CC="$(TARGET_CC) $(TARGET_CFLAGS)"
-endef
-
-define SNOWBALL_HDMISERVICE_INSTALL_STAGING_CMDS
-       $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CC="$(TARGET_CC) $(TARGET_CFLAGS)" DESTDIR=$(STAGING_DIR) install
-endef
-
-define SNOWBALL_HDMISERVICE_INSTALL_TARGET_CMDS
-       $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) CC="$(TARGET_CC) $(TARGET_CFLAGS)" DESTDIR=$(TARGET_DIR) install
-endef
-
-$(eval $(generic-package))
diff --git a/package/snowball-init/Config.in b/package/snowball-init/Config.in
deleted file mode 100644 (file)
index 6c94731..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-config BR2_PACKAGE_SNOWBALL_INIT
-       bool "snowball-init"
-       # Runtime dependency, needed by snowball startup script
-       select BR2_PACKAGE_BLUEZ_UTILS
-       depends on !BR2_STATIC_LIBS # bluez_utils
-       depends on BR2_USE_WCHAR # libglib2
-       depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, alsa-lib, libglib2
-       depends on BR2_USE_MMU # dbus
-       select BR2_PACKAGE_UX500_FIRMWARE
-       help
-         Snowball init scripts
-
-         http://www.igloocommunity.org
-
-comment "snowball-init needs a toolchain w/ wchar, threads, dynamic library"
-       depends on BR2_USE_MMU
-       depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
diff --git a/package/snowball-init/snowball-init.hash b/package/snowball-init/snowball-init.hash
deleted file mode 100644 (file)
index f048ab7..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# Locally calculated
-sha256 7adafa3e91cae286e18c062acc1b1d0676ac7352e7dedef9dc6106f905433106  snowball-init-b064be21de25729039e5e54037bbdd2e25cfd5b7.tar.gz
diff --git a/package/snowball-init/snowball-init.mk b/package/snowball-init/snowball-init.mk
deleted file mode 100644 (file)
index f06b032..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-################################################################################
-#
-# snowball-init
-#
-################################################################################
-
-SNOWBALL_INIT_VERSION = b064be21de25729039e5e54037bbdd2e25cfd5b7
-SNOWBALL_INIT_SITE = $(call github,igloocommunity,snowball-init,$(SNOWBALL_INIT_VERSION))
-SNOWBALL_INIT_LICENSE = BSD-4c
-SNOWBALL_INIT_LICENSE_FILES = debian/copyright
-
-define SNOWBALL_INIT_INSTALL_INIT_SYSV
-       $(INSTALL) -D -m 0755 $(@D)/snowball $(TARGET_DIR)/etc/init.d/S50snowball
-endef
-
-$(eval $(generic-package))
index b0418af0f707830d0dce257532a62fc595eb2354..7839dc903602fb241cacbeca8e5fb5b4f44315be 100644 (file)
@@ -1,4 +1,4 @@
 # From http://www.sqlite.org/download.html
-sha1 b34cb4ee9710368598c62df0222f5c24dfc9c860  sqlite-autoconf-3150000.tar.gz
+sha1 31f52169bcfeef9efb61480d0950e928ad059552  sqlite-autoconf-3150200.tar.gz
 # Calculated based on the hash above
-sha256 77162da9b4a0336d7e77d5252b690662850f62b47c12d9125f74ab9de78ded27  sqlite-autoconf-3150000.tar.gz
+sha256 07b35063b9386865b78226cdaca9a299d938a87aaa8fdc4d73edb0cef30f3149  sqlite-autoconf-3150200.tar.gz
index 0a5c1bb8f9b0bbdb8126d89d82cc15dc5d9a2f6b..cb032498d0d7d7f5fb6bf1b4c71c6934025b2919 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SQLITE_VERSION = 3150000
+SQLITE_VERSION = 3150200
 SQLITE_SOURCE = sqlite-autoconf-$(SQLITE_VERSION).tar.gz
 SQLITE_SITE = http://www.sqlite.org/2016
 SQLITE_LICENSE = Public domain
index 4c2431f13d2239d3f64cc09fc913025e1fa68dc1..c6f5be3ab451fbb1197eff48c37cf9b383b93068 100644 (file)
@@ -1,2 +1,2 @@
 # From: http://www.sudo.ws/download.html
-sha256 4316381708324da8b6cb151f655c1a11855207c7c02244d8ffdea5104d7cc308  sudo-1.8.15.tar.gz
+sha256 e5a0471c721281a693025bbde33ebd9d3db43245d83ab8516bbfc23980379434  sudo-1.8.18p1.tar.gz
index f28312ace1a2ba9b468abf59339d4057e56264a4..3643d55dbc0ae82da167f0c28ce1babc0fc32f9f 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SUDO_VERSION = 1.8.15
+SUDO_VERSION = 1.8.18p1
 SUDO_SITE = http://www.sudo.ws/sudo/dist
 SUDO_LICENSE = ISC BSD-3c
 SUDO_LICENSE_FILES = doc/LICENSE
@@ -30,6 +30,13 @@ else
 SUDO_CONF_OPTS += --without-pam
 endif
 
+ifeq ($(BR2_PACKAGE_ZLIB),y)
+SUDO_CONF_OPTS += --enable-zlib
+SUDO_DEPENDENCIES += zlib
+else
+SUDO_CONF_OPTS += --disable-zlib
+endif
+
 # mksigname/mksiglist needs to run on build host to generate source files
 define SUDO_BUILD_MKSIGNAME_MKSIGLIST_HOST
        $(MAKE) $(HOST_CONFIGURE_OPTS) \
index 90991a36be81f5eae64f5c8d86574d91fe61d218..efb2b54d9c3b3bcecd827a041553fc173fb0bee6 100644 (file)
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256 8b5defeaabec99b6c759ed1d99d91e4d23188431868d17cf6ed144f37e42bee5  sunxi-tools-89dac0f7eaaedd0d8afa9d5a3c713c7c1ccb9cf6.tar.gz
+sha256 da5d762608517b4b2e9bd392bd9a63afae3973d9c8264cbcfb757ddac8120d1b  sunxi-tools-v1.4.1.tar.gz
index 23e313533b9da92992acdf3239430ffbdc0ac046..1a58aff1bedbe4554fc67a51d68f6fb3e9c4fac3 100644 (file)
@@ -4,10 +4,10 @@
 #
 ################################################################################
 
-SUNXI_TOOLS_VERSION = 89dac0f7eaaedd0d8afa9d5a3c713c7c1ccb9cf6
+SUNXI_TOOLS_VERSION = v1.4.1
 SUNXI_TOOLS_SITE = $(call github,linux-sunxi,sunxi-tools,$(SUNXI_TOOLS_VERSION))
 SUNXI_TOOLS_LICENSE = GPLv2+
-SUNXI_TOOLS_LICENSE_FILES = COPYING
+SUNXI_TOOLS_LICENSE_FILES = LICENSE.md
 HOST_SUNXI_TOOLS_DEPENDENCIES = host-libusb host-pkgconf
 FEX2BIN = $(HOST_DIR)/usr/bin/fex2bin
 
index 918ca2fe8920fc1c41a2990c4602fc98b0d5f9b5..1ba10f6457b7daf80415dbcc0843888067e6b7df 100644 (file)
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256  c21d2fd52eb7ed9c304a7a996d230a8f1b47b9879a8c9fa50c80b41e117d1e60  swupdate-2016.07.tar.gz
+sha256  840d6287a41f7a42e08a74045ee40b7c2f82c1ecfedf8c915e3935d4f0084376  swupdate-2016.10.tar.gz
index d442810b21d626a348a3d80fb55acbcc603077e7..c905c1d74605825dab144fd8295943222d459efe 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SWUPDATE_VERSION = 2016.07
+SWUPDATE_VERSION = 2016.10
 SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION))
 SWUPDATE_LICENSE = GPLv2+, MIT, Public Domain
 SWUPDATE_LICENSE_FILES = COPYING
index 18dc98790ca031ab01afb4f8497a44f90f2e3600..2c1d929ebc1b17982b91feb78037802b3bd7aee8 100644 (file)
@@ -11,25 +11,21 @@ for example).
 
 Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
 [Maxime: refresh the patch]
+[Vincent:
+  refresh the patch, move-to-rootlibdir removed by:
+  https://github.com/systemd/systemd/commit/082210c7a837063fd8b520b18c221b42059d7eff
+]
 Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
 ---
- Makefile.am  | 15 +++------------
+ Makefile.am  | 11 ++---------
  configure.ac |  2 --
- 2 files changed, 3 insertions(+), 14 deletions(-)
+ 2 files changed, 2 insertions(+), 11 deletions(-)
 
 diff --git a/Makefile.am b/Makefile.am
 index 0c27f81..4de1595 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -255,7 +255,7 @@ define move-to-rootlibdir
-               $(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
-               so_img_name=$$(readlink $(DESTDIR)$(libdir)/$$libname) && \
-               rm -f $(DESTDIR)$(libdir)/$$libname && \
--              $(LN_S) --relative -f $(DESTDIR)$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/$$libname && \
-+              $(LN_S) -f $(DESTDIR)$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/$$libname && \
-               mv $(DESTDIR)$(libdir)/$$libname.* $(DESTDIR)$(rootlibdir); \
-       fi
- endef
 @@ -312,9 +312,9 @@ install-aliases-hook:
        set -- $(SYSTEM_UNIT_ALIASES) && \
                dir=$(systemunitdir) && $(install-aliases)
diff --git a/package/systemd/0004-importd-export-raw-needs-missing.h-for-O_TMPFILE.patch b/package/systemd/0004-importd-export-raw-needs-missing.h-for-O_TMPFILE.patch
deleted file mode 100644 (file)
index bded6bc..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-From 4a6d35237f96d07f3a783c874933f87bf14f93e0 Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Date: Sun, 28 Aug 2016 16:26:04 +0200
-Subject: [PATCH] importd/export-raw: needs missing.h for O_TMPFILE
-
-O_TMPFILE may be missing from the system headers, so use our fallback
-definition.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
-Backported from upstream:
-    https://github.com/systemd/systemd/commit/4a6d35237f96d07f3a783c874933f87bf14f93e0
----
- src/import/export-raw.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/import/export-raw.c b/src/import/export-raw.c
-index db06e11..6136b67 100644
---- a/src/import/export-raw.c
-+++ b/src/import/export-raw.c
-@@ -34,6 +34,7 @@
- #include "fd-util.h"
- #include "fileio.h"
- #include "import-common.h"
-+#include "missing.h"
- #include "ratelimit.h"
- #include "string-util.h"
- #include "util.h"
--- 
-2.7.4
-
diff --git a/package/systemd/0005-missing.h-add-missing-definitions-for-__O_TMPFILE.patch b/package/systemd/0005-missing.h-add-missing-definitions-for-__O_TMPFILE.patch
deleted file mode 100644 (file)
index 1c5ca05..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-From daad709a7c13c0fac73e407528f96cc876c09629 Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Date: Sun, 28 Aug 2016 17:26:42 +0200
-Subject: [PATCH] missing.h: add missing definitions for __O_TMPFILE
-
-Currently, a missing __O_TMPFILE was only defined for i386 and x86_64,
-leaving any other architectures with an "old" toolchain fail miserably
-at build time:
-    src/import/export-raw.c: In function 'reflink_snapshot':
-    src/import/export-raw.c:271:26: error: 'O_TMPFILE' undeclared (first use in this function)
-             new_fd = open(d, O_TMPFILE|O_CLOEXEC|O_NOCTTY|O_RDWR, 0600);
-                              ^
-
-__O_TMPFILE (and O_TMPFILE) are available since glibc 2.19. However, a
-lot of existing toolchains are still using glibc-2.18, and some even
-before that, and it is not really possible to update those toolchains.
-
-Instead of defining it only for i386 and x86_64, define __O_TMPFILE
-with the specific values for those archs where it is different from the
-generic value. Use the values as found in the Linux kernel (v4.8-rc3,
-current as of time of commit).
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
-Backported from upstream:
-    https://github.com/systemd/systemd/commit/daad709a7c13c0fac73e407528f96cc876c09629
----
- src/basic/missing.h | 17 +++++++++++++----
- 1 file changed, 13 insertions(+), 4 deletions(-)
-
-diff --git a/src/basic/missing.h b/src/basic/missing.h
-index f8e0966..13ff51c 100644
---- a/src/basic/missing.h
-+++ b/src/basic/missing.h
-@@ -537,12 +537,21 @@ struct btrfs_ioctl_quota_ctl_args {
- #  define DRM_IOCTL_DROP_MASTER _IO('d', 0x1f)
- #endif
--#if defined(__i386__) || defined(__x86_64__)
--
--/* The precise definition of __O_TMPFILE is arch specific, so let's
-- * just define this on x86 where we know the value. */
-+/* The precise definition of __O_TMPFILE is arch specific; use the
-+ * values defined by the kernel (note: some are hexa, some are octal,
-+ * duplicated as-is from the kernel definitions):
-+ * - alpha, parisc, sparc: each has a specific value;
-+ * - others: they use the "generic" value.
-+ */
- #ifndef __O_TMPFILE
-+#if defined(__alpha__)
-+#define __O_TMPFILE     0100000000
-+#elif defined(__parisc__) || defined(__hppa__)
-+#define __O_TMPFILE     0400000000
-+#elif defined(__sparc__) || defined(__sparc64__)
-+#define __O_TMPFILE     0x2000000
-+#else
- #define __O_TMPFILE     020000000
- #endif
--- 
-2.7.4
-
diff --git a/package/systemd/0006-basic-fileio-we-always-have-O_TMPFILE-now.patch b/package/systemd/0006-basic-fileio-we-always-have-O_TMPFILE-now.patch
deleted file mode 100644 (file)
index e0e7209..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-From 1d9ed171788821c21ca900a921833a8e41bf22f3 Mon Sep 17 00:00:00 2001
-From: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Date: Mon, 29 Aug 2016 12:34:50 +0200
-Subject: [PATCH] basic/fileio: we always have O_TMPFILE now
-
-fileio makes use of O_TMPFILE when it is available.
-
-We now always have O_TMPFILE, defined in missing.h if missing
-from the toolchain headers.
-
-Have fileio include missing.h and drop the guards around the
-use of O_TMPFILE.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
----
-Backported from upstream:
-    https://github.com/systemd/systemd/commit/1d9ed171788821c21ca900a921833a8e41bf22f3
----
- src/basic/fileio.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/src/basic/fileio.c b/src/basic/fileio.c
-index d642f3d..a5920e7 100644
---- a/src/basic/fileio.c
-+++ b/src/basic/fileio.c
-@@ -37,6 +37,7 @@
- #include "hexdecoct.h"
- #include "log.h"
- #include "macro.h"
-+#include "missing.h"
- #include "parse-util.h"
- #include "path-util.h"
- #include "random-util.h"
-@@ -1280,12 +1281,10 @@ int open_tmpfile_unlinkable(const char *directory, int flags) {
-         /* Returns an unlinked temporary file that cannot be linked into the file system anymore */
--#ifdef O_TMPFILE
-         /* Try O_TMPFILE first, if it is supported */
-         fd = open(directory, flags|O_TMPFILE|O_EXCL, S_IRUSR|S_IWUSR);
-         if (fd >= 0)
-                 return fd;
--#endif
-         /* Fall back to unguessable name + unlinking */
-         p = strjoina(directory, "/systemd-tmp-XXXXXX");
-@@ -1313,7 +1312,6 @@ int open_tmpfile_linkable(const char *target, int flags, char **ret_path) {
-          * which case "ret_path" will be returned as NULL. If not possible a the tempoary path name used is returned in
-          * "ret_path". Use link_tmpfile() below to rename the result after writing the file in full. */
--#ifdef O_TMPFILE
-         {
-                 _cleanup_free_ char *dn = NULL;
-@@ -1329,7 +1327,6 @@ int open_tmpfile_linkable(const char *target, int flags, char **ret_path) {
-                 log_debug_errno(errno, "Failed to use O_TMPFILE on %s: %m", dn);
-         }
--#endif
-         r = tempfn_random(target, NULL, &tmp);
-         if (r < 0)
--- 
-2.7.4
-
index 30e9ef6527baf80e4fc5e1f9f0269f08e14af9d9..0acaa3cdcd4f0d6b4f9cd9536396af068f8c5154 100644 (file)
@@ -1,2 +1,2 @@
 # sha256 locally computed
-sha256 899733ad6c157cedbb89aec4efe3bc824dcfd65a1d6f6bebc7b043f7924e39b4 systemd-231.tar.gz
+sha256 1172c7c7d5d72fbded53186e7599d5272231f04cc8b72f9a0fb2c5c20dfc4880  systemd-232.tar.gz
index fb07819594e98fd909dd2ee5267c3646477583b4..fa07bd05729fa5be90d85cd0c28a2e0f79f3203d 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SYSTEMD_VERSION = 231
+SYSTEMD_VERSION = 232
 SYSTEMD_SITE = $(call github,systemd,systemd,v$(SYSTEMD_VERSION))
 SYSTEMD_LICENSE = LGPLv2.1+, GPLv2+ (udev), Public Domain (few source files, see README)
 SYSTEMD_LICENSE_FILES = LICENSE.GPL2 LICENSE.LGPL2.1 README
index cf176e46fe313edc072f1d74291cebd2ddb70ffd..41f0b5fac3d49711c6dc4d1534f7ca7334c4f699 100644 (file)
@@ -1,7 +1,5 @@
 config BR2_PACKAGE_TINYCBOR
        bool "tinycbor"
-       # package uses fopencookie(), not available with this toolchain
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
        help
          Concise Binary Object Representation (CBOR) Library
 
index f07fc17d9a091aac78b0d8048e41a34b5895f7fd..88300e8e3455675e1edacb11801920a9bd975ad7 100644 (file)
@@ -1,4 +1,2 @@
 # Locally computed:
-sha256 f70de1e6b7e3750abb4ceacf0059e47b47c769f113434de10293b33867ce54c2        tinycbor-v0.3.2.tar.gz
-sha256 7d3aa839ae246e9e14fc73e67869d88c684802c1578fb75503f3fdde1482dcf6        ede7f1431ae06c9086f2a83a57bd7832d99280e3.patch
-sha256 42054074478d074d0320e0c64e8d44f60081b6f0d8dc0e3607e0fb7f4dad96a4        ad09b6af11fc8b6391041973783785cfe1559d63.patch  
+sha256 302ac9de66f1048725040ccc9a99e03c20529ac2b150ccf35cfd1e2dafa81c4b        tinycbor-v0.4.tar.gz
index 8ce9a76824c2bf0a10e00ce3d054a0cd5b1fd671..2691e5b8d3cbc4ee516df9dcbc25426ee3fc8165 100644 (file)
@@ -4,22 +4,11 @@
 #
 ################################################################################
 
-TINYCBOR_VERSION = v0.3.2
+TINYCBOR_VERSION = v0.4
 TINYCBOR_SITE = $(call github,01org,tinycbor,$(TINYCBOR_VERSION))
 TINYCBOR_LICENSE = MIT
 TINYCBOR_LICENSE_FILES = LICENSE
 
-# This patch fixes the issue on unnamed union which are not supported by some
-# targets like blackfin
-# This patch is currently in dev branch and will be a part of v0.4
-TINYCBOR_PATCH = \
-       https://github.com/01org/tinycbor/commit/ede7f1431ae06c9086f2a83a57bd7832d99280e3.patch
-
-# This patch fixes the issue on cjson detection
-# This patch is currently in dev branch and will be a part of v0.4
-TINYCBOR_PATCH += \
-       https://github.com/01org/tinycbor/commit/ad09b6af11fc8b6391041973783785cfe1559d63.patch
-
 TINYCBOR_DEPENDENCIES = host-pkgconf
 TINYCBOR_INSTALL_STAGING = YES
 
diff --git a/package/tslib/0001-enable_raw_module.patch b/package/tslib/0001-enable_raw_module.patch
deleted file mode 100644 (file)
index cb89338..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-Enable raw module by default
-
-Signed-off-by: Daniel Nyström <daniel.nystrom@timeterminal.se>
-
-diff -Naur tslib-e000d35a.orig/etc/ts.conf tslib-e000d35a/etc/ts.conf
---- tslib-e000d35a.orig/etc/ts.conf    2010-12-21 18:54:45.000000000 +0100
-+++ tslib-e000d35a/etc/ts.conf 2010-12-21 18:55:03.000000000 +0100
-@@ -1,5 +1,5 @@
- # Uncomment if you wish to use the linux input layer event interface
--# module_raw input
-+module_raw input
- # Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
- # module_raw collie
diff --git a/package/tslib/0002-add_finddef_and_inputattach_utils.patch b/package/tslib/0002-add_finddef_and_inputattach_utils.patch
deleted file mode 100644 (file)
index dcc6ec7..0000000
+++ /dev/null
@@ -1,718 +0,0 @@
-diff -Naur tslib-org/tests/Makefile.am tslib-1.0/tests/Makefile.am
---- tslib-org/tests/Makefile.am        2006-08-25 00:02:55.000000000 +0300
-+++ tslib-1.0/tests/Makefile.am        2007-05-07 17:39:54.000000000 +0300
-@@ -12,7 +12,7 @@
- AM_CFLAGS               = $(DEBUGFLAGS)
- INCLUDES              = -I$(top_srcdir)/src
--bin_PROGRAMS          = ts_test ts_calibrate ts_print ts_print_raw ts_harvest
-+bin_PROGRAMS          = ts_test ts_calibrate ts_print ts_print_raw ts_harvest ts_finddev inputattach
- ts_test_SOURCES               = ts_test.c fbutils.c fbutils.h font_8x8.c font_8x16.c font.h
- ts_test_LDADD         = $(top_builddir)/src/libts.la
-@@ -27,4 +27,10 @@
- ts_calibrate_LDADD    = $(top_builddir)/src/libts.la
- ts_harvest_SOURCES    = ts_harvest.c fbutils.c fbutils.h testutils.c testutils.h font_8x8.c font_8x16.c font.h
--ts_harvest_LDADD              = $(top_builddir)/src/libts.la
-+ts_harvest_LDADD      = $(top_builddir)/src/libts.la
-+
-+ts_finddev_SOURCES      = ts_finddev.c
-+ts_finddev_LDADD        = $(top_builddir)/src/libts.la
-+
-+inputattach_SOURCES     = inputattach.c
-+inputattach_LDADD       =
-diff -Naur tslib-org/tests/inputattach.c tslib-1.0/tests/inputattach.c
---- tslib-org/tests/inputattach.c      1970-01-01 02:00:00.000000000 +0200
-+++ tslib-1.0/tests/inputattach.c      2007-05-07 17:36:37.000000000 +0300
-@@ -0,0 +1,611 @@
-+/*
-+ * $Id: inputattach.c,v 1.24 2006/02/08 12:19:31 vojtech Exp $
-+ *
-+ *  Copyright (c) 1999-2000 Vojtech Pavlik
-+ *
-+ *  Sponsored by SuSE
-+ *
-+ *  Twiddler support Copyright (c) 2001 Arndt Schoenewald
-+ *  Sponsored by Quelltext AG (http://www.quelltext-ag.de), Dortmund, Germany
-+ */
-+
-+/*
-+ * Input line discipline attach program
-+ */
-+
-+/*
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or 
-+ * (at your option) any later version.
-+ * 
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ * 
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ * 
-+ * Should you need to contact me, the author, you can do so either by
-+ * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
-+ * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
-+ */
-+ 
-+/* softa note: 
-+cvs version is here:
-+http://cvs.sourceforge.net/viewcvs.py/ *checkout* /linuxconsole/ruby/utils/inputattach.c
-+*/
-+
-+#include <linux/serio.h>
-+
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <sys/ioctl.h>
-+#include <sys/time.h>
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <fcntl.h>
-+#include <termios.h>
-+#include <string.h>
-+#include <assert.h>
-+#include <ctype.h>
-+
-+// softa patch!
-+/*
-+ * Serio types
-+ */
-+#ifndef SERIO_UNKNOWN
-+  #define SERIO_UNKNOWN   0x00
-+#endif
-+#ifndef SERIO_MSC
-+  #define SERIO_MSC       0x01
-+#endif
-+#ifndef SERIO_SUN
-+  #define SERIO_SUN       0x02
-+#endif
-+#ifndef SERIO_MS
-+  #define SERIO_MS        0x03
-+#endif
-+#ifndef SERIO_MP
-+  #define SERIO_MP        0x04
-+#endif
-+#ifndef SERIO_MZ
-+  #define SERIO_MZ        0x05
-+#endif
-+#ifndef SERIO_MZP
-+  #define SERIO_MZP       0x06
-+#endif
-+#ifndef SERIO_MZPP
-+  #define SERIO_MZPP      0x07
-+#endif
-+#ifndef SERIO_VSXXXAA
-+  #define SERIO_VSXXXAA   0x08
-+#endif
-+#ifndef SERIO_SUNKBD
-+  #define SERIO_SUNKBD    0x10
-+#endif
-+#ifndef SERIO_WARRIOR
-+  #define SERIO_WARRIOR   0x18
-+#endif
-+#ifndef SERIO_SPACEORB
-+  #define SERIO_SPACEORB  0x19
-+#endif
-+#ifndef SERIO_MAGELLAN
-+  #define SERIO_MAGELLAN  0x1a
-+#endif
-+#ifndef SERIO_SPACEBALL
-+  #define SERIO_SPACEBALL 0x1b
-+#endif
-+#ifndef SERIO_GUNZE
-+  #define SERIO_GUNZE     0x1c
-+#endif
-+#ifndef SERIO_IFORCE
-+  #define SERIO_IFORCE    0x1d
-+#endif
-+#ifndef SERIO_STINGER
-+  #define SERIO_STINGER   0x1e
-+#endif
-+#ifndef SERIO_NEWTON
-+  #define SERIO_NEWTON    0x1f
-+#endif
-+#ifndef SERIO_STOWAWAY
-+  #define SERIO_STOWAWAY  0x20
-+#endif
-+#ifndef SERIO_H3600
-+  #define SERIO_H3600     0x21
-+#endif 
-+#ifndef SERIO_PS2SER
-+  #define SERIO_PS2SER    0x22
-+#endif
-+#ifndef SERIO_TWIDKBD
-+  #define SERIO_TWIDKBD   0x23
-+#endif
-+#ifndef SERIO_TWIDJOY
-+  #define SERIO_TWIDJOY   0x24
-+#endif
-+#ifndef SERIO_HIL
-+  #define SERIO_HIL       0x25
-+#endif
-+#ifndef SERIO_SNES232
-+  #define SERIO_SNES232   0x26
-+#endif
-+#ifndef SERIO_SEMTECH
-+  #define SERIO_SEMTECH   0x27
-+#endif
-+#ifndef SERIO_LKKBD
-+  #define SERIO_LKKBD     0x28
-+#endif
-+#ifndef SERIO_ELO
-+  #define SERIO_ELO       0x29
-+#endif
-+#ifndef SERIO_MICROTOUCH
-+  #define SERIO_MICROTOUCH        0x30
-+#endif
-+#ifndef SERIO_PENMOUNT
-+  #define SERIO_PENMOUNT  0x31
-+#endif
-+#ifndef SERIO_TOUCHRIGHT
-+  #define SERIO_TOUCHRIGHT        0x32
-+#endif
-+#ifndef SERIO_TOUCHWIN
-+  #define SERIO_TOUCHWIN  0x33
-+#endif
-+// end softa patch!
-+
-+int readchar(int fd, unsigned char *c, int timeout)
-+{
-+      struct timeval tv;
-+      fd_set set;
-+      
-+      tv.tv_sec = 0;
-+      tv.tv_usec = timeout * 1000;
-+
-+      FD_ZERO(&set);
-+      FD_SET(fd, &set);
-+
-+      if (!select(fd+1, &set, NULL, NULL, &tv)) return -1;
-+      if (read(fd, c, 1) != 1) return -1;
-+
-+      return 0;
-+}
-+
-+
-+
-+void setline(int fd, int flags, int speed)
-+{
-+      struct termios t;
-+
-+      tcgetattr(fd, &t);
-+
-+      t.c_cflag = flags | CREAD | HUPCL | CLOCAL;
-+      t.c_iflag = IGNBRK | IGNPAR;
-+      t.c_oflag = 0;
-+      t.c_lflag = 0;
-+      t.c_cc[VMIN ] = 1;
-+      t.c_cc[VTIME] = 0;
-+
-+      cfsetispeed(&t, speed);
-+      cfsetospeed(&t, speed);
-+
-+      tcsetattr(fd, TCSANOW, &t);
-+}
-+
-+int logitech_command(int fd, char *c)
-+{
-+      int i;
-+      unsigned char d;
-+      for (i = 0; c[i]; i++) {
-+              write(fd, c + i, 1);
-+              if (readchar(fd, &d, 1000))
-+                      return -1;
-+              if (c[i] != d)
-+                      return -1;
-+      }
-+      return 0;
-+}
-+
-+int magellan_init(int fd, long *id, long *extra)
-+{
-+      write(fd, "m3\rpBB\rz\r", 9);
-+      return 0;
-+}
-+
-+int warrior_init(int fd, long *id, long *extra)
-+{
-+      if (logitech_command(fd, "*S")) return -1;
-+      setline(fd, CS8, B4800);
-+      return 0;
-+}
-+
-+int spaceball_waitchar(int fd, unsigned char c, unsigned char *d, int timeout)
-+{
-+      unsigned char b = 0;
-+
-+      while (!readchar(fd, &b, timeout)) {
-+              if (b == 0x0a) continue;
-+              *d++ = b;
-+              if (b == c) break;
-+      }
-+
-+      *d = 0;
-+
-+      return -(b != c);
-+}
-+
-+int spaceball_waitcmd(int fd, char c, char *d)
-+{
-+      int i;
-+
-+      for (i = 0; i < 8; i++) {
-+              if (spaceball_waitchar(fd, 0x0d, d, 1000))
-+                      return -1;
-+              if (d[0] == c)
-+                      return 0;
-+      }
-+
-+      return -1;
-+}
-+
-+int spaceball_cmd(int fd, char *c, char *d)
-+{
-+      int i;
-+
-+      for (i = 0; c[i]; i++)
-+              write(fd, c + i, 1);
-+      write(fd, "\r", 1);
-+
-+      i = spaceball_waitcmd(fd, toupper(c[0]), d);
-+
-+      return i;
-+}
-+
-+#define SPACEBALL_1003                1
-+#define SPACEBALL_2003B               3
-+#define SPACEBALL_2003C               4
-+#define SPACEBALL_3003C               7
-+#define SPACEBALL_4000FLX     8
-+#define SPACEBALL_4000FLX_L   9
-+
-+int spaceball_init(int fd, long *id, long *extra)
-+{
-+      char r[64];
-+
-+      if (spaceball_waitchar(fd, 0x11, r, 4000) ||
-+          spaceball_waitchar(fd, 0x0d, r, 1000))
-+              return -1;
-+
-+      if (spaceball_waitcmd(fd, '@', r))
-+              return -1; 
-+
-+      if (strncmp("@1 Spaceball alive", r, 18))
-+              return -1;
-+
-+      if (spaceball_waitcmd(fd, '@', r))
-+              return -1; 
-+
-+      if (spaceball_cmd(fd, "hm", r))
-+              return -1;
-+
-+      if (!strncmp("Hm2003B", r, 7))
-+              *id = SPACEBALL_2003B;
-+      if (!strncmp("Hm2003C", r, 7))
-+              *id = SPACEBALL_2003C;
-+      if (!strncmp("Hm3003C", r, 7))
-+              *id = SPACEBALL_3003C;
-+
-+      if (!strncmp("HvFirmware", r, 10)) {
-+
-+              if (spaceball_cmd(fd, "\"", r))
-+                      return -1;
-+
-+              if (strncmp("\"1 Spaceball 4000 FLX", r, 21))
-+                      return -1;
-+
-+              if (spaceball_waitcmd(fd, '"', r))
-+                      return -1; 
-+
-+              if (strstr(r, " L "))
-+                      *id = SPACEBALL_4000FLX_L;
-+              else
-+                      *id = SPACEBALL_4000FLX;
-+
-+              if (spaceball_waitcmd(fd, '"', r))
-+                      return -1; 
-+
-+              if (spaceball_cmd(fd, "YS", r))
-+                      return -1;
-+
-+              if (spaceball_cmd(fd, "M", r))
-+                      return -1;
-+
-+              return 0;
-+      }
-+
-+      if (spaceball_cmd(fd, "P@A@A", r) ||
-+          spaceball_cmd(fd, "FT@", r)   ||
-+          spaceball_cmd(fd, "MSS", r))
-+              return -1;
-+
-+      return 0;
-+}
-+
-+int stinger_init(int fd, long *id, long *extra)
-+{
-+      int i;
-+      unsigned char c;
-+      unsigned char *response = "\r\n0600520058C272";
-+
-+      if (write(fd, " E5E5", 5) != 5)         /* Enable command */
-+              return -1; 
-+
-+      for (i = 0; i < 16; i++)                /* Check for Stinger */
-+              if (readchar(fd, &c, 200) || (c != response[i])) 
-+                      return -1;
-+
-+      return 0;
-+}
-+
-+int mzp_init(int fd, long *id, long *extra)
-+{
-+      if (logitech_command(fd, "*X*q")) return -1;
-+      setline(fd, CS8, B9600);
-+      return 0;
-+}
-+
-+int newton_init(int fd, long *id, long *extra)
-+{
-+  int i;
-+  unsigned char c;
-+  unsigned char response[35] =
-+  { 0x16, 0x10, 0x02, 0x64, 0x5f, 0x69, 0x64, 0x00,
-+    0x00, 0x00, 0x0c, 0x6b, 0x79, 0x62, 0x64, 0x61,
-+    0x70, 0x70, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x6e,
-+    0x6f, 0x66, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x10,
-+    0x03, 0xdd, 0xe7 };
-+
-+  for (i = 0; i < 35; i++)
-+    if (readchar(fd, &c, 400) || (c != response[i]))
-+      return -1;
-+
-+  return 0;
-+}
-+
-+int twiddler_init(int fd, long *id, long *extra)
-+{
-+      unsigned char c[10];
-+      int count, line;
-+
-+      /* Turn DTR off, otherwise the Twiddler won't send any data. */
-+      if (ioctl(fd, TIOCMGET, &line)) return -1;
-+      line &= ~TIOCM_DTR;
-+      if (ioctl(fd, TIOCMSET, &line)) return -1;
-+
-+      /* Check whether the device on the serial line is the Twiddler.
-+       *
-+       * The Twiddler sends data packets of 5 bytes which have the following
-+       * properties: the MSB is 0 on the first and 1 on all other bytes, and
-+       * the high order nibble of the last byte is always 0x8.
-+       *
-+       * We read and check two of those 5 byte packets to be sure that we
-+       * are indeed talking to a Twiddler. */
-+
-+      /* Read at most 5 bytes until we find one with the MSB set to 0 */
-+      for (count = 0; count < 5; count++) {
-+              if (readchar(fd, c+0, 500)) return -1;
-+              if ((c[0] & 0x80) == 0) break;
-+      }
-+
-+      if (count == 5) {
-+              /* Could not find header byte in data stream */
-+              return -1;
-+      }
-+
-+      /* Read remaining 4 bytes plus the full next data packet */
-+      for (count = 1; count < 10; count++) {
-+              if (readchar(fd, c+count, 500)) return -1;
-+      }
-+
-+      /* Check whether the bytes of both data packets obey the rules */
-+      for (count = 1; count < 10; count++) {
-+              if ((count % 5 == 0 && (c[count] & 0x80) != 0)
-+                  || (count % 5 == 4 && (c[count] & 0xF0) != 0x80)
-+                  || (count % 5 != 0 && (c[count] & 0x80) != 0x80)) {
-+                      /* Invalid byte in data packet */
-+                      return -1;
-+              }
-+      }
-+
-+      return 0;
-+}
-+
-+int penmount_init(int fd, long *id, long *extra)
-+{
-+      unsigned char init_cmd[5] = { 0xF2, 0x00, 0x00, 0x00, 0x00 };
-+      unsigned char start_cmd[5] = { 0xF1, 0x00, 0x00, 0x00, 0x00 };
-+      unsigned char c[10];
-+      int count;
-+      
-+      /* try to initialize device */
-+      if (write( fd, init_cmd, 5 ) != 5)
-+              return -1;
-+              
-+      /* read the responce */
-+      for (count = 0; count < 5; count ++) {
-+              if (readchar(fd, c+0, 500)) return -1;
-+              if (c[0] == 0xf2) break;
-+      }
-+      
-+      if (readchar(fd, c+1, 500)) return -1;
-+      if (c[1] != 0xd9) return -1;
-+      
-+      if (readchar(fd, c+2, 500)) return -1;
-+      if (c[2] != 0x0a) return -1;
-+      
-+      /* the device is present! start it! */
-+      if (write( fd, start_cmd, 5 ) != 5)
-+              return -1;
-+              
-+      return 0;
-+}
-+
-+int dump_init(int fd, long *id, long *extra)
-+{
-+      unsigned char c, o = 0;
-+
-+      c = 0x80;
-+
-+      if (write(fd, &c, 1) != 1)         /* Enable command */
-+                return -1;
-+
-+      while (1)
-+              if (!readchar(fd, &c, 1)) {
-+                      printf("%02x (%c) ", c, ((c > 32) && (c < 127)) ? c : 'x');
-+                      o = 1;
-+              } else {
-+                      if (o) {
-+                              printf("\n");
-+                              o = 0;
-+                      }
-+              }
-+}
-+
-+struct input_types {
-+      char name[16];
-+      char name2[16];
-+      int speed;
-+      int flags;
-+      unsigned long type;
-+      unsigned long id;
-+      unsigned long extra;
-+      int flush;
-+      int (*init)(int fd, long *id, long *extra);
-+};
-+
-+struct input_types input_types[] = {
-+
-+{ "--sunkbd",         "-skb",         B1200, CS8,                     SERIO_SUNKBD,   0,      0,      1,      NULL },
-+{ "--lkkbd",          "-lk",          B4800, CS8|CSTOPB,              SERIO_LKKBD,    0,      0,      1,      NULL },
-+{ "--vsxxx-aa",               "-vs",          B4800, CS8|CSTOPB|PARENB|PARODD,SERIO_VSXXXAA,  0,      0,      1,      NULL },
-+{ "--spaceorb",               "-orb",         B9600, CS8,                     SERIO_SPACEORB, 0,      0,      1,      NULL },
-+{ "--spaceball",      "-sbl",         B9600, CS8,                     SERIO_SPACEBALL,0,      0,      0,      spaceball_init },
-+{ "--magellan",               "-mag",         B9600, CS8 | CSTOPB | CRTSCTS,  SERIO_MAGELLAN, 0,      0,      1,      magellan_init },
-+{ "--warrior",                "-war",         B1200, CS7 | CSTOPB,            SERIO_WARRIOR,  0,      0,      1,      warrior_init },
-+{ "--stinger",                "-sting",       B1200, CS8,                     SERIO_STINGER,  0,      0,      1,      stinger_init },
-+{ "--mousesystems",   "-msc",         B1200, CS8,                     SERIO_MSC,      0,      0x01,   1,      NULL },
-+{ "--sunmouse",               "-sun",         B1200, CS8,                     SERIO_SUN,      0,      0x01,   1,      NULL },
-+{ "--microsoft",      "-bare",        B1200, CS7,                     SERIO_MS,       0,      0,      1,      NULL },
-+{ "--mshack",         "-ms",          B1200, CS7,                     SERIO_MS,       0,      0x01,   1,      NULL },
-+{ "--mouseman",               "-mman",        B1200, CS7,                     SERIO_MP,       0,      0x01,   1,      NULL },
-+{ "--intellimouse",   "-ms3",         B1200, CS7,                     SERIO_MZ,       0,      0x11,   1,      NULL },
-+{ "--mmwheel",                "-mmw",         B1200, CS7 | CSTOPB,            SERIO_MZP,      0,      0x13,   1,      mzp_init },
-+{ "--iforce",         "-ifor",        B38400, CS8,                    SERIO_IFORCE,   0,      0,      0,      NULL },
-+{ "--newtonkbd",        "-newt",        B9600, CS8,                     SERIO_NEWTON, 0,      0,      0,      newton_init },
-+{ "--h3600ts",          "-ipaq",      B115200, CS8,                   SERIO_H3600,    0,      0,      0,      NULL },
-+{ "--stowawaykbd",      "-ipaqkbd",     B115200, CS8,                   SERIO_STOWAWAY, 0,    0,      0,      NULL },
-+{ "--ps2serkbd",      "-ps2ser",      B1200, CS8,                     SERIO_PS2SER,   0,      0,      1,      NULL },
-+{ "--twiddler",               "-twid",        B2400, CS8,                     SERIO_TWIDKBD,  0,      0,      0,      twiddler_init },
-+{ "--twiddler-joy",   "-twidjoy",     B2400, CS8,                     SERIO_TWIDJOY,  0,      0,      0,      twiddler_init },
-+{ "--elotouch",               "-elo",         B9600, CS8 | CRTSCTS,           SERIO_ELO,      0,      0,      0,      NULL },
-+{ "--elo4002",                "-elo6b",       B9600, CS8 | CRTSCTS,           SERIO_ELO,      1,      0,      0,      NULL },
-+{ "--elo271-140",     "-elo4b",       B9600, CS8 | CRTSCTS,           SERIO_ELO,      2,      0,      0,      NULL },
-+{ "--elo261-280",     "-elo3b",       B9600, CS8 | CRTSCTS,           SERIO_ELO,      3,      0,      0,      NULL },
-+{ "--dump",           "-dump",        B2400, CS8,                     0,              0,      0,      0,      dump_init },
-+{ "--dmc9000",          "-dmc",         B19200, CS8,                  SERIO_PENMOUNT, 0,      0,      0,      penmount_init },
-+{ "", "", 0, 0 }
-+
-+};
-+
-+int main(int argc, char **argv)
-+{
-+      unsigned long devt;
-+      int ldisc;
-+        int type;
-+      long id, extra;
-+        int fd;
-+      char c;
-+
-+        if (argc < 2 || argc > 3 || !strcmp("--help", argv[1])) {
-+                puts("");
-+                puts("Usage: inputttach <mode> <device>");
-+                puts("");
-+                puts("Modes:");
-+                puts("  --sunkbd        -skb   Sun Type 4 and Type 5 keyboards");
-+              puts("  --lkkbd         -lk    DEC LK201 / LK401 keyboards");
-+              puts("  --vsxxx-aa      -vs    DEC VSXXX-AA / VSXXX-GA mouse and VSXXX-AB tablet");
-+                puts("  --spaceorb      -orb   SpaceOrb 360 / SpaceBall Avenger");
-+              puts("  --spaceball     -sbl   SpaceBall 2003 / 3003 / 4000 FLX");
-+                puts("  --magellan      -mag   Magellan / SpaceMouse");
-+                puts("  --warrior       -war   WingMan Warrior");
-+              puts("  --stinger       -stng  Gravis Stinger");
-+              puts("  --mousesystems  -msc   3-button Mouse Systems mice");
-+              puts("  --sunmouse      -sun   3-button Sun mice");
-+              puts("  --microsoft     -bare  2-button Microsoft mice");
-+              puts("  --mshack        -ms    3-button mice in Microsoft mode");
-+              puts("  --mouseman      -mman  3-button Logitech and Genius mice");
-+              puts("  --intellimouse  -ms3   Microsoft IntelliMouse");
-+              puts("  --mmwheel       -mmw   Logitech mice with 4-5 buttons or wheel");
-+              puts("  --iforce        -ifor  I-Force joysticks and wheels");
-+                puts("  --h3600ts       -ipaq  Ipaq h3600 touchscreen");
-+              puts("  --stowawaykbd   -ipaqkbd  Stowaway keyboard");
-+              puts("  --ps2serkbd     -ps2ser PS/2 via serial keyboard");
-+              puts("  --twiddler      -twid   Handykey Twiddler chording keyboard");
-+              puts("  --twiddler-joy  -twidjoy  Handykey Twiddler used as a joystick");
-+              puts("  --dmc9000       -dmc   DMC9000/Penpount touchscreen");
-+              puts("");
-+                return 1;
-+        }
-+
-+        for (type = 0; input_types[type].speed; type++) {
-+                if (!strncasecmp(argv[1], input_types[type].name, 16) ||
-+                      !strncasecmp(argv[1], input_types[type].name2, 16))
-+                        break;
-+        }
-+
-+      if (!input_types[type].speed) {
-+              fprintf(stderr, "inputattach: invalid mode\n");
-+              return 1;
-+      }
-+
-+      if ((fd = open(argv[2], O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0) {
-+              perror("inputattach");
-+              return 1;
-+      }
-+
-+      setline(fd, input_types[type].flags, input_types[type].speed);
-+
-+      if (input_types[type].flush)
-+              while (!readchar(fd, &c, 100));
-+
-+      id = input_types[type].id;
-+      extra = input_types[type].extra;
-+
-+      if (input_types[type].init && input_types[type].init(fd, &id, &extra)) {
-+              fprintf(stderr, "inputattach: device initialization failed\n");
-+              return 1;
-+      }
-+
-+      ldisc = N_MOUSE;
-+      if(ioctl(fd, TIOCSETD, &ldisc)) {
-+              fprintf(stderr, "inputattach: can't set line discipline\n"); 
-+              return 1;
-+      }
-+
-+      devt = input_types[type].type | (id << 8) | (extra << 16);
-+
-+      if(ioctl(fd, SPIOCSTYPE, &devt)) {
-+              fprintf(stderr, "inputattach: can't set device type\n");
-+              return 1;
-+      }
-+
-+      read(fd, NULL, 0);
-+
-+      ldisc = 0;
-+      ioctl(fd, TIOCSETD, &ldisc);
-+      close(fd);
-+
-+      return 0;
-+}
-diff -Naur tslib-org/tests/ts_finddev.c tslib-1.0/tests/ts_finddev.c
---- tslib-org/tests/ts_finddev.c       1970-01-01 02:00:00.000000000 +0200
-+++ tslib-1.0/tests/ts_finddev.c       2007-05-07 17:36:37.000000000 +0300
-@@ -0,0 +1,75 @@
-+/*
-+ *  tslib/src/ts_print.c
-+ *
-+ *  Derived from tslib/src/ts_test.c by Douglas Lowder
-+ *  Just prints touchscreen events -- does not paint them on framebuffer
-+ *
-+ * This file is placed under the GPL.  Please see the file
-+ * COPYING for more details.
-+ *
-+ * Basic test program for touchscreen library.
-+ */
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <signal.h>
-+#include <sys/fcntl.h>
-+#include <sys/ioctl.h>
-+#include <sys/mman.h>
-+#include <sys/time.h>
-+#include <sys/types.h>
-+#include <unistd.h>
-+
-+#include "tslib.h"
-+
-+void usage( int argc, char** argv ) {
-+      printf( "Usage: %s device_name wait_for_sec\n", argv[0] );
-+      printf( "\tdevice_name  - tdevice to probe, example /dev/input/event0\n" );
-+      printf( "\twait_for_sec - wait seconds for touch event, if 0 - dont wait!\n" );
-+      printf( "\tReturn codes:\n" );
-+      printf( "\t  0          - timeout expired without receiving event.\n" );
-+      printf( "\t               But this maybe is TouchScreen.\n" );
-+      printf( "\t -1          - this is NOT TouchScreen device!\n" );
-+      printf( "\t  1          - this is TouchScreen for shure!\n" );  
-+      exit(-1);
-+}
-+
-+void alarm_handler( int sig ) {
-+      // time is expired!
-+      exit(0);
-+}
-+
-+int main( int argc, char** argv )
-+{
-+      struct tsdev *ts;
-+      struct ts_sample samp;
-+      char *tsdevice=NULL;
-+      int waitsec;
-+      int ret;
-+      
-+      if (argc != 3)
-+              usage( argc, argv );
-+              
-+      tsdevice = argv[1];
-+      waitsec = atoi( argv[2] );
-+      if (waitsec < 0)
-+              usage( argc, argv );
-+              
-+      ts = ts_open( tsdevice, 0 );
-+      if (!ts)
-+              return -1;
-+      if (ts_config(ts))
-+              return -1;
-+              
-+      if (!waitsec) {
-+              return 0;
-+      }
-+              
-+      printf( "Probe device %s, Please Touch Screen Anywhere in %i seconds! ... \n", tsdevice, waitsec );
-+      signal( SIGALRM, alarm_handler );
-+      alarm( waitsec );
-+      ret = ts_read_raw(ts, &samp, 1 );
-+      if (ret)
-+              return 1;
-+              
-+      return -1;
-+}
index e3ddce54fe46154b910afe5a6bb762bad3254cd0..fc493e78d06c10096f00351cba3237369d265cf0 100644 (file)
@@ -1,2 +1,2 @@
 # Locally generated
-sha256  121750e9ae0f05ce840ab8dbefdae1297258f0a69dd1967f55c40ac6e87d5ee9  tslib-1.1.tar.gz
+sha256  b6450f4d1bc8f4fbbb796a2d1210aee3ccf9ecf302a368dddf279c63eb634833  tslib-1.2.tar.gz
index 1100247905675d1d78eba2cb426e253f855d944e..6437f60c3d7a5890bf7877eac9aa01b76c1cd488 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-TSLIB_VERSION = 1.1
+TSLIB_VERSION = 1.2
 TSLIB_SITE = https://github.com/kergoth/tslib/releases/download/$(TSLIB_VERSION)
 TSLIB_LICENSE = GPL, LGPL
 TSLIB_LICENSE_FILES = COPYING
index db60dabf99b9b15803ff5dd71701503eabd16fd2..5b2c3bf49367a2082f750c745d41eccbb57cda11 100644 (file)
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256  95728e89dd476d17428f94080752ab48884be477b6a678941582aeef618b70bb  u-boot-2016.09.01.tar.bz2
+sha256  45813e6565dcc0436abe6752624324cdbf5f3ac106570d76d32b46ec529bcdc8  u-boot-2016.11.tar.bz2
index a3335a5e845db9f6300ef47363becbf17276d9d6..bb0cba8782a6277fb366c5f842be1abc181845da 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-UBOOT_TOOLS_VERSION = 2016.09.01
+UBOOT_TOOLS_VERSION = 2016.11
 UBOOT_TOOLS_SOURCE = u-boot-$(UBOOT_TOOLS_VERSION).tar.bz2
 UBOOT_TOOLS_SITE = ftp://ftp.denx.de/pub/u-boot
 UBOOT_TOOLS_LICENSE = GPLv2+
diff --git a/package/uclibc-ng-test/Config.in b/package/uclibc-ng-test/Config.in
new file mode 100644 (file)
index 0000000..0f093d1
--- /dev/null
@@ -0,0 +1,22 @@
+config BR2_PACKAGE_UCLIBC_NG_TEST
+       bool "uclibc-ng-test"
+       help
+         Enabling this option will compile and install the uClibc-ng
+         test suite. This is useful if you want to check if the
+         uClibc-ng library is working for your architecture and/or
+         help developing uClibc-ng.
+
+         The test suite will be installed into
+         /usr/lib/uclibc-ng-test directory. To run the test suite
+         enter the /usr/lib/uclibc-ng-test/test directory and type
+         "sh uclibcng-testrunner.sh".
+
+         See the /usr/lib/uclibc-ng-test/test/README for additional
+         information.
+
+         This is not needed at all for normal builds, so you can
+         safely say no if you do not plan to dig into your C library.
+
+         The tests can also be used for GNU libc or musl.
+
+         http://www.uclibc-ng.org
diff --git a/package/uclibc-ng-test/uclibc-ng-test.mk b/package/uclibc-ng-test/uclibc-ng-test.mk
new file mode 100644 (file)
index 0000000..f6700a9
--- /dev/null
@@ -0,0 +1,45 @@
+################################################################################
+#
+# uclibc-ng-test
+#
+################################################################################
+
+UCLIBC_NG_TEST_VERSION = 4ad1c23ae2eb30888cda520c739cc26150512487
+UCLIBC_NG_TEST_SITE = git://uclibc-ng.org/git/uclibc-ng-test
+UCLIBC_NG_TEST_LICENSE = LGPLv2.1+
+UCLIBC_NG_TEST_LICENSE_FILES = COPYING.LIB
+
+ifeq ($(BR2_USE_WCHAR),)
+UCLIBC_NG_TEST_MAKE_ENV += NO_WCHAR=1
+endif
+ifeq ($(BR2_ENABLE_LOCALE),)
+UCLIBC_NG_TEST_MAKE_ENV += NO_LOCALE=1
+endif
+ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),)
+UCLIBC_NG_TEST_MAKE_ENV += NO_TLS=1 NO_THREADS=1
+endif
+ifeq ($(BR2_TOOLCHAIN_HAS_THREADS_NPTL),)
+UCLIBC_NG_TEST_MAKE_ENV += NO_TLS=1 NO_NPTL=1
+endif
+# most NPTL/TLS tests use dlopen
+ifeq ($(BR2_STATIC_LIBS),y)
+UCLIBC_NG_TEST_MAKE_ENV += NO_TLS=1 NO_NPTL=1 NO_DL=1
+endif
+
+# to execute tests in a deterministic order, call test_gen separately
+define UCLIBC_NG_TEST_BUILD_CMDS
+       $(TARGET_MAKE_ENV) $(UCLIBC_NG_TEST_MAKE_ENV) $(MAKE) -C $(@D) \
+               CC="$(TARGET_CC)" \
+               UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+               test_compile
+       $(TARGET_MAKE_ENV) $(UCLIBC_NG_TEST_MAKE_ENV) $(MAKE1) -C $(@D) \
+               CC="$(TARGET_CC)" \
+               UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+               test_gen
+endef
+
+define UCLIBC_NG_TEST_INSTALL_TARGET_CMDS
+        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR="$(TARGET_DIR)" install
+endef
+
+$(eval $(generic-package))
diff --git a/package/uhttpd/Config.in b/package/uhttpd/Config.in
new file mode 100644 (file)
index 0000000..e463b93
--- /dev/null
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_UHTTPD
+       bool "uhttpd"
+       depends on !BR2_STATIC_LIBS # dlopen()
+       depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
+       depends on BR2_USE_MMU # fork()
+       select BR2_PACKAGE_LIBUBOX
+       select BR2_PACKAGE_JSON_C
+       help
+         uHTTPd is a tiny single threaded HTTP server with TLS, CGI and Lua
+         support. It is intended as a drop-in replacement for the Busybox
+         HTTP daemon.
+
+         https://wiki.openwrt.org/doc/howto/http.uhttpd
+
+comment "uhttpd needs a toolchain w/ dynamic library"
+       depends on BR2_TOOLCHAIN_HAS_SYNC_4
+       depends on BR2_USE_MMU
+       depends on BR2_STATIC_LIBS
diff --git a/package/uhttpd/uhttpd.hash b/package/uhttpd/uhttpd.hash
new file mode 100644 (file)
index 0000000..59e54ad
--- /dev/null
@@ -0,0 +1,2 @@
+# No hash for this git snapshot
+none   xxx     uhttpd-59e0c739634f46a164d939e54416287b91ff8a9b.tar.gz
diff --git a/package/uhttpd/uhttpd.mk b/package/uhttpd/uhttpd.mk
new file mode 100644 (file)
index 0000000..be0d7d6
--- /dev/null
@@ -0,0 +1,35 @@
+################################################################################
+#
+# uhttpd
+#
+################################################################################
+
+UHTTPD_VERSION = 59e0c739634f46a164d939e54416287b91ff8a9b
+UHTTPD_SITE = http://git.openwrt.org/project/uhttpd.git
+UHTTPD_SITE_METHOD = git
+UHTTPD_LICENSE = ISC
+UHTTPD_LICENSE_FILES = uhttpd.h
+UHTTPD_DEPENDENCIES = libubox json-c
+
+ifeq ($(BR2_PACKAGE_LUA_5_1),y)
+UHTTPD_DEPENDENCIES += lua
+UHTTPD_CONF_OPTS += -DLUA_SUPPORT=ON
+else
+UHTTPD_CONF_OPTS += -DLUA_SUPPORT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_USTREAM_SSL),y)
+UHTTPD_DEPENDENCIES += ustream-ssl
+UHTTPD_CONF_OPTS += -DTLS_SUPPORT=ON
+else
+UHTTPD_CONF_OPTS += -DTLS_SUPPORT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_UBUS),y)
+UHTTPD_DEPENDENCIES += ubus
+UHTTPD_CONF_OPTS += -DUBUS_SUPPORT=ON
+else
+UHTTPD_CONF_OPTS += -DUBUS_SUPPORT=OFF
+endif
+
+$(eval $(cmake-package))
diff --git a/package/ustream-ssl/Config.in b/package/ustream-ssl/Config.in
new file mode 100644 (file)
index 0000000..540e436
--- /dev/null
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_USTREAM_SSL
+       bool "ustream-ssl"
+       depends on !BR2_STATIC_LIBS #libubox
+       select BR2_PACKAGE_LIBUBOX
+       select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_MBEDTLS
+       help
+         ustream SSL wrapper
+
+         https://git.openwrt.org/?p=project/ustream-ssl.git;a=summary
+
+comment "ustream-ssl needs a toolchain w/ dynamic library"
+       depends on BR2_STATIC_LIBS
diff --git a/package/ustream-ssl/ustream-ssl.mk b/package/ustream-ssl/ustream-ssl.mk
new file mode 100644 (file)
index 0000000..b83d129
--- /dev/null
@@ -0,0 +1,21 @@
+################################################################################
+#
+# ustream-ssl
+#
+################################################################################
+
+USTREAM_SSL_VERSION = ec80adaa1b47f28d426fa19c692011ce60b992d6
+USTREAM_SSL_SITE = git://git.openwrt.org/project/ustream-ssl.git
+USTREAM_SSL_LICENSE = ISC
+USTREAM_SSL_LICENSE_FILES = ustream-ssl.h
+USTREAM_SSL_INSTALL_STAGING = YES
+USTREAM_SSL_DEPENDENCIES = libubox
+
+ifeq ($(BR2_PACKAGE_MBEDTLS),y)
+USTREAM_SSL_DEPENDENCIES += mbedtls
+USTREAM_SSL_CONF_OPTS += -DMBEDTLS=ON
+else
+USTREAM_SSL_DEPENDENCIES += openssl
+endif
+
+$(eval $(cmake-package))
index 95566d13171eda90aead6f1c74edfff23583cc01..b5abcc3b01b957d20bd6dd248ddbbffb34fcbd52 100644 (file)
@@ -1,2 +1,2 @@
-# From https://download.gnome.org/sources/vala/0.34/vala-0.34.2.sha256sum
-sha256 765e9c2b429a66db93247940f8588319b43f35c173d057bcae5717a97d765c41        vala-0.34.2.tar.xz
+# From https://download.gnome.org/sources/vala/0.34/vala-0.34.3.sha256sum
+sha256 f0fad71aca03cdeadf749ca47f56296a4ddd1a25f4e2f09f0ff9e1e3afbcac3f  vala-0.34.3.tar.xz
index a208bdc8cb9f48e8bc4b0ad1eb4c22a5685c1a61..6eaa7c40f0030c926fd10e16b00024bb65790c14 100644 (file)
@@ -5,7 +5,7 @@
 ################################################################################
 
 VALA_VERSION_MAJOR = 0.34
-VALA_VERSION = $(VALA_VERSION_MAJOR).2
+VALA_VERSION = $(VALA_VERSION_MAJOR).3
 VALA_SITE = http://download.gnome.org/sources/vala/$(VALA_VERSION_MAJOR)
 VALA_SOURCE = vala-$(VALA_VERSION).tar.xz
 VALA_LICENSE = LGPLv2.1+
index 79a06d8b3fe66691584201ec46eb7ba836728878..02715b080a03ae9b4abf9ecb17e0ff6ec4c23641 100644 (file)
@@ -1,6 +1,10 @@
+config BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS
+       bool
+       default y if BR2_arm || BR2_i386 || BR2_x86_64
+
 config BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING
        bool "webrtc-audio-processing"
-       depends on BR2_arm || BR2_i386 || BR2_x86_64
+       depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS
        depends on BR2_INSTALL_LIBSTDCPP
        depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
        # pthread_condattr_setclock
@@ -12,6 +16,6 @@ config BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING
          http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/
 
 comment "webrtc-audio-processing needs a toolchain w/ C++, NPTL, gcc >= 4.8"
-       depends on BR2_arm || BR2_i386 || BR2_x86_64
+       depends on BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING_ARCH_SUPPORTS
        depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL \
                || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
index d9a0ecf8510932a2de24fe10843d7ef110295aa6..47ba90a2142ba04783989ccc3165b7f9c4c6e6b7 100644 (file)
@@ -34,7 +34,7 @@ WINE_CONF_OPTS = \
 # wrapper believes what the real gcc is named, and force the tuple of
 # the external toolchain, not the one we compute in GNU_TARGET_NAME.
 ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
-WINE_CONF_OPTS += TARGETFLAGS="-b $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))"
+WINE_CONF_OPTS += TARGETFLAGS="-b $(TOOLCHAIN_EXTERNAL_PREFIX)"
 endif
 
 ifeq ($(BR2_PACKAGE_ALSA_LIB)$(BR2_PACKAGE_ALSA_LIB_SEQ)$(BR2_PACKAGE_ALSA_LIB_RAWMIDI),yyy)
index 454541fdce71276b4cf0d256fba8499ab8bb2fe0..9250a3b20010f75e528cd686ab2be54888ce81c5 100644 (file)
@@ -45,6 +45,13 @@ config BR2_PACKAGE_WPA_SUPPLICANT_WIFI_DISPLAY
        help
          Enable support for Wi-Fi Display
 
+config BR2_PACKAGE_WPA_SUPPLICANT_MESH_NETWORKING
+       bool "Enable mesh networking"
+       depends on BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT
+       help
+         Enable support for open and secured mesh networking
+         (IEEE 802.11s)
+
 config BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN
        bool "Enable autoscan"
        help
index 3c3317b1224e6642a9cb9f5eec69929f45f24657..9c8414b56828a38c89c5f47df3acbf2e77b168d4 100644 (file)
@@ -73,6 +73,11 @@ ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_WIFI_DISPLAY),y)
 WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_WIFI_DISPLAY
 endif
 
+ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_MESH_NETWORKING),y)
+WPA_SUPPLICANT_CONFIG_SET += CONFIG_MESH
+WPA_SUPPLICANT_CONFIG_ENABLE += CONFIG_IEEE80211W
+endif
+
 ifeq ($(BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN),y)
 WPA_SUPPLICANT_CONFIG_ENABLE += \
        CONFIG_AUTOSCAN_EXPONENTIAL \
index 5fac77e689440d27124d15e3f1faf6aa5e51957a..feec2d37779c796c10092616e7ec421adff8adfd 100644 (file)
@@ -1,2 +1,2 @@
-# From http://lists.x.org/archives/xorg-announce/2013-January/002136.html
-sha1   61658b8d829fdaed6064c7c26232c3884d359187        xf86-input-joystick-1.6.2.tar.bz2
+# From https://lists.x.org/archives/xorg-announce/2016-November/002742.html
+sha256 9e7669ecf0f23b8e5dc39d5397cf28296f692aa4c0e4255f5e02816612c18eab  xf86-input-joystick-1.6.3.tar.bz2
index 76f257727f4de588b5204c2f9f8566aa1fc3c164..5bc2a5cafb7c1314d8aac9e301be03739c6f29b1 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_INPUT_JOYSTICK_VERSION = 1.6.2
+XDRIVER_XF86_INPUT_JOYSTICK_VERSION = 1.6.3
 XDRIVER_XF86_INPUT_JOYSTICK_SOURCE = xf86-input-joystick-$(XDRIVER_XF86_INPUT_JOYSTICK_VERSION).tar.bz2
 XDRIVER_XF86_INPUT_JOYSTICK_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_INPUT_JOYSTICK_LICENSE = MIT
index 11fcc601d7943356a9f82235bb7a3562dee1749b..eccfa74dc80e4c011130404869447c15dc675e08 100644 (file)
@@ -1,2 +1,2 @@
-# From http://lists.x.org/archives/xorg-announce/2015-April/002559.html
-sha256 1ac8ff39bf9da7d2fc7fd6c24515726e8138340c0518ab8c606e008cf93ca211        xf86-input-keyboard-1.8.1.tar.bz2
+# From https://lists.x.org/archives/xorg-announce/2016-November/002739.html
+sha256 f7c900f21752683402992b288d5a2826de7a6c0c0abac2aadd7e8a409e170388  xf86-input-keyboard-1.9.0.tar.bz2
index eb2d58287f6ad7bf32f1239d67d29024e314bf26..01a6859cd4696dfe32e2cab6aa88a90f51542a1e 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_INPUT_KEYBOARD_VERSION = 1.8.1
+XDRIVER_XF86_INPUT_KEYBOARD_VERSION = 1.9.0
 XDRIVER_XF86_INPUT_KEYBOARD_SOURCE = xf86-input-keyboard-$(XDRIVER_XF86_INPUT_KEYBOARD_VERSION).tar.bz2
 XDRIVER_XF86_INPUT_KEYBOARD_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_INPUT_KEYBOARD_LICENSE = MIT
index 5a62d131786f306a07323e06a3c3d0ea68268fa2..caba427b22019a1bc933d02c04d9a834365dbe02 100644 (file)
@@ -1,2 +1,2 @@
-# From http://lists.x.org/archives/xorg-announce/2014-August/002471.html
-sha256 3485d375779c08406f0789feedde15933dc703158a086ddac638598f479fc5ce        xf86-input-mouse-1.9.1.tar.bz2
+# From https://lists.x.org/archives/xorg-announce/2016-November/002740.html
+sha256 f425d5b05c6ab412a27e0a1106bb83f9e2662b307210abbe48270892387f4b2f  xf86-input-mouse-1.9.2.tar.bz2
index e1bd81a55f8c2066aa801fe3abbea2812cdbb14e..5bcbeb70fda66447ec493fe330c599597ff58cef 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_INPUT_MOUSE_VERSION = 1.9.1
+XDRIVER_XF86_INPUT_MOUSE_VERSION = 1.9.2
 XDRIVER_XF86_INPUT_MOUSE_SOURCE = xf86-input-mouse-$(XDRIVER_XF86_INPUT_MOUSE_VERSION).tar.bz2
 XDRIVER_XF86_INPUT_MOUSE_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_INPUT_MOUSE_LICENSE = MIT
index 3cb07580897a154f9532d33dbe457aa749f3069c..2c31600b0a87ba601bc4c76e0dc5c74d1aec5a96 100644 (file)
@@ -1,2 +1,2 @@
-# From http://lists.x.org/archives/xorg-announce/2015-November/002652.html
-sha256 d39f100c74f3673778b53f17bab7690161925e25dd998a15dd8cc69b52e83f01        xf86-input-synaptics-1.8.3.tar.bz2
+# From https://lists.x.org/archives/xorg-announce/2016-November/002744.html
+sha256 afba3289d7a40217a19d90db98ce181772f9ca6d77e1898727b0afcf02073b5a  xf86-input-synaptics-1.9.0.tar.bz2
index d6164d0daf201a5d8e0f65536fe671d45d4b0746..6bd9cc49c5251361a627e552176eb95821e0c51c 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_INPUT_SYNAPTICS_VERSION = 1.8.3
+XDRIVER_XF86_INPUT_SYNAPTICS_VERSION = 1.9.0
 XDRIVER_XF86_INPUT_SYNAPTICS_SOURCE = xf86-input-synaptics-$(XDRIVER_XF86_INPUT_SYNAPTICS_VERSION).tar.bz2
 XDRIVER_XF86_INPUT_SYNAPTICS_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_INPUT_SYNAPTICS_LICENSE = MIT
index 816f0754bdde9ac22d109c978f904916c00c785f..32ff1646d1e72f6d949ff4290e9eeeda76899e80 100644 (file)
@@ -1,2 +1,2 @@
-# From https://lists.x.org/archives/xorg-announce/2016-September/002708.html
-sha256 6ee87fed6d70d12353ca7ac02f8321a30d770626bf56f62f0e27970a33690779  xf86-video-amdgpu-1.1.2.tar.bz2
+# From https://lists.x.org/archives/xorg-announce/2016-November/002741.html
+sha256 275b1aac5f127f55ba3d7480a1df89eace1d02650e24e46908067fc875e76c8f  xf86-video-amdgpu-1.2.0.tar.bz2
index 4e12e1206300dcbcb36555fae5825f562c699840..d858e1409606ab7ba7dd5850bfa2bf10ff88c31d 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_AMDGPU_VERSION = 1.1.2
+XDRIVER_XF86_VIDEO_AMDGPU_VERSION = 1.2.0
 XDRIVER_XF86_VIDEO_AMDGPU_SOURCE = xf86-video-amdgpu-$(XDRIVER_XF86_VIDEO_AMDGPU_VERSION).tar.bz2
 XDRIVER_XF86_VIDEO_AMDGPU_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_VIDEO_AMDGPU_LICENSE = MIT
index 469e0572bb8927efe306099bdf533bf256723277..fe5ae0ea70460ac10d558e51a697e26eff2f4e36 100644 (file)
@@ -1,2 +1,2 @@
-# From https://lists.x.org/archives/xorg-announce/2016-September/002707.html
-sha256 00a58588db62ee309095c5c5920bbd248d965e8627f88affe68a73b18865078d  xf86-video-ati-7.7.1.tar.bz2
+# From https://lists.x.org/archives/xorg-announce/2016-November/002738.html
+sha256 401f5de772928f3dc4ce43a885adb0a47a2f61aa4a9e45d2ab3d184136a9d6fa  xf86-video-ati-7.8.0.tar.bz2
index 02a457b067c75e91f9e737e5285f756d260fbe28..ea701672c267b73f71e7b460f08430b452a45eaf 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_ATI_VERSION = 7.7.1
+XDRIVER_XF86_VIDEO_ATI_VERSION = 7.8.0
 XDRIVER_XF86_VIDEO_ATI_SOURCE = xf86-video-ati-$(XDRIVER_XF86_VIDEO_ATI_VERSION).tar.bz2
 XDRIVER_XF86_VIDEO_ATI_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_VIDEO_ATI_LICENSE = MIT
diff --git a/package/x11r7/xdriver_xf86-video-glint/0002-abi23.patch b/package/x11r7/xdriver_xf86-video-glint/0002-abi23.patch
new file mode 100644 (file)
index 0000000..1d8f7f2
--- /dev/null
@@ -0,0 +1,33 @@
+From 2eb4d03d2280deec4d6f1b06aaa16477a641af9a Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 19 Jul 2016 10:03:56 -0400
+Subject: Adapt Block/WakeupHandler signature for ABI 23
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Downloaded from:
+https://cgit.freedesktop.org/xorg/driver/xf86-video-glint/commit/?id=2eb4d03d2280deec4d6f1b06aaa16477a641af9a
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index 6bc946f..89976e4 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -75,8 +75,13 @@
+ #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
++#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout
++#define BLOCKHANDLER_ARGS arg, pTimeout
++#else
+ #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
+ #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
++#endif
+ #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
+ #define CLOSE_SCREEN_ARGS pScreen
+-- 
+cgit v0.10.2
+
diff --git a/package/x11r7/xdriver_xf86-video-mga/0002-abi23.patch b/package/x11r7/xdriver_xf86-video-mga/0002-abi23.patch
new file mode 100644 (file)
index 0000000..b2b6917
--- /dev/null
@@ -0,0 +1,33 @@
+From df094bfffe4ef097bfd9a569f2d2e35649c1a3c7 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 19 Jul 2016 10:03:56 -0400
+Subject: Adapt Block/WakeupHandler signature for ABI 23
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Downloaded from
+https://cgit.freedesktop.org/xorg/driver/xf86-video-mga/commit/?id=df094bfffe4ef097bfd9a569f2d2e35649c1a3c7
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index 6bc946f..89976e4 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -75,8 +75,13 @@
+ #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
++#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout
++#define BLOCKHANDLER_ARGS arg, pTimeout
++#else
+ #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
+ #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
++#endif
+ #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
+ #define CLOSE_SCREEN_ARGS pScreen
+-- 
+cgit v0.10.2
+
diff --git a/package/x11r7/xdriver_xf86-video-nv/0002-abi23.patch b/package/x11r7/xdriver_xf86-video-nv/0002-abi23.patch
new file mode 100644 (file)
index 0000000..7b7bb34
--- /dev/null
@@ -0,0 +1,39 @@
+From 42e260a7ab630fdfa4664f467dad25e7178ff809 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 19 Jul 2016 10:03:56 -0400
+Subject: Adapt Block/WakeupHandler signature for ABI 23
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Downloaded from
+https://cgit.freedesktop.org/xorg/driver/xf86-video-nv/commit/?id=42e260a7ab630fdfa4664f467dad25e7178ff809
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index 0a87cf5..62d9481 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -78,11 +78,19 @@
+ #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
++#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout
++#define BLOCKHANDLER_ARGS arg, pTimeout
++
++#define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, unsigned long result
++#define WAKEUPHANDLER_ARGS arg, result
++#else
+ #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
+ #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
+ #define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, unsigned long result, pointer read_mask
+ #define WAKEUPHANDLER_ARGS arg, result, read_mask
++#endif
+ #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
+ #define CLOSE_SCREEN_ARGS pScreen
+-- 
+cgit v0.10.2
+
index b3aef580ba43408ed401d4016d044a8ec6448257..2d29fae3a75457d696acfca77cf8046542ed6187 100644 (file)
@@ -1,2 +1,2 @@
-# Locally computed
-sha256 73e7966d01d0d644d3b9204e8bfc106cb99069c58e981626e7352f2693e3e927        xf86-video-openchrome-0.4.0.tar.bz2
+# From https://lists.freedesktop.org/archives/openchrome-devel/2016-July/002890.html
+sha1 9c7ad349de6dd350252ccda8da56fa1e2a6afa32  xf86-video-openchrome-0.5.0.tar.bz2
index 83c12b2055f85b66540fb6cc67258f5406568bf6..9ab032b6bc5feb34b2a3ab80c660e88df5838217 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_OPENCHROME_VERSION = 0.4.0
+XDRIVER_XF86_VIDEO_OPENCHROME_VERSION = 0.5.0
 XDRIVER_XF86_VIDEO_OPENCHROME_SOURCE = xf86-video-openchrome-$(XDRIVER_XF86_VIDEO_OPENCHROME_VERSION).tar.bz2
 XDRIVER_XF86_VIDEO_OPENCHROME_SITE = http://xorg.freedesktop.org/archive/individual/driver
 XDRIVER_XF86_VIDEO_OPENCHROME_LICENSE = MIT
diff --git a/package/x11r7/xdriver_xf86-video-qxl/0001-systemincludes.patch b/package/x11r7/xdriver_xf86-video-qxl/0001-systemincludes.patch
new file mode 100644 (file)
index 0000000..0c681f2
--- /dev/null
@@ -0,0 +1,39 @@
+From 83e00bb5f9b74c0d7059c189d747ec3c24c7798a Mon Sep 17 00:00:00 2001
+From: Christophe Fergeau <cfergeau@redhat.com>
+Date: Tue, 4 Aug 2015 17:36:12 +0200
+Subject: Use <> for system-includes
+
+These headers come from /usr/include/xorg/ so it's clearer if they are
+included using <>. While at it, I've reordered them alphabetically.
+---
+Downloaded from
+https://cgit.freedesktop.org/xorg/driver/xf86-video-qxl/commit/?id=83e00bb5f9b74c0d7059c189d747ec3c24c7798a
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/src/uxa/uxa-damage.c b/src/uxa/uxa-damage.c
+index 3e4c075..6201712 100644
+--- a/src/uxa/uxa-damage.c
++++ b/src/uxa/uxa-damage.c
+@@ -27,12 +27,13 @@
+ #include <stdlib.h>
+ #include "uxa-priv.h"
++#include    <dixfontstr.h>
++#include    <gcstruct.h>
++#include    <picturestr.h>
++#include    <scrnintstr.h>
++#include    <windowstr.h>
+ #include    <X11/X.h>
+-#include    "scrnintstr.h"
+-#include    "windowstr.h"
+-#include    "dixfontstr.h"
+-#include    "gcstruct.h"
+-#include    "picturestr.h"
++
+ #include    "uxa-damage.h"
+ typedef struct _damageGCPriv {
+-- 
+cgit v0.10.2
+
diff --git a/package/x11r7/xdriver_xf86-video-qxl/0002-xserverfix.patch b/package/x11r7/xdriver_xf86-video-qxl/0002-xserverfix.patch
new file mode 100644 (file)
index 0000000..c38d42e
--- /dev/null
@@ -0,0 +1,51 @@
+From a184774ad161031cceed264d62d48ebd019ac800 Mon Sep 17 00:00:00 2001
+From: Christophe Fergeau <cfergeau@redhat.com>
+Date: Mon, 3 Aug 2015 20:12:05 +0200
+Subject: Fix compilation with newer Xorg versions
+
+Xorg 1.18 stopped exporting some xfont related symbols in its
+headers/shared libraries, which causes QXL to fail to build:
+
+uxa-damage.c:947:5: error: implicit declaration of function 'QueryGlyphExtents' [-Werror=implicit-function-declaration]
+     QueryGlyphExtents(font, charinfo, n, &extents);
+
+The missing definition can be found in xfont, so this commit addes the
+needed configure.ac checks and includes.
+Note that dixfontstr.h must be included before the xfont headers or this
+will cause compile-time warnings on older Xorg versions (eg 1.17)
+---
+Downloaded from
+https://cgit.freedesktop.org/xorg/driver/xf86-video-qxl/commit/?id=a184774ad161031cceed264d62d48ebd019ac800
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/configure.ac b/configure.ac
+index 6555a8d..7e95b01 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -61,7 +61,7 @@ XORG_DRIVER_CHECK_EXT(XV, videoproto)
+ XORG_DRIVER_CHECK_EXT(XFreeXDGA, xf86dgaproto)
+ # Obtain compiler/linker options for the driver dependencies
+-PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901] xproto fontsproto $REQUIRED_MODULES)
++PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901] xproto fontsproto xfont $REQUIRED_MODULES)
+ save_CFLAGS="$CFLAGS"
+diff --git a/src/uxa/uxa-damage.c b/src/uxa/uxa-damage.c
+index 6201712..a6d1ee3 100644
+--- a/src/uxa/uxa-damage.c
++++ b/src/uxa/uxa-damage.c
+@@ -33,6 +33,9 @@
+ #include    <scrnintstr.h>
+ #include    <windowstr.h>
+ #include    <X11/X.h>
++#include    <X11/fonts/font.h>
++#include    <X11/fonts/fontstruct.h>
++#include    <X11/fonts/fontutil.h>
+ #include    "uxa-damage.h"
+-- 
+cgit v0.10.2
+
index 5f05f6876b598e2bacfecde5bbd02e9df0e25415..04bde0f8247204e1c4914d3503eede4a085251bf 100644 (file)
@@ -4,6 +4,7 @@ config BR2_PACKAGE_XDRIVER_XF86_VIDEO_QXL
        select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_HAS_UDEV # for KMS
        select BR2_PACKAGE_LIBPCIACCESS
        select BR2_PACKAGE_SPICE_PROTOCOL
+       select BR2_PACKAGE_XLIB_LIBXFONT
        select BR2_PACKAGE_XPROTO_FONTSPROTO
        select BR2_PACKAGE_XPROTO_XPROTO
        help
index ddc4191a472a3153494b355f6108c6a6e2e70c5b..30cd7a20c28c3f7c103580cffdcf7e66b4d0a47c 100644 (file)
@@ -7,6 +7,8 @@
 XDRIVER_XF86_VIDEO_QXL_VERSION = 0.1.4
 XDRIVER_XF86_VIDEO_QXL_SOURCE = xf86-video-qxl-$(XDRIVER_XF86_VIDEO_QXL_VERSION).tar.bz2
 XDRIVER_XF86_VIDEO_QXL_SITE = http://xorg.freedesktop.org/releases/individual/driver
+# 0002-xserverfix.patch
+XDRIVER_XF86_VIDEO_QXL_AUTORECONF = YES
 XDRIVER_XF86_VIDEO_QXL_LICENSE = MIT
 XDRIVER_XF86_VIDEO_QXL_LICENSE_FILES = COPYING
 
@@ -16,6 +18,7 @@ XDRIVER_XF86_VIDEO_QXL_CONF_OPTS = \
 XDRIVER_XF86_VIDEO_QXL_DEPENDENCIES = \
        libpciaccess \
        spice-protocol \
+       xlib_libXfont \
        xproto_fontsproto \
        xproto_xproto \
        xserver_xorg-server
diff --git a/package/x11r7/xdriver_xf86-video-r128/0002-abi23.patch b/package/x11r7/xdriver_xf86-video-r128/0002-abi23.patch
new file mode 100644 (file)
index 0000000..e79ffdf
--- /dev/null
@@ -0,0 +1,33 @@
+From 5ab23b3a8ef18ab9ff96ac8be174380d36e185e5 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 19 Jul 2016 10:03:56 -0400
+Subject: Adapt Block/WakeupHandler signature for ABI 23
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Downloaded from
+https://cgit.freedesktop.org/xorg/driver/xf86-video-r128/commit/?id=5ab23b3a8ef18ab9ff96ac8be174380d36e185e5
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index 6bc946f..89976e4 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -75,8 +75,13 @@
+ #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
++#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout
++#define BLOCKHANDLER_ARGS arg, pTimeout
++#else
+ #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
+ #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
++#endif
+ #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
+ #define CLOSE_SCREEN_ARGS pScreen
+-- 
+cgit v0.10.2
+
diff --git a/package/x11r7/xdriver_xf86-video-savage/0002-abi23.patch b/package/x11r7/xdriver_xf86-video-savage/0002-abi23.patch
new file mode 100644 (file)
index 0000000..2487585
--- /dev/null
@@ -0,0 +1,39 @@
+From de3e1803314820968502156703d5bfe3fab24972 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 19 Jul 2016 10:03:56 -0400
+Subject: Adapt Block/WakeupHandler signature for ABI 23
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Downloaded from
+https://cgit.freedesktop.org/xorg/driver/xf86-video-savage/commit/?id=de3e1803314820968502156703d5bfe3fab24972
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index 98ba435..44daea4 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -78,11 +78,19 @@
+ #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
++#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout
++#define BLOCKHANDLER_ARGS arg, pTimeout
++
++#define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, unsigned long result
++#define WAKEUPHANDLER_ARGS arg, result
++#else
+ #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
+ #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
+ #define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, unsigned long result, pointer read_mask
+ #define WAKEUPHANDLER_ARGS arg, result, read_mask
++#endif
+ #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
+ #define CLOSE_SCREEN_ARGS pScreen
+-- 
+cgit v0.10.2
+
diff --git a/package/x11r7/xdriver_xf86-video-siliconmotion/0001-abi23.patch b/package/x11r7/xdriver_xf86-video-siliconmotion/0001-abi23.patch
new file mode 100644 (file)
index 0000000..2cd6e63
--- /dev/null
@@ -0,0 +1,33 @@
+From e67f3949648c20e16ac756ae28ea4a2b4a1d0f4c Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 19 Jul 2016 10:03:56 -0400
+Subject: Adapt Block/WakeupHandler signature for ABI 23
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Downloaded from
+https://cgit.freedesktop.org/xorg/driver/xf86-video-siliconmotion/patch/?id=e67f3949648c20e16ac756ae28ea4a2b4a1d0f4c
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index 6bc946f..89976e4 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -75,8 +75,13 @@
+ #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
++#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout
++#define BLOCKHANDLER_ARGS arg, pTimeout
++#else
+ #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
+ #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
++#endif
+ #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
+ #define CLOSE_SCREEN_ARGS pScreen
+-- 
+cgit v0.10.2
+
diff --git a/package/x11r7/xdriver_xf86-video-sis/0002-abi23.patch b/package/x11r7/xdriver_xf86-video-sis/0002-abi23.patch
new file mode 100644 (file)
index 0000000..109f745
--- /dev/null
@@ -0,0 +1,33 @@
+From 96fee560cd8bf7bf27048ce5fe67b7af6838c8d0 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 19 Jul 2016 10:03:56 -0400
+Subject: Adapt Block/WakeupHandler signature for ABI 23
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Downloaded from
+https://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=96fee560cd8bf7bf27048ce5fe67b7af6838c8d0
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index 6bc946f..89976e4 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -75,8 +75,13 @@
+ #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
++#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout
++#define BLOCKHANDLER_ARGS arg, pTimeout
++#else
+ #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
+ #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
++#endif
+ #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
+ #define CLOSE_SCREEN_ARGS pScreen
+-- 
+cgit v0.10.2
+
diff --git a/package/x11r7/xdriver_xf86-video-tdfx/0002-abi23.patch b/package/x11r7/xdriver_xf86-video-tdfx/0002-abi23.patch
new file mode 100644 (file)
index 0000000..7e5d650
--- /dev/null
@@ -0,0 +1,39 @@
+From b99390efcb55d7d4a68e8c595119c1af4426fc0b Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 19 Jul 2016 10:03:56 -0400
+Subject: Adapt Block/WakeupHandler signature for ABI 23
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Downloaded from
+https://cgit.freedesktop.org/xorg/driver/xf86-video-tdfx/patch/?id=b99390efcb55d7d4a68e8c595119c1af4426fc0b
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index 98ba435..44daea4 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -78,11 +78,19 @@
+ #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
++#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout
++#define BLOCKHANDLER_ARGS arg, pTimeout
++
++#define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, unsigned long result
++#define WAKEUPHANDLER_ARGS arg, result
++#else
+ #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
+ #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
+ #define WAKEUPHANDLER_ARGS_DECL ScreenPtr arg, unsigned long result, pointer read_mask
+ #define WAKEUPHANDLER_ARGS arg, result, read_mask
++#endif
+ #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
+ #define CLOSE_SCREEN_ARGS pScreen
+-- 
+cgit v0.10.2
+
diff --git a/package/x11r7/xdriver_xf86-video-trident/0001-abi23.patch b/package/x11r7/xdriver_xf86-video-trident/0001-abi23.patch
new file mode 100644 (file)
index 0000000..d9aecd5
--- /dev/null
@@ -0,0 +1,33 @@
+From b5f4d35327863a14224d2a63885cd8b3b83a1815 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 19 Jul 2016 10:03:56 -0400
+Subject: Adapt Block/WakeupHandler signature for ABI 23
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+Downloaded from
+https://cgit.freedesktop.org/xorg/driver/xf86-video-trident/patch/?id=b5f4d35327863a14224d2a63885cd8b3b83a1815
+
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index 6bc946f..89976e4 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -75,8 +75,13 @@
+ #define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
++#if ABI_VIDEODRV_VERSION >= SET_ABI_VERSION(23, 0)
++#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout
++#define BLOCKHANDLER_ARGS arg, pTimeout
++#else
+ #define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
+ #define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
++#endif
+ #define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
+ #define CLOSE_SCREEN_ARGS pScreen
+-- 
+cgit v0.10.2
+
index 10d31d02fcc066c8bec1ccd01dda1ec638e27dd3..8d948a7d4c7a0eb52ff242ec9fa4b29dac13acdd 100644 (file)
@@ -1,2 +1,2 @@
-# From http://lists.x.org/archives/xorg-announce/2015-January/002521.html
-sha256 3c1d244e4b1b77e92126957965cdc9fb82de4c215c0706a3a8aaff6939e4a0cc        xf86-video-vmware-13.1.0.tar.bz2
+# From https://lists.x.org/archives/xorg-announce/2016-November/002743.html
+sha256 e2f7f7101fba7f53b268e7a25908babbf155b3984fb5268b3d244eb6c11bf62b  xf86-video-vmware-13.2.1.tar.bz2
index ea4dd48215554d6ac79500684563ca9cf648579c..ef262f8942d91a6fac9b6038eca892e30a839e41 100644 (file)
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-XDRIVER_XF86_VIDEO_VMWARE_VERSION = 13.1.0
+XDRIVER_XF86_VIDEO_VMWARE_VERSION = 13.2.1
 XDRIVER_XF86_VIDEO_VMWARE_SOURCE = xf86-video-vmware-$(XDRIVER_XF86_VIDEO_VMWARE_VERSION).tar.bz2
 XDRIVER_XF86_VIDEO_VMWARE_SITE = http://xorg.freedesktop.org/releases/individual/driver
 XDRIVER_XF86_VIDEO_VMWARE_LICENSE = MIT
index 7bf2319f2620c5099bbb6b7cf6f1114072401025..be3ab3f3e2bb28ab74a0726b89832293a3a7dad5 100644 (file)
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_X264
        bool "x264"
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX # madvise()
        help
          x264 is a free software library and application for
          encoding video streams into the H.264/MPEG-4 AVC
index 2a0d3df3784b94fbe789db5e247c2b0641991418..61d38f29ff553bd9e777cc5734da3a782af27fa6 100644 (file)
@@ -13,9 +13,9 @@ XMLSTARLET_DEPENDENCIES += libxml2 libxslt \
        $(if $(BR2_PACKAGE_LIBICONV),libiconv)
 
 XMLSTARLET_CONF_OPTS += \
-       --with-libxml-prefix=${STAGING_DIR}/usr \
-       --with-libxslt-prefix=${STAGING_DIR}/usr \
-       --with-libiconv-prefix=${STAGING_DIR}/usr
+       --with-libxml-prefix=$(STAGING_DIR)/usr \
+       --with-libxslt-prefix=$(STAGING_DIR)/usr \
+       --with-libiconv-prefix=$(STAGING_DIR)/usr
 
 ifeq ($(BR2_STATIC_LIBS),y)
 XMLSTARLET_CONF_OPTS += --enable-static-libs
index 3991bc1cf1e36840ca7f34db8bb9948574a7086c..72e7292353882f96a754c3d9312e616e191f726f 100644 (file)
@@ -145,8 +145,7 @@ check_kernel_headers_version = \
 check_gcc_version = \
        expected_version="$(strip $2)" ; \
        if [ -z "$${expected_version}" ]; then \
-               printf "Internal error, gcc version unknown (no GCC_AT_LEAST_X_Y selected)\n"; \
-               exit 1 ; \
+               exit 0 ; \
        fi; \
        real_version=`$(1) --version | sed -r -e '1!d; s/^[^)]+\) ([^[:space:]]+).*/\1/;'` ; \
        if [[ ! "$${real_version}" =~ ^$${expected_version}\. ]] ; then \
index 476b37b58ec1a4a15222b5911d44324d3197d527..c007e623fd2115f9bf0209a8be27ef5d8deaf6ae 100644 (file)
@@ -8,574 +8,45 @@ choice
 comment "glibc toolchains only available with shared lib support"
        depends on BR2_STATIC_LIBS
 
-comment "Linaro toolchains available for Cortex-A + EABIhf"
-       depends on BR2_arm || BR2_armeb
-       depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF
-       depends on !BR2_STATIC_LIBS
+# Kept toolchains sorted by architecture in order to use some toolchain
+# as default choice
 
-config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
-       bool "Linaro ARM 2016.05"
-       depends on BR2_arm
-       depends on BR2_ARM_CPU_ARMV7A
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on BR2_ARM_EABIHF
-       depends on !BR2_STATIC_LIBS
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
-       select BR2_TOOLCHAIN_HAS_FORTRAN
-       help
-         Linaro toolchain for the ARM architecture. It uses Linaro
-         GCC 2016.05 (based on gcc 5.3.1), Linaro GDB 2016.05 (based on
-         GDB 7.11.1), glibc 2.21, Binutils 2016.05 (based on 2.25). It
-         generates code that runs on all Cortex-A profile devices,
-         but tuned for the Cortex-A9. The code generated is Thumb 2,
-         with the hard floating point calling convention, and uses
-         the VFPv3-D16 FPU instructions.
-
-config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
-       bool "Linaro armeb 2016.05"
-       depends on BR2_armeb
-       depends on BR2_ARM_CPU_ARMV7A
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on BR2_ARM_EABIHF
-       depends on !BR2_STATIC_LIBS
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
-       help
-         Linaro toolchain for the ARM big endian architecture. It
-         uses Linaro GCC 2016.05 (based on gcc 5.3.1), Linaro GDB
-         2016.05 (based on GDB 7.11.1), glibc 2.21, Binutils 2016.05
-         (based on 2.25). It generates code that runs on all Cortex-A
-         profile devices, but tuned for the Cortex-A9. The code
-         generated is Thumb 2, with the hard floating point calling
-         convention, and uses the VFPv3-D16 FPU instructions.
-
-config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM
-       bool "Sourcery CodeBench ARM 2014.05"
-       depends on BR2_arm
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on BR2_ARM_EABI
-       depends on !BR2_STATIC_LIBS
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
-       help
-         Sourcery CodeBench toolchain for the ARM architecture, from
-         Mentor Graphics. It uses gcc 4.8.3, binutils 2.24.51, glibc
-         2.18 and gdb 7.7.50, kernel headers 3.13. It has support
-         for the following variants:
-           - ARMv5TE, little endian, soft-float, glibc
-             Select ARM926T, ARM10T, XScale or another ARMv5 core
-             Select BR2_SOFT_FLOAT
-           - ARMv4T, little endian, soft-float, glibc
-             Select ARM720T, ARM920T, ARM922T or another ARMv4 core
-             Select BR2_SOFT_FLOAT
-           - ARMv7-A, Thumb 2, little endian, soft-float, glibc
-             Select Cortex-A8, Cortex-A9 or another ARMv7-A core
-             Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -mthumb
-
-comment "Sourcery CodeBench toolchains available for the EABI ABI"
-       depends on BR2_arm
-       depends on !BR2_ARM_EABI
-       depends on !BR2_STATIC_LIBS
-
-config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A
-       bool "Arago ARMv7 2011.09"
-       depends on BR2_arm
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on BR2_ARM_CPU_ARMV7A
-       depends on BR2_ARM_EABI
-       depends on BR2_ARM_CPU_HAS_VFPV3
-       depends on !BR2_STATIC_LIBS
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
-       # kernel headers: 2.6.31
-       help
-         Texas Instruments Arago 2011.09 toolchain, with gcc 4.5.3,
-         binutils 2.20.1, glibc 2.12, gdb 7.2.
-
-         This toolchain uses -mfloat-abi=softfp (i.e can use FPU
-         instructions, but passes floating point function arguments
-         in integer registers), and requires a VFPv3 floating point
-         unit to work properly. This unit is available on most
-         Cortex-A ARM processors, but not all.
-
-config BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE
-       bool "Arago ARMv5 2011.09"
-       depends on BR2_arm
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on !BR2_ARM_CPU_ARMV4
-       depends on BR2_ARM_EABI
-       depends on !BR2_STATIC_LIBS
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
-       # kernel headers: 2.6.31
-       help
-         Texas Instruments Arago ARMv5 2011.09 toolchain, with gcc
-         4.5.3, binutils 2.20.1, glibc 2.12, gdb 7.2.
-
-         This toolchain uses software-floating point.
-
-config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
-       bool "Sourcery CodeBench MIPS 2016.05"
-       depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
-       depends on BR2_MIPS_CPU_MIPS32R2 || BR2_MIPS_CPU_MIPS64R2
-       # Unsupported MIPS cores
-       depends on !BR2_mips_interaptiv
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on !BR2_MIPS_NABI32
-       depends on !BR2_STATIC_LIBS
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
-       help
-         Sourcery CodeBench toolchain for the MIPS architecture, from
-         Mentor Graphics. It uses gcc 5.3, binutils 2.25.51, glibc
-         2.23, uClibc 0.9.30 and gdb 7.10.50, kernel headers 4.4.1. It
-         has support for the following variants:
-           - MIPS32r2 - Big-Endian, 2008 NaN, O32
-             Select MIPS (big endian) core
-             Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -mnan=2008
-           - MIPS32r2 - Big-Endian, O32
-             Select MIPS (big endian) core
-             Disable BR2_SOFT_FLOAT
-           - MIPS32r2 - Big-Endian, O32, MIPS16
-             Select MIPS (big endian) core
-             Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -mips16
-           - MIPS32r2 - Big-Endian, Soft-Float, O32
-             Select MIPS (big endian) core
-             Select BR2_SOFT_FLOAT
-           - MIPS32r2 - Big-Endian, Soft-Float, O32, MIPS16
-             Select MIPS (big endian) core
-             Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -mips16
-           - MIPS32r2 - Little-Endian, 2008 NaN, O32
-             Select MIPS (little endian) core
-             Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -mnan=2008
-           - MIPS32r2 - Little-Endian, O32
-             Select MIPS (little endian) core
-             Disable BR2_SOFT_FLOAT
-           - MIPS32r2 - Little-Endian, O32, MIPS16
-             Select MIPS (little endian) core
-             Disable BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -mips16
-           - MIPS32r2 - Little-Endian, Soft-Float, O32
-             Select MIPS (little endian) core
-             Select BR2_SOFT_FLOAT
-           - MIPS32r2 - Little-Endian, Soft-Float, O32, MIPS16
-             Select MIPS (little endian) core
-             Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -mips16
-           - MIPS32r2 - Little-Endian, Soft-Float, O32, microMIPS
-             Select MIPS (little endian) core
-             Select BR2_SOFT_FLOAT
-             Set BR2_TARGET_OPTIMIZATION to -mmicromips
-           - MIPS32r2 - uClibc, Big-Endian, 2008 NaN, O32
-             Not usable in Buildroot yet.
-           - MIPS32r2 - uClibc, Big-Endian, O32
-             Not usable in Buildroot yet.
-           - MIPS32r2 - uClibc, Big-Endian, Soft-Float, O32
-             Not usable in Buildroot yet.
-           - MIPS32r2 - uClibc, Little-Endian, 2008 NaN, O32
-             Not usable in Buildroot yet.
-           - MIPS32r2 - uClibc, Little-Endian, O32
-             Not usable in Buildroot yet.
-           - MIPS32r2 - uClibc, Little-Endian, Soft-Float, O32
-             Not usable in Buildroot yet.
-           - MIPS64r2 - Big-Endian, N64
-             Select MIPS64 (big endian) core
-             Select the n64 ABI
-             Disable BR2_SOFT_FLOAT
-           - MIPS64r2 - Big-Endian, Soft-Float, N64
-             Select MIPS64 (big endian) core
-             Select the n64 ABI
-             Select BR2_SOFT_FLOAT
-           - MIPS64r2 - Little-Endian, N64
-             Select MIPS64 (little endian) core
-             Select the n64 ABI
-             Disable BR2_SOFT_FLOAT
-           - MIPS64r2 - Little-Endian, Soft-Float, N64
-             Select MIPS64 (little endian) core
-             Select the n64 ABI
-             Select BR2_SOFT_FLOAT
-
-comment "Sourcery CodeBench toolchains are only available for MIPS/MIPS64 o32 and n64"
-       depends on BR2_MIPS_NABI32
-       depends on !BR2_STATIC_LIBS
-
-config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS
-       bool "Codescape IMG GNU Linux Toolchain 2016.05"
-       depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on BR2_MIPS_CPU_MIPS32R6 || (BR2_MIPS_CPU_MIPS64R6 && !BR2_MIPS_SOFT_FLOAT)
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
-       select BR2_TOOLCHAIN_HAS_FORTRAN
-       help
-         Codescape IMG GNU Linux Toolchain 2015.10 for the MIPS
-         architecture, from Imagination Technologies. It uses gcc
-         4.9.2, binutils 2.24.90, glibc 2.20, gdb 7.9.1 and kernel
-         headers 4.0. It has support for the following variants:
-           - MIPS32r6 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI
-             Select 'MIPS (big endian)' Target Architecture
-             Select 'mips 32r6' Target Architecture Variant
-             Disable 'Use soft-float'
-           - MIPS32r6 - Big-Endian, Soft-Float, 2008 NaN, o32 ABI
-             Select 'MIPS (big endian)' Target Architecture
-             Select 'mips 32r6' Target Architecture Variant
-             Enable 'Use soft-float'
-           - MIPS32r6 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI
-             Select 'MIPS (little endian)' Target Architecture
-             Select 'mips 32r6' Target Architecture Variant
-             Disable 'Use soft-float'
-           - MIPS32r6 - Little-Endian, Soft-Float, 2008 NaN, o32 ABI
-             Select 'MIPS (little endian)' Target Architecture
-             Select 'mips 32r6' Target Architecture Variant
-             Enable 'Use soft-float'
-           - MIPS32r6 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI, microMIPS
-             Select 'MIPS (little endian)' Target Architecture
-             Select 'mips 32r6' Target Architecture Variant
-             Disable 'Use soft-float'
-             Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
-           - MIPS32r6 - Little-Endian, Soft-Float, 2008 NaN, o32 ABI, microMIPS
-             Select 'MIPS (little endian)' Target Architecture
-             Select 'mips 32r6' Target Architecture Variant
-             Enable 'Use soft-float'
-             Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
-           - MIPS64r6 - Big-Endian, Hard-Float, 2008 NaN, n32 ABI
-             Select 'MIPS64 (big endian)' Target Architecture
-             Select 'mips 64r6' Target Architecture Variant
-             Select 'n32' Target ABI
-             Disable 'Use soft-float'
-           - MIPS64r6 - Little-Endian, Hard-Float, 2008 NaN, n32 ABI
-             Select 'MIPS64 (little endian)' Target Architecture
-             Select 'mips 64r6' Target Architecture Variant
-             Select 'n32' Target ABI
-             Disable 'Use soft-float'
-           - MIPS64r6 - Big-Endian, Hard-Float, 2008 NaN, n64 ABI
-             Select 'MIPS64 (big endian)' Target Architecture
-             Select 'mips 64r6' Target Architecture Variant
-             Select 'n64' Target ABI
-             Disable 'Use soft-float'
-           - MIPS64r6 - Little-Endian, Hard-Float, 2008 NaN, n64 ABI
-             Select 'MIPS64 (little endian)' Target Architecture
-             Select 'mips 64r6' Target Architecture Variant
-             Select 'n64' Target ABI
-             Disable 'Use soft-float'
-
-config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS
-       bool "Codescape MTI GNU Linux Toolchain 2016.05"
-       depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on BR2_MIPS_CPU_MIPS32R2 || (BR2_MIPS_CPU_MIPS64R2 && !BR2_MIPS_SOFT_FLOAT) || \
-               BR2_MIPS_CPU_MIPS32R5 || (BR2_MIPS_CPU_MIPS64R5 && !BR2_MIPS_SOFT_FLOAT)
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
-       select BR2_TOOLCHAIN_HAS_FORTRAN
-       help
-         Codescape MTI GNU Linux Toolchain 2015.10 for the MIPS
-         architecture, from Imagination Technologies. It uses gcc
-         4.9.2, binutils 2.24.90, glibc 2.20, gdb 7.9.1 and kernel
-         headers 4.0. It has support for the following variants:
-           - MIPS32r2 - Big-Endian, Hard-Float, Legacy NaN, o32 ABI
-             Select 'MIPS (big endian)' Target Architecture
-             Select 'mips 32r2' Target Architecture Variant
-             Disable 'Use soft-float'
-           - MIPS32r2 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI
-             Select 'MIPS (big endian)' Target Architecture
-             Select 'mips 32r2' Target Architecture Variant
-             Disable 'Use soft-float'
-             Set BR2_TARGET_OPTIMIZATION to '-mnan=2008'
-           - MIPS32r2 - Big-Endian, Soft-Float, Legacy NaN, o32 ABI
-             Select 'MIPS (big endian)' Target Architecture
-             Select 'mips 32r2' Target Architecture Variant
-             Enable 'Use soft-float'
-           - MIPS32r2 - Little-Endian, Hard-Float, Legacy NaN, o32 ABI
-             Select 'MIPS (little endian)' Target Architecture
-             Select 'mips 32r2' Target Architecture Variant
-             Disable 'Use soft-float'
-           - MIPS32r2 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI
-             Select 'MIPS (little endian)' Target Architecture
-             Select 'mips 32r2' Target Architecture Variant
-             Disable 'Use soft-float'
-             Set BR2_TARGET_OPTIMIZATION to '-mnan=2008'
-           - MIPS32r2 - Little-Endian, Soft-Float, Legacy NaN, o32 ABI
-             Select 'MIPS (little endian)' Target Architecture
-             Select 'mips 32r2' Target Architecture Variant
-             Enable 'Use soft-float'
-           - MIPS32r2 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI, microMIPS
-             Select 'MIPS (little endian)' Target Architecture
-             Select 'mips 32r2' Target Architecture Variant
-             Enable 'Use soft-float'
-             Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
-           - MIPS32r2 - Little-Endian, Soft-Float, Legacy NaN, o32 ABI, microMIPS
-             Select 'MIPS (little endian)' Target Architecture
-             Select 'mips 32r2' Target Architecture Variant
-             Disable 'Use soft-float'
-             Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
-           - MIPS64r2 - Big-Endian, Hard-Float, Legacy NaN, n32 ABI
-             Select 'MIPS64 (big endian)' Target Architecture
-             Select 'mips 64r2' Target Architecture Variant
-             Select 'n32' Target ABI
-             Disable 'Use soft-float'
-           - MIPS64r2 - Little-Endian, Hard-Float, Legacy NaN, n32 ABI
-             Select 'MIPS64 (little endian)' Target Architecture
-             Select 'mips 64r2' Target Architecture Variant
-             Select 'n32' Target ABI
-             Disable 'Use soft-float'
-           - MIPS64r2 - Big-Endian, Hard-Float, Legacy NaN, n64 ABI
-             Select 'MIPS64 (big endian)' Target Architecture
-             Select 'mips 64r2' Target Architecture Variant
-             Select 'n64' Target ABI
-             Disable 'Use soft-float'
-           - MIPS64r2 - Little-Endian, Hard-Float, Legacy NaN, n64 ABI
-             Select 'MIPS64 (little endian)' Target Architecture
-             Select 'mips 64r2' Target Architecture Variant
-             Select 'n64' Target ABI
-             Disable 'Use soft-float'
-
-config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
-       bool "Sourcery CodeBench Nios-II 2016.05"
-       depends on BR2_nios2
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on !BR2_STATIC_LIBS
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
-       select BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # based-on binutils-2.25.1
-       help
-         Sourcery CodeBench toolchain for the Nios-II architecture,
-         from Mentor Graphics. It uses gcc 5.3, binutils 2.25.51,
-         glibc 2.23, gdb 7.10.50 and kernel headers 4.4.
-
-config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH
-       bool "Sourcery CodeBench SH 2012.09"
-       depends on BR2_sh4a || BR2_sh4aeb
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on !BR2_STATIC_LIBS
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
-       help
-         Sourcery CodeBench toolchain for the SuperH architecture,
-         from Mentor Graphics. It uses gcc 4.7.2, binutils 2.23.51,
-         glibc 2.16, uClibc 0.9.30, gdb 7.4.50 and kernel headers
-         3.5.4. It has support for the following variants:
-           - SH4A, glibc, little endian
-             Default.
-           - SH4A, glibc, big endian
-             Add -mb to BR2_TARGET_OPTIMIZATION
-           - SH4A, uClibc, little endian
-             Not usable in Buildroot yet.
-           - SH4A, uClibc, big endian
-             Not usable in Buildroot yet.
-
-config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64
-       bool "Sourcery CodeBench AMD64 2015.11"
-       depends on BR2_x86_64
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on !BR2_STATIC_LIBS
-       depends on BR2_x86_jaguar || BR2_x86_steamroller
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
-       help
-         Sourcery CodeBench toolchain for the amd64 (x86_64)
-         architectures, from Mentor Graphics. It uses gcc 5.2,
-         binutils 2.25.51, glibc 2.22, gdb 7.10.50 and kernel headers
-         4.2. It has support for the following variants:
-           - AMD Puma/Jaguar (family 16h), glibc
-           Default for x86_64, nothing special to do.
-           - AMD Steamroller (family 15h), glibc
-           Select a steamroller core.
-         No other architecture variants are supported since glibc
-         is optimized for one of these two baselines.
+# Aarch64 (use Linaro toolchain by default)
+source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in"
+source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in"
 
-config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86
-       bool "Sourcery CodeBench x86/x86_64 2012.09"
-       depends on BR2_i386 || BR2_x86_64
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on !BR2_STATIC_LIBS
-       depends on !BR2_x86_jaguar
-       depends on !BR2_x86_steamroller
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
-       help
-         Sourcery CodeBench toolchain for the x86/x86_64
-         architectures, from Mentor Graphics. It uses gcc 4.7.2,
-         binutils 2.23.51, glibc 2.16, gdb 7.4.50 and kernel headers
-         3.5.4. It has support for the following variants:
-           - Intel Pentium 4, glibc, 32 bits
-             Default for x86, nothing special to do.
-           - Intel Atom, glibc, 32 bits
-             Select an Atom core
-           - Intel Xeon, glibc, 64 bits
-             Default for x86_64, nothing special to do.
-           - Intel Core 2, glibc, 64 bits
-             Select a Core 2 core
-         Other architecture variants (beyond Pentium-4/Xeon) are
-         supported as well, but glibc is not optimised for it.
+# ARC
+source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in"
 
-config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
-       bool "Blackfin.uclinux.org 2014R1"
-       depends on BR2_bfin
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_USE_WCHAR
-       select BR2_TOOLCHAIN_HAS_THREADS
-       select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
-       select BR2_TOOLCHAIN_HAS_FORTRAN
-       help
-         Toolchain for the Blackfin architecture, from
-         http://blackfin.uclinux.org.
+# ARM (use Linaro toolchain by default)
+source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in"
+source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in"
 
-config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
-       bool "Linaro AArch64 2016.05"
-       depends on BR2_aarch64
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on !BR2_STATIC_LIBS
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
-       select BR2_TOOLCHAIN_HAS_FORTRAN
-       help
-         Toolchain for the AArch64 architecture, from
-         http://www.linaro.org/engineering/armv8/
+# ARM big-endian
+source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in"
 
-config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
-       bool "CodeSourcery AArch64 2014.11"
-       depends on BR2_aarch64
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       depends on !BR2_STATIC_LIBS
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
-       help
-         Sourcery CodeBench toolchain for the AArch64 architecture,
-         from Mentor Graphics. It uses gcc 4.9.1, binutils
-         2.24.51.20140217, glibc 2.20, gdb 7.7.50 and kernel headers
-         3.16.2.
+# MIPS (use codesourcery toolchain by default)
+source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in"
+source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in"
+source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in"
 
-config BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS
-       bool "Musl 1.1.12 toolchain"
-       depends on (BR2_arm && BR2_ARM_EABI && BR2_USE_MMU) || \
-               (BR2_arm && BR2_ARM_EABIHF && !BR2_ARM_CPU_ARMV4 && BR2_USE_MMU) || \
-               (BR2_armeb && BR2_ARM_EABI && !BR2_ARM_CPU_ARMV7A && BR2_USE_MMU) || \
-               BR2_i386 || (BR2_mips && !BR2_SOFT_FLOAT) || \
-               BR2_mipsel || (BR2_powerpc && BR2_powerpc_CLASSIC) || \
-               BR2_sh4 || BR2_sh4eb || \
-               BR2_x86_64
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       # Unsupported MIPS cores
-       depends on !BR2_mips_interaptiv && !BR2_mips_m5150
-       # Unsupported for MIPS R6
-       depends on !BR2_MIPS_CPU_MIPS32R6 && !BR2_MIPS_CPU_MIPS64R6
-       select BR2_TOOLCHAIN_EXTERNAL_MUSL
-       select BR2_TOOLCHAIN_HAS_SSP
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
-       help
-         Toolchain based on the Musl C library, provided by the
-         musl-cross project. It uses gcc 5.3, binutils 2.25.1 and
-         musl 1.1.12. It does not have a cross debugger included.
+# NIOSII
+source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in"
 
-         The ARM soft-float toolchain is built for ARMv4t, while the
-         ARM hard-float toolchain is built for ARMv5t.
-         The x86 toolchain is built for i486.
+# SH4a
+source "toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in"
 
-         http://musl.codu.org/
+# x86/x86_64 (use amd64 toolchain by default for AMD64)
+source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in"
+source "toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in"
 
-config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC
-       bool "Synopsys ARC 2014.12 toolchain"
-       depends on BR2_arc
-       depends on BR2_HOSTARCH = "x86_64"
-       # does not provide IPv6, and lacks many uClibc features
-       # expected by Buildroot. The next Synopsys toolchain version
-       # should fix those problems.
-       depends on BROKEN
-       select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_ENABLE_LOCALE
-       select BR2_USE_WCHAR
-       select BR2_TOOLCHAIN_HAS_THREADS
-       select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
-       help
-         Toolchain for the ARC cores, from
-         https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases
+# Musl based toolchains (after all the others)
+source "toolchain/toolchain-external/toolchain-external-musl-cross/Config.in"
 
-config BR2_TOOLCHAIN_EXTERNAL_CUSTOM
-       bool "Custom toolchain"
-       help
-         Use this option to use a custom toolchain pre-installed on
-         your system.
+# Kept last, so it remains the non-default choice, unless there isn't
+# any available toolchain profile for the currently selected
+# architecture.
+source "toolchain/toolchain-external/toolchain-external-custom/Config.in"
 
 endchoice
 
@@ -608,51 +79,6 @@ config BR2_TOOLCHAIN_EXTERNAL_PATH
        help
          Path to where the external toolchain is installed.
 
-config BR2_TOOLCHAIN_EXTERNAL_URL
-       string "Toolchain URL"
-       depends on BR2_TOOLCHAIN_EXTERNAL_CUSTOM && BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
-       help
-         URL of the custom toolchain tarball to download and install.
-
-config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX
-       string "Toolchain prefix"
-       depends on BR2_TOOLCHAIN_EXTERNAL_CUSTOM
-       default "$(ARCH)-linux"
-
-config BR2_TOOLCHAIN_EXTERNAL_PREFIX
-       string
-       default "arc-linux"              if BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC && BR2_arcle
-       default "arceb-linux"            if BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC && BR2_arceb
-       default "arm-linux-gnueabihf"    if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
-       default "armeb-linux-gnueabihf"  if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
-       default "arm-none-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM
-       default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A
-       default "arm-arago-linux-gnueabi" if BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE
-       default "aarch64-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
-       default "aarch64-amd-linux-gnu"  if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
-       default "mips-linux-gnu"         if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
-       default "nios2-linux-gnu"        if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
-       default "sh-linux-gnu"           if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH
-       default "i686-pc-linux-gnu"      if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86
-       default "x86_64-amd-linux-gnu"   if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64
-       default "bfin-uclinux"           if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX && BR2_BINFMT_FLAT
-       default "bfin-linux-uclibc"      if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX && BR2_BINFMT_FDPIC
-       default "arm-linux-musleabi"     if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_arm && BR2_ARM_EABI
-       default "arm-linux-musleabihf"   if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_arm && BR2_ARM_EABIHF
-       default "mips-img-linux-gnu"     if BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS
-       default "mips-mti-linux-gnu"     if BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS
-       default "armeb-linux-musleabi"   if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_armeb
-       default "i486-linux-musl"        if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_i386
-       default "mips-linux-musl"        if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && (BR2_mips && !BR2_SOFT_FLOAT)
-       default "mipsel-linux-musl"      if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && (BR2_mipsel && !BR2_SOFT_FLOAT)
-       default "mipsel-sf-linux-musl"   if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && (BR2_mipsel && BR2_SOFT_FLOAT)
-       default "powerpc-linux-musl"     if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_powerpc
-       default "sh4-linux-musl"         if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_sh4
-       default "sh4eb-linux-musl"       if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_sh4eb
-       default "x86_64-linux-musl"      if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS && BR2_x86_64
-       default BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX \
-                                        if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
-
 config BR2_TOOLCHAIN_EXTERNAL_GLIBC
        bool
        select BR2_TOOLCHAIN_USES_GLIBC
@@ -667,331 +93,55 @@ config BR2_TOOLCHAIN_EXTERNAL_MUSL
        # Compatibility headers: cdefs.h, queue.h
        select BR2_PACKAGE_MUSL_COMPAT_HEADERS
 
-if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
-
-choice
-       bool "External toolchain gcc version"
-       default BR2_TOOLCHAIN_EXTERNAL_GCC_4_3
-       help
-         Set to the gcc version that is used by your external
-         toolchain.
-
-config BR2_TOOLCHAIN_EXTERNAL_GCC_6
-       bool "6.x"
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_6
-
-config BR2_TOOLCHAIN_EXTERNAL_GCC_5
-       bool "5.x"
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
-
-config BR2_TOOLCHAIN_EXTERNAL_GCC_4_9
-       bool "4.9.x"
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
-
-config BR2_TOOLCHAIN_EXTERNAL_GCC_4_8
-       bool "4.8.x"
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
-
-config BR2_TOOLCHAIN_EXTERNAL_GCC_4_7
-       bool "4.7.x"
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
-
-config BR2_TOOLCHAIN_EXTERNAL_GCC_4_6
-       bool "4.6.x"
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
-
-config BR2_TOOLCHAIN_EXTERNAL_GCC_4_5
-       bool "4.5.x"
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
-
-config BR2_TOOLCHAIN_EXTERNAL_GCC_4_4
-       bool "4.4.x"
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
-
-config BR2_TOOLCHAIN_EXTERNAL_GCC_4_3
-       bool "4.3.x"
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
-
-endchoice
-
-choice
-       bool "External toolchain kernel headers series"
-       default BR2_TOOLCHAIN_EXTERNAL_HEADERS_REALLY_OLD
-       help
-         Set to the kernel headers version that were used to build
-         this external toolchain.
-
-         This is used to hide/show some packages that have strict
-         requirements on the version of kernel headers.
-
-         If unsure what version your toolchain is using, you can look
-         at the value of LINUX_VERSION_CODE in linux/version.h in your
-         toolchain. The Linux version is M.m.p, with:
-           M = ( LINUX_VERSION_CODE >> 16 ) & 0xFF
-           m = ( LINUX_VERSION_CODE >> 8  ) & 0xFF
-           p = ( LINUX_VERSION_CODE >> 0  ) & 0xFF
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_8
-       bool "4.8.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_7
-       bool "4.7.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6
-       bool "4.6.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_5
-       bool "4.5.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_4
-       bool "4.4.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_3
-       bool "4.3.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_2
-       bool "4.2.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1
-       bool "4.1.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_0
-       bool "4.0.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_19
-       bool "3.19.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_18
-       bool "3.18.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_17
-       bool "3.17.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_16
-       bool "3.16.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_15
-       bool "3.15.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_14
-       bool "3.14.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_13
-       bool "3.13.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_12
-       bool "3.12.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_11
-       bool "3.11.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10
-       bool "3.10.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_9
-       bool "3.9.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_8
-       bool "3.8.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_7
-       bool "3.7.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_6
-       bool "3.6.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_5
-       bool "3.5.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_4
-       bool "3.4.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_3
-       bool "3.3.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_2
-       bool "3.2.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_1
-       bool "3.1.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_0
-       bool "3.0.x"
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
-
-config BR2_TOOLCHAIN_EXTERNAL_HEADERS_REALLY_OLD
-       bool "2.6.x"
-
-endchoice
-
-choice
-       prompt "External toolchain C library"
-       default BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
-
-config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
-       bool "uClibc/uClibc-ng"
-       select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
-       # For the time being, we assume that all custom external
-       # toolchains have shadow password support.
-       select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
-       help
-         Select this option if your external toolchain uses the
-         uClibc (available from http://www.uclibc.org/)
-         or uClibc-ng (available from http://www.uclibc-ng.org)
-         C library.
-
-config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC
-       bool "glibc/eglibc"
-       depends on !BR2_STATIC_LIBS
-       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       help
-         Select this option if your external toolchain uses the GNU C
-         library (available from https://www.gnu.org/software/libc/)
-         or its variant the eglibc library (http://www.eglibc.org/).
-
-         Note: eglibc is a variant of glibc that (among other things)
-         can be configured to exclude some of its features. Using a
-         toolchain with eglibc configured to exclude key features may
-         cause build failures to some packages.
-
-comment "glibc only available with shared lib support"
-       depends on BR2_STATIC_LIBS
-
-config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL
-       bool "musl"
-       select BR2_TOOLCHAIN_EXTERNAL_MUSL
-       help
-         Select this option if your external toolchain uses the
-         'musl' C library, available from http://www.musl-libc.org/.
-
-endchoice
-
-if BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
-
-config BR2_TOOLCHAIN_EXTERNAL_WCHAR
-       bool "Toolchain has WCHAR support?"
-       select BR2_USE_WCHAR
-       help
-         Select this option if your external toolchain supports
-         WCHAR. If you don't know, leave the default value, Buildroot
-         will tell you if it's correct or not.
+# Make sure the virtual-package infra checks the provider
+config BR2_PACKAGE_HAS_TOOLCHAIN_EXTERNAL
+       bool
+       default y
 
-config BR2_TOOLCHAIN_EXTERNAL_LOCALE
-       bool "Toolchain has locale support?"
-       select BR2_TOOLCHAIN_EXTERNAL_WCHAR
-       select BR2_ENABLE_LOCALE
-       help
-         Select this option if your external toolchain has locale
-         support. If you don't know, leave the default value,
-         Buildroot will tell you if it's correct or not.
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       string
 
-config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
-       bool "Toolchain has threads support?"
-       select BR2_TOOLCHAIN_HAS_THREADS
-       default y
-       help
-         Select this option if your external toolchain has thread
-         support. If you don't know, leave the default value,
-         Buildroot will tell you if it's correct or not.
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       string
 
-if BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
+# Kept toolchains sorted as in the choice above
+# The toolchain Config.in.options must define
+# BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL and BR2_TOOLCHAIN_EXTERNAL_PREFIX
 
-config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG
-       bool "Toolchain has threads debugging support?"
-       select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
-       default y
-       help
-         Select this option if your external toolchain has thread
-         debugging support. If you don't know, leave the default
-         value, Buildroot will tell you if it's correct or not.
+# Aarch64
+source "toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options"
+source "toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options"
 
-config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL
-       bool "Toolchain has NPTL threads support?"
-       select BR2_TOOLCHAIN_HAS_THREADS_NPTL
-       default y
-       help
-         Select this option if your external toolchain uses the NPTL
-         (Native Posix Thread Library) implementation of Posix
-         threads. If you don't know, leave the default value,
-         Buildroot will tell you if it's correct or not.
+# ARC
+source "toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options"
 
-endif # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
+# ARM
+source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options"
+source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options"
 
-endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
+# ARM big-endian
+source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options"
 
-config BR2_TOOLCHAIN_EXTERNAL_HAS_SSP
-       bool "Toolchain has SSP support?"
-       select BR2_TOOLCHAIN_HAS_SSP
-       default y if BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       default y if BR2_TOOLCHAIN_EXTERNAL_MUSL
-       help
-         Selection this option if your external toolchain has Stack
-         Smashing Protection support enabled. If you don't know,
-         leave the default value, Buildroot will tell you if it's
-         correct or not.
+# MIPS
+source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options"
+source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options"
+source "toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options"
 
-config BR2_TOOLCHAIN_EXTERNAL_INET_RPC
-       bool "Toolchain has RPC support?"
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       depends on !BR2_TOOLCHAIN_EXTERNAL_MUSL
-       default y if BR2_TOOLCHAIN_EXTERNAL_GLIBC
-       help
-         Select this option if your external toolchain supports
-         RPC. If you don't know, leave the default value, Buildroot
-         will tell you if it's correct or not.
+# NIOSII
+source "toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options"
 
-config BR2_TOOLCHAIN_EXTERNAL_CXX
-       bool "Toolchain has C++ support?"
-       select BR2_INSTALL_LIBSTDCPP
-       help
-         Select this option if your external toolchain has C++
-         support. If you don't know, leave the default value,
-         Buildroot will tell you if it's correct or not.
+# SH4a
+source "toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in.options"
 
-config BR2_TOOLCHAIN_EXTERNAL_FORTRAN
-       bool "Toolchain has Fortran support?"
-       select BR2_TOOLCHAIN_HAS_FORTRAN
-       help
-         Select this option if your external toolchain has Fortran
-         support. If you don't know, leave the default value,
-         Buildroot will tell you if it's correct or not.
+# x86/x86_64
+source "toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in.options"
+source "toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in.options"
 
-config BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS
-       string "Extra toolchain libraries to be copied to target"
-       help
-         If your external toolchain provides extra libraries that
-         need to be copied to the target filesystem, enter them
-         here, separated by spaces.
+# Musl based toolchains
+source "toolchain/toolchain-external/toolchain-external-musl-cross/Config.in.options"
 
-endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM
+# Custom toolchains
+source "toolchain/toolchain-external/toolchain-external-custom/Config.in.options"
 
 config BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
        bool "Copy gdb server to the Target"
@@ -1000,31 +150,4 @@ config BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
          Copy the gdbserver provided by the external toolchain to the
          target.
 
-# When the FDPIC shared binary format is used, the corresponding libraries are
-# always installed. When a different binary format is used, we offer the option
-# of installing the FDPIC shared libraries.
-config BR2_BFIN_INSTALL_FDPIC_SHARED
-       bool "Install FDPIC shared libraries"
-       depends on BR2_bfin && !BR2_BINFMT_FDPIC
-       help
-         The Linux kernel supports running both FDPIC and FLAT applications
-         concurrently if the binary format specific libraries are installed
-         properly. This option allows developer to install FDPIC libraries
-         into a buildroot rootfs image built with binary format that is not
-         FDPIC.
-
-# When the FLAT shared binary format is used, we force the installation
-# of the corresponding libraries. When a different binary format is
-# used, we offer the option of installing the FLAT shared libraries.
-config BR2_BFIN_INSTALL_FLAT_SHARED
-       bool "Install FLAT shared libraries" if !BR2_BINFMT_FLAT_SHARED
-       depends on BR2_bfin
-       default y if BR2_BINFMT_FLAT_SHARED
-       help
-         The Linux kernel supports running both FDPIC and FLAT applications
-         concurrently if the binary format specific libraries are installed
-         properly. This option allows developer to install FLAT libraries
-         into a buildroot rootfs image built with binary format that is not
-         shared FLAT.
-
 endif # BR2_TOOLCHAIN_EXTERNAL
diff --git a/toolchain/toolchain-external/pkg-toolchain-external.mk b/toolchain/toolchain-external/pkg-toolchain-external.mk
new file mode 100644 (file)
index 0000000..e0a8b41
--- /dev/null
@@ -0,0 +1,615 @@
+################################################################################
+# External toolchain package infrastructure
+#
+# This package infrastructure implements the support for external
+# toolchains, i.e toolchains that are available pre-built, ready to
+# use. Such toolchain may either be readily available on the Web
+# (Linaro, Sourcery CodeBench, from processor vendors) or may be built
+# with tools like Crosstool-NG or Buildroot itself. So far, we have
+# tested this with:
+#
+#  * Toolchains generated by Crosstool-NG
+#  * Toolchains generated by Buildroot
+#  * Toolchains provided by Linaro for the ARM and AArch64
+#    architectures
+#  * Sourcery CodeBench toolchains (from Mentor Graphics) for the ARM,
+#    MIPS, PowerPC, x86, x86_64 and NIOS 2 architectures. For the MIPS
+#    toolchain, the -muclibc variant isn't supported yet, only the
+#    default glibc-based variant is.
+#  * Xilinx toolchains for the Microblaze architecture
+#  * Synopsys DesignWare toolchains for ARC cores
+#
+# The basic principle is the following
+#
+#  1. If the toolchain is not pre-installed, download and extract it
+#  in $(TOOLCHAIN_EXTERNAL_INSTALL_DIR). Otherwise,
+#  $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) points to were the toolchain has
+#  already been installed by the user.
+#
+#  2. For all external toolchains, perform some checks on the
+#  conformity between the toolchain configuration described in the
+#  Buildroot menuconfig system, and the real configuration of the
+#  external toolchain. This is for example important to make sure that
+#  the Buildroot configuration system knows whether the toolchain
+#  supports RPC, IPv6, locales, large files, etc. Unfortunately, these
+#  things cannot be detected automatically, since the value of these
+#  options (such as BR2_TOOLCHAIN_HAS_NATIVE_RPC) are needed at
+#  configuration time because these options are used as dependencies
+#  for other options. And at configuration time, we are not able to
+#  retrieve the external toolchain configuration.
+#
+#  3. Copy the libraries needed at runtime to the target directory,
+#  $(TARGET_DIR). Obviously, things such as the C library, the dynamic
+#  loader and a few other utility libraries are needed if dynamic
+#  applications are to be executed on the target system.
+#
+#  4. Copy the libraries and headers to the staging directory. This
+#  will allow all further calls to gcc to be made using --sysroot
+#  $(STAGING_DIR), which greatly simplifies the compilation of the
+#  packages when using external toolchains. So in the end, only the
+#  cross-compiler binaries remains external, all libraries and headers
+#  are imported into the Buildroot tree.
+#
+#  5. Build a toolchain wrapper which executes the external toolchain
+#  with a number of arguments (sysroot/march/mtune/..) hardcoded,
+#  so we're sure the correct configuration is always used and the
+#  toolchain behaves similar to an internal toolchain.
+#  This toolchain wrapper and symlinks are installed into
+#  $(HOST_DIR)/usr/bin like for the internal toolchains, and the rest
+#  of Buildroot is handled identical for the 2 toolchain types.
+################################################################################
+
+#
+# Definitions of where the toolchain can be found
+#
+
+TOOLCHAIN_EXTERNAL_PREFIX = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))
+TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR = $(HOST_DIR)/opt/ext-toolchain
+
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
+TOOLCHAIN_EXTERNAL_INSTALL_DIR = $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)
+else
+TOOLCHAIN_EXTERNAL_INSTALL_DIR = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH))
+endif
+
+ifeq ($(TOOLCHAIN_EXTERNAL_INSTALL_DIR),)
+ifneq ($(TOOLCHAIN_EXTERNAL_PREFIX),)
+# if no path set, figure it out from path
+TOOLCHAIN_EXTERNAL_BIN := $(shell dirname $(shell which $(TOOLCHAIN_EXTERNAL_PREFIX)-gcc))
+endif
+else
+TOOLCHAIN_EXTERNAL_BIN := $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/bin
+endif
+
+# If this is a buildroot toolchain, it already has a wrapper which we want to
+# bypass. Since this is only evaluated after it has been extracted, we can use
+# $(wildcard ...) here.
+TOOLCHAIN_EXTERNAL_SUFFIX = \
+       $(if $(wildcard $(TOOLCHAIN_EXTERNAL_BIN)/*.br_real),.br_real)
+
+TOOLCHAIN_EXTERNAL_CROSS = $(TOOLCHAIN_EXTERNAL_BIN)/$(TOOLCHAIN_EXTERNAL_PREFIX)-
+TOOLCHAIN_EXTERNAL_CC = $(TOOLCHAIN_EXTERNAL_CROSS)gcc$(TOOLCHAIN_EXTERNAL_SUFFIX)
+TOOLCHAIN_EXTERNAL_CXX = $(TOOLCHAIN_EXTERNAL_CROSS)g++$(TOOLCHAIN_EXTERNAL_SUFFIX)
+TOOLCHAIN_EXTERNAL_FC = $(TOOLCHAIN_EXTERNAL_CROSS)gfortran$(TOOLCHAIN_EXTERNAL_SUFFIX)
+TOOLCHAIN_EXTERNAL_READELF = $(TOOLCHAIN_EXTERNAL_CROSS)readelf$(TOOLCHAIN_EXTERNAL_SUFFIX)
+
+# Normal handling of downloaded toolchain tarball extraction.
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
+# As a regular package, the toolchain gets extracted in $(@D), but
+# since it's actually a fairly special package, we need it to be moved
+# into TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR.
+define TOOLCHAIN_EXTERNAL_MOVE
+       rm -rf $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)
+       mkdir -p $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)
+       mv $(@D)/* $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)/
+endef
+endif
+
+#
+# Definitions of the list of libraries that should be copied to the target.
+#
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y)
+TOOLCHAIN_EXTERNAL_LIBS += libatomic.so.* libc.so.* libcrypt.so.* libdl.so.* libgcc_s.so.* libm.so.* libnsl.so.* libresolv.so.* librt.so.* libutil.so.*
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_ARM_EABIHF),yy)
+TOOLCHAIN_EXTERNAL_LIBS += ld-linux-armhf.so.*
+else
+TOOLCHAIN_EXTERNAL_LIBS += ld*.so.*
+endif
+ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
+TOOLCHAIN_EXTERNAL_LIBS += libpthread.so.*
+ifneq ($(BR2_PACKAGE_GDB)$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),)
+TOOLCHAIN_EXTERNAL_LIBS += libthread_db.so.*
+endif # gdbserver
+endif # ! no threads
+endif
+
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC),y)
+TOOLCHAIN_EXTERNAL_LIBS += libnss_files.so.* libnss_dns.so.* libmvec.so.*
+endif
+
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_MUSL),y)
+TOOLCHAIN_EXTERNAL_LIBS += libc.so libgcc_s.so.*
+endif
+
+ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
+TOOLCHAIN_EXTERNAL_LIBS += libstdc++.so.*
+endif
+
+ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y)
+TOOLCHAIN_EXTERNAL_LIBS += libgfortran.so.*
+# fortran needs quadmath on x86 and x86_64
+ifeq ($(BR2_TOOLCHAIN_HAS_LIBQUADMATH),y)
+TOOLCHAIN_EXTERNAL_LIBS += libquadmath.so*
+endif
+endif
+
+TOOLCHAIN_EXTERNAL_LIBS += $(call qstrip,$(BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS))
+
+
+#
+# Definition of the CFLAGS to use with the external toolchain, as well as the
+# common toolchain wrapper build arguments
+#
+ifeq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),)
+CC_TARGET_CPU_ := $(call qstrip,$(BR2_GCC_TARGET_CPU))
+else
+CC_TARGET_CPU_ := $(call qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
+endif
+CC_TARGET_ARCH_ := $(call qstrip,$(BR2_GCC_TARGET_ARCH))
+CC_TARGET_ABI_ := $(call qstrip,$(BR2_GCC_TARGET_ABI))
+CC_TARGET_FPU_ := $(call qstrip,$(BR2_GCC_TARGET_FPU))
+CC_TARGET_FLOAT_ABI_ := $(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI))
+CC_TARGET_MODE_ := $(call qstrip,$(BR2_GCC_TARGET_MODE))
+
+# march/mtune/floating point mode needs to be passed to the external toolchain
+# to select the right multilib variant
+ifeq ($(BR2_x86_64),y)
+TOOLCHAIN_EXTERNAL_CFLAGS += -m64
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_64
+endif
+ifneq ($(CC_TARGET_ARCH_),)
+TOOLCHAIN_EXTERNAL_CFLAGS += -march=$(CC_TARGET_ARCH_)
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ARCH='"$(CC_TARGET_ARCH_)"'
+endif
+ifneq ($(CC_TARGET_CPU_),)
+TOOLCHAIN_EXTERNAL_CFLAGS += -mcpu=$(CC_TARGET_CPU_)
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_CPU='"$(CC_TARGET_CPU_)"'
+endif
+ifneq ($(CC_TARGET_ABI_),)
+TOOLCHAIN_EXTERNAL_CFLAGS += -mabi=$(CC_TARGET_ABI_)
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ABI='"$(CC_TARGET_ABI_)"'
+endif
+ifneq ($(CC_TARGET_FPU_),)
+TOOLCHAIN_EXTERNAL_CFLAGS += -mfpu=$(CC_TARGET_FPU_)
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FPU='"$(CC_TARGET_FPU_)"'
+endif
+ifneq ($(CC_TARGET_FLOAT_ABI_),)
+TOOLCHAIN_EXTERNAL_CFLAGS += -mfloat-abi=$(CC_TARGET_FLOAT_ABI_)
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FLOAT_ABI='"$(CC_TARGET_FLOAT_ABI_)"'
+endif
+ifneq ($(CC_TARGET_MODE_),)
+TOOLCHAIN_EXTERNAL_CFLAGS += -m$(CC_TARGET_MODE_)
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MODE='"$(CC_TARGET_MODE_)"'
+endif
+ifeq ($(BR2_BINFMT_FLAT),y)
+TOOLCHAIN_EXTERNAL_CFLAGS += -Wl,-elf2flt
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_BINFMT_FLAT
+endif
+ifeq ($(BR2_mipsel)$(BR2_mips64el),y)
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MIPS_TARGET_LITTLE_ENDIAN
+TOOLCHAIN_EXTERNAL_CFLAGS += -EL
+endif
+ifeq ($(BR2_mips)$(BR2_mips64),y)
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MIPS_TARGET_BIG_ENDIAN
+TOOLCHAIN_EXTERNAL_CFLAGS += -EB
+endif
+ifeq ($(BR2_arceb),y)
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ARC_TARGET_BIG_ENDIAN
+TOOLCHAIN_EXTERNAL_CFLAGS += -EB
+endif
+
+TOOLCHAIN_EXTERNAL_CFLAGS += $(call qstrip,$(BR2_TARGET_OPTIMIZATION))
+
+ifeq ($(BR2_SOFT_FLOAT),y)
+TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_SOFTFLOAT=1
+endif
+
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += \
+       -DBR_CROSS_PATH_SUFFIX='"$(TOOLCHAIN_EXTERNAL_SUFFIX)"'
+
+ifeq ($(filter $(HOST_DIR)/%,$(TOOLCHAIN_EXTERNAL_BIN)),)
+# TOOLCHAIN_EXTERNAL_BIN points outside HOST_DIR => absolute path
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += \
+       -DBR_CROSS_PATH_ABS='"$(TOOLCHAIN_EXTERNAL_BIN)"'
+else
+# TOOLCHAIN_EXTERNAL_BIN points inside HOST_DIR => relative path
+TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += \
+       -DBR_CROSS_PATH_REL='"$(TOOLCHAIN_EXTERNAL_BIN:$(HOST_DIR)/%=%)"'
+endif
+
+
+#
+# The following functions creates the symbolic links needed to get the
+# cross-compilation tools visible in $(HOST_DIR)/usr/bin. Some of
+# links are done directly to the corresponding tool in the external
+# toolchain installation directory, while some other links are done to
+# the toolchain wrapper (preprocessor, C, C++ and Fortran compiler)
+#
+# We skip gdb symlink when we are building our own gdb to prevent two
+# gdb's in $(HOST_DIR)/usr/bin.
+#
+# The LTO support in gcc creates wrappers for ar, ranlib and nm which load
+# the lto plugin. These wrappers are called *-gcc-ar, *-gcc-ranlib, and
+# *-gcc-nm and should be used instead of the real programs when -flto is
+# used. However, we should not add the toolchain wrapper for them, and they
+# match the *cc-* pattern. Therefore, an additional case is added for *-ar,
+# *-ranlib and *-nm.
+define TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER
+       $(Q)cd $(HOST_DIR)/usr/bin; \
+       for i in $(TOOLCHAIN_EXTERNAL_CROSS)*; do \
+               base=$${i##*/}; \
+               case "$$base" in \
+               *-ar|*-ranlib|*-nm) \
+                       ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \
+                       ;; \
+               *cc|*cc-*|*++|*++-*|*cpp|*-gfortran) \
+                       ln -sf toolchain-wrapper $$base; \
+                       ;; \
+               *gdb|*gdbtui) \
+                       if test "$(BR2_PACKAGE_HOST_GDB)" != "y"; then \
+                               ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \
+                       fi \
+                       ;; \
+               *) \
+                       ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \
+                       ;; \
+               esac; \
+       done
+endef
+
+
+# Various utility functions used by the external toolchain package
+# infrastructure. Those functions are mainly responsible for:
+#
+#   - installation the toolchain libraries to $(TARGET_DIR)
+#   - copying the toolchain sysroot to $(STAGING_DIR)
+#   - installing a gdbinit file
+#
+# Details about sysroot directory selection.
+#
+# To find the sysroot directory, we use the trick of looking for the
+# 'libc.a' file with the -print-file-name gcc option, and then
+# mangling the path to find the base directory of the sysroot.
+#
+# Note that we do not use the -print-sysroot option, because it is
+# only available since gcc 4.4.x, and we only recently dropped support
+# for 4.2.x and 4.3.x.
+#
+# When doing this, we don't pass any option to gcc that could select a
+# multilib variant (such as -march) as we want the "main" sysroot,
+# which contains all variants of the C library in the case of multilib
+# toolchains. We use the TARGET_CC_NO_SYSROOT variable, which is the
+# path of the cross-compiler, without the --sysroot=$(STAGING_DIR),
+# since what we want to find is the location of the original toolchain
+# sysroot. This "main" sysroot directory is stored in SYSROOT_DIR.
+#
+# Then, multilib toolchains are a little bit more complicated, since
+# they in fact have multiple sysroots, one for each variant supported
+# by the toolchain. So we need to find the particular sysroot we're
+# interested in.
+#
+# To do so, we ask the compiler where its sysroot is by passing all
+# flags (including -march and al.), except the --sysroot flag since we
+# want to the compiler to tell us where its original sysroot
+# is. ARCH_SUBDIR will contain the subdirectory, in the main
+# SYSROOT_DIR, that corresponds to the selected architecture
+# variant. ARCH_SYSROOT_DIR will contain the full path to this
+# location.
+#
+# One might wonder why we don't just bother with ARCH_SYSROOT_DIR. The
+# fact is that in multilib toolchains, the header files are often only
+# present in the main sysroot, and only the libraries are available in
+# each variant-specific sysroot directory.
+
+
+# toolchain_find_sysroot returns the sysroot location for the given
+# compiler + flags. We need to handle cases where libc.a is in:
+#
+#  - lib/
+#  - usr/lib/
+#  - lib32/
+#  - lib64/
+#  - lib32-fp/ (Cavium toolchain)
+#  - lib64-fp/ (Cavium toolchain)
+#  - usr/lib/<tuple>/ (Linaro toolchain)
+#
+# And variations on these.
+define toolchain_find_sysroot
+$$(printf $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:(usr/)?lib(32|64)?([^/]*)?/([^/]*/)?libc\.a::')
+endef
+
+# Returns the lib subdirectory for the given compiler + flags (i.e
+# typically lib32 or lib64 for some toolchains)
+define toolchain_find_libdir
+$$(printf $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:.*/(usr/)?(lib(32|64)?([^/]*)?)/([^/]*/)?libc.a:\2:')
+endef
+
+# Returns the location of the libc.a file for the given compiler + flags
+define toolchain_find_libc_a
+$$(readlink -f $$(LANG=C $(1) -print-file-name=libc.a))
+endef
+
+# Integration of the toolchain into Buildroot: find the main sysroot
+# and the variant-specific sysroot, then copy the needed libraries to
+# the $(TARGET_DIR) and copy the whole sysroot (libraries and headers)
+# to $(STAGING_DIR).
+#
+# Variables are defined as follows:
+#
+#  LIBC_A_LOCATION:     location of the libc.a file in the default
+#                       multilib variant (allows to find the main
+#                       sysroot directory)
+#                       Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/usr/lib/libc.a
+#
+#  SYSROOT_DIR:         the main sysroot directory, deduced from
+#                       LIBC_A_LOCATION by removing the
+#                       usr/lib[32|64]/libc.a part of the path.
+#                       Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/
+#
+# ARCH_LIBC_A_LOCATION: location of the libc.a file in the selected
+#                       multilib variant (taking into account the
+#                       CFLAGS). Allows to find the sysroot of the
+#                       selected multilib variant.
+#                       Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/mips16/soft-float/el/usr/lib/libc.a
+#
+# ARCH_SYSROOT_DIR:     the sysroot of the selected multilib variant,
+#                       deduced from ARCH_LIBC_A_LOCATION by removing
+#                       usr/lib[32|64]/libc.a at the end of the path.
+#                       Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/mips16/soft-float/el/
+#
+# ARCH_LIB_DIR:         'lib', 'lib32' or 'lib64' depending on where libraries
+#                       are stored. Deduced from ARCH_LIBC_A_LOCATION by
+#                       looking at usr/lib??/libc.a.
+#                       Ex: lib
+#
+# ARCH_SUBDIR:          the relative location of the sysroot of the selected
+#                       multilib variant compared to the main sysroot.
+#                      Ex: mips16/soft-float/el
+#
+# SUPPORT_LIB_DIR:      some toolchains, such as recent Linaro toolchains,
+#                       store GCC support libraries (libstdc++,
+#                       libgcc_s, etc.) outside of the sysroot. In
+#                       this case, SUPPORT_LIB_DIR is set to a
+#                       non-empty value, and points to the directory
+#                       where these support libraries are
+#                       available. Those libraries will be copied to
+#                       our sysroot, and the directory will also be
+#                       considered when searching libraries for copy
+#                       to the target filesystem.
+#
+# Please be very careful to check the major toolchain sources:
+# Buildroot, Crosstool-NG, CodeSourcery and Linaro
+# before doing any modification on the below logic.
+
+ifeq ($(BR2_STATIC_LIBS),)
+define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS
+       $(Q)$(call MESSAGE,"Copying external toolchain libraries to target...")
+       $(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \
+               $(call copy_toolchain_lib_root,$$libs); \
+       done
+endef
+endif
+
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),y)
+define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER
+       $(Q)$(call MESSAGE,"Copying gdbserver")
+       $(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
+       ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
+       gdbserver_found=0 ; \
+       for d in $${ARCH_SYSROOT_DIR}/usr \
+                $${ARCH_SYSROOT_DIR}/../debug-root/usr \
+                $${ARCH_SYSROOT_DIR}/usr/$${ARCH_LIB_DIR} \
+                $(TOOLCHAIN_EXTERNAL_INSTALL_DIR); do \
+               if test -f $${d}/bin/gdbserver ; then \
+                       install -m 0755 -D $${d}/bin/gdbserver $(TARGET_DIR)/usr/bin/gdbserver ; \
+                       gdbserver_found=1 ; \
+                       break ; \
+               fi ; \
+       done ; \
+       if [ $${gdbserver_found} -eq 0 ] ; then \
+               echo "Could not find gdbserver in external toolchain" ; \
+               exit 1 ; \
+       fi
+endef
+endif
+
+define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS
+       $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \
+       ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
+       ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
+       SUPPORT_LIB_DIR="" ; \
+       if test `find $${ARCH_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \
+               LIBSTDCPP_A_LOCATION=$$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \
+               if [ -e "$${LIBSTDCPP_A_LOCATION}" ]; then \
+                       SUPPORT_LIB_DIR=`readlink -f $${LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \
+               fi ; \
+       fi ; \
+       if [ "$${SYSROOT_DIR}" == "$${ARCH_SYSROOT_DIR}" ] ; then \
+               ARCH_SUBDIR="" ; \
+       elif [ "`dirname $${ARCH_SYSROOT_DIR}`" = "`dirname $${SYSROOT_DIR}`" ] ; then \
+               SYSROOT_DIR_DIRNAME=`dirname $${SYSROOT_DIR}`/ ; \
+               ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR_DIRNAME}(.*)/$$:\1:"` ; \
+       else \
+               ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR}(.*)/$$:\1:"` ; \
+       fi ; \
+       $(call MESSAGE,"Copying external toolchain sysroot to staging...") ; \
+       $(call copy_toolchain_sysroot,$${SYSROOT_DIR},$${ARCH_SYSROOT_DIR},$${ARCH_SUBDIR},$${ARCH_LIB_DIR},$${SUPPORT_LIB_DIR})
+endef
+
+# Create a symlink from (usr/)$(ARCH_LIB_DIR) to lib.
+# Note: the skeleton package additionally creates lib32->lib or lib64->lib
+# (as appropriate)
+#
+# $1: destination directory (TARGET_DIR / STAGING_DIR)
+create_lib_symlinks = \
+       $(Q)DESTDIR="$(strip $1)" ; \
+       ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
+       if [ ! -e "$${DESTDIR}/$${ARCH_LIB_DIR}" -a ! -e "$${DESTDIR}/usr/$${ARCH_LIB_DIR}" ]; then \
+               ln -snf lib "$${DESTDIR}/$${ARCH_LIB_DIR}" ; \
+               ln -snf lib "$${DESTDIR}/usr/$${ARCH_LIB_DIR}" ; \
+       fi
+
+define TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK
+       $(call create_lib_symlinks,$(STAGING_DIR))
+endef
+
+define TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK
+       $(call create_lib_symlinks,$(TARGET_DIR))
+endef
+
+#
+# Generate gdbinit file for use with Buildroot
+#
+define TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT
+       $(Q)if test -f $(TARGET_CROSS)gdb ; then \
+               $(call MESSAGE,"Installing gdbinit"); \
+               $(gen_gdbinit_file); \
+       fi
+endef
+
+# Various utility functions used by the external toolchain based on musl.
+
+# With the musl C library, the libc.so library directly plays the role
+# of the dynamic library loader. We just need to create a symbolic
+# link to libc.so with the appropriate name.
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_MUSL),y)
+ifeq ($(BR2_i386),y)
+MUSL_ARCH = i386
+else ifeq ($(BR2_ARM_EABIHF),y)
+MUSL_ARCH = armhf
+else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:y)
+MUSL_ARCH = mipsel-sf
+else ifeq ($(BR2_sh),y)
+MUSL_ARCH = sh
+else
+MUSL_ARCH = $(ARCH)
+endif
+define TOOLCHAIN_EXTERNAL_MUSL_LD_LINK
+       ln -sf libc.so $(TARGET_DIR)/lib/ld-musl-$(MUSL_ARCH).so.1
+endef
+endif
+
+# uClibc-ng dynamic loader is called ld-uClibc.so.1, but gcc is not
+# patched specifically for uClibc-ng, so it continues to generate
+# binaries that expect the dynamic loader to be named ld-uClibc.so.0,
+# like with the original uClibc. Therefore, we create an additional
+# symbolic link to make uClibc-ng systems work properly.
+define TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO
+       $(Q)if test -e $(TARGET_DIR)/lib/ld-uClibc.so.1; then \
+               ln -sf ld-uClibc.so.1 $(TARGET_DIR)/lib/ld-uClibc.so.0 ; \
+       fi
+       $(Q)if test -e $(TARGET_DIR)/lib/ld64-uClibc.so.1; then \
+               ln -sf ld64-uClibc.so.1 $(TARGET_DIR)/lib/ld64-uClibc.so.0 ; \
+       fi
+endef
+
+
+################################################################################
+# inner-toolchain-external-package -- defines the generic installation rules
+# for external toolchain packages
+#
+#  argument 1 is the lowercase package name
+#  argument 2 is the uppercase package name, including a HOST_ prefix
+#             for host packages
+#  argument 3 is the uppercase package name, without the HOST_ prefix
+#             for host packages
+#  argument 4 is the type (target or host)
+################################################################################
+define inner-toolchain-external-package
+
+$(2)_INSTALL_STAGING = YES
+$(2)_ADD_TOOLCHAIN_DEPENDENCY = NO
+
+# In fact, we don't need to download the toolchain, since it is already
+# available on the system, so force the site and source to be empty so
+# that nothing will be downloaded/extracted.
+ifeq ($$(BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED),y)
+$(2)_SITE =
+$(2)_SOURCE =
+endif
+
+ifeq ($$(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
+$(2)_EXCLUDES = usr/lib/locale/*
+
+$(2)_POST_EXTRACT_HOOKS += \
+       TOOLCHAIN_EXTERNAL_MOVE
+endif
+
+# Checks for an already installed toolchain: check the toolchain
+# location, check that it is usable, and then verify that it
+# matches the configuration provided in Buildroot: ABI, C++ support,
+# kernel headers version, type of C library and all C library features.
+define $(2)_CONFIGURE_CMDS
+       $$(Q)$$(call check_cross_compiler_exists,$$(TOOLCHAIN_EXTERNAL_CC))
+       $$(Q)$$(call check_unusable_toolchain,$$(TOOLCHAIN_EXTERNAL_CC))
+       $$(Q)SYSROOT_DIR="$$(call toolchain_find_sysroot,$$(TOOLCHAIN_EXTERNAL_CC))" ; \
+       $$(call check_kernel_headers_version,\
+               $$(call toolchain_find_sysroot,$$(TOOLCHAIN_EXTERNAL_CC)),\
+               $$(call qstrip,$$(BR2_TOOLCHAIN_HEADERS_AT_LEAST))); \
+       $$(call check_gcc_version,$$(TOOLCHAIN_EXTERNAL_CC),\
+               $$(call qstrip,$$(BR2_TOOLCHAIN_GCC_AT_LEAST))); \
+       if test "$$(BR2_arm)" = "y" ; then \
+               $$(call check_arm_abi,\
+                       "$$(TOOLCHAIN_EXTERNAL_CC) $$(TOOLCHAIN_EXTERNAL_CFLAGS)",\
+                       $$(TOOLCHAIN_EXTERNAL_READELF)) ; \
+       fi ; \
+       if test "$$(BR2_INSTALL_LIBSTDCPP)" = "y" ; then \
+               $$(call check_cplusplus,$$(TOOLCHAIN_EXTERNAL_CXX)) ; \
+       fi ; \
+       if test "$$(BR2_TOOLCHAIN_HAS_FORTRAN)" = "y" ; then \
+               $$(call check_fortran,$$(TOOLCHAIN_EXTERNAL_FC)) ; \
+       fi ; \
+       if test "$$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)" = "y" ; then \
+               $$(call check_uclibc,$$$${SYSROOT_DIR}) ; \
+       elif test "$$(BR2_TOOLCHAIN_EXTERNAL_MUSL)" = "y" ; then \
+               $$(call check_musl,$$$${SYSROOT_DIR}) ; \
+       else \
+               $$(call check_glibc,$$$${SYSROOT_DIR}) ; \
+       fi
+       $$(Q)$$(call check_toolchain_ssp,$$(TOOLCHAIN_EXTERNAL_CC))
+endef
+
+$(2)_TOOLCHAIN_WRAPPER_ARGS += $$(TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS)
+
+$(2)_BUILD_CMDS = $$(TOOLCHAIN_WRAPPER_BUILD)
+
+define $(2)_INSTALL_STAGING_CMDS
+       $$(TOOLCHAIN_WRAPPER_INSTALL)
+       $$(TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK)
+       $$(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS)
+       $$(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER)
+       $$(TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT)
+endef
+
+ifeq ($$(BR2_TOOLCHAIN_EXTERNAL_MUSL),y)
+$(2)_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_MUSL_LD_LINK
+endif
+
+# Even though we're installing things in both the staging, the host
+# and the target directory, we do everything within the
+# install-staging step, arbitrarily.
+define $(2)_INSTALL_TARGET_CMDS
+       $$(TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK)
+       $$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS)
+       $$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER)
+       $$(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO)
+endef
+
+# Call the generic package infrastructure to generate the necessary
+# make targets
+$(call inner-generic-package,$(1),$(2),$(3),$(4))
+
+endef
+
+toolchain-external-package = $(call inner-toolchain-external-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target)
diff --git a/toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in b/toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in
new file mode 100644 (file)
index 0000000..1f0d4d1
--- /dev/null
@@ -0,0 +1,62 @@
+config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS
+       bool "Codescape IMG GNU Linux Toolchain 2016.05"
+       depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on BR2_MIPS_CPU_MIPS32R6 || (BR2_MIPS_CPU_MIPS64R6 && !BR2_MIPS_SOFT_FLOAT)
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_HOSTARCH_NEEDS_IA32_LIBS
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
+       select BR2_TOOLCHAIN_HAS_FORTRAN
+       help
+         Codescape IMG GNU Linux Toolchain 2015.10 for the MIPS
+         architecture, from Imagination Technologies. It uses gcc
+         4.9.2, binutils 2.24.90, glibc 2.20, gdb 7.9.1 and kernel
+         headers 4.0. It has support for the following variants:
+           - MIPS32r6 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI
+             Select 'MIPS (big endian)' Target Architecture
+             Select 'mips 32r6' Target Architecture Variant
+             Disable 'Use soft-float'
+           - MIPS32r6 - Big-Endian, Soft-Float, 2008 NaN, o32 ABI
+             Select 'MIPS (big endian)' Target Architecture
+             Select 'mips 32r6' Target Architecture Variant
+             Enable 'Use soft-float'
+           - MIPS32r6 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI
+             Select 'MIPS (little endian)' Target Architecture
+             Select 'mips 32r6' Target Architecture Variant
+             Disable 'Use soft-float'
+           - MIPS32r6 - Little-Endian, Soft-Float, 2008 NaN, o32 ABI
+             Select 'MIPS (little endian)' Target Architecture
+             Select 'mips 32r6' Target Architecture Variant
+             Enable 'Use soft-float'
+           - MIPS32r6 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI, microMIPS
+             Select 'MIPS (little endian)' Target Architecture
+             Select 'mips 32r6' Target Architecture Variant
+             Disable 'Use soft-float'
+             Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
+           - MIPS32r6 - Little-Endian, Soft-Float, 2008 NaN, o32 ABI, microMIPS
+             Select 'MIPS (little endian)' Target Architecture
+             Select 'mips 32r6' Target Architecture Variant
+             Enable 'Use soft-float'
+             Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
+           - MIPS64r6 - Big-Endian, Hard-Float, 2008 NaN, n32 ABI
+             Select 'MIPS64 (big endian)' Target Architecture
+             Select 'mips 64r6' Target Architecture Variant
+             Select 'n32' Target ABI
+             Disable 'Use soft-float'
+           - MIPS64r6 - Little-Endian, Hard-Float, 2008 NaN, n32 ABI
+             Select 'MIPS64 (little endian)' Target Architecture
+             Select 'mips 64r6' Target Architecture Variant
+             Select 'n32' Target ABI
+             Disable 'Use soft-float'
+           - MIPS64r6 - Big-Endian, Hard-Float, 2008 NaN, n64 ABI
+             Select 'MIPS64 (big endian)' Target Architecture
+             Select 'mips 64r6' Target Architecture Variant
+             Select 'n64' Target ABI
+             Disable 'Use soft-float'
+           - MIPS64r6 - Little-Endian, Hard-Float, 2008 NaN, n64 ABI
+             Select 'MIPS64 (little endian)' Target Architecture
+             Select 'mips 64r6' Target Architecture Variant
+             Select 'n64' Target ABI
+             Disable 'Use soft-float'
diff --git a/toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options b/toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options
new file mode 100644 (file)
index 0000000..3eaa2a9
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "mips-img-linux-gnu"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-codescape-img-mips"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.hash b/toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.hash
new file mode 100644 (file)
index 0000000..e4ae9e1
--- /dev/null
@@ -0,0 +1,3 @@
+# Codescape toolchains from Imagination Technologies
+# From: http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03/downloads.html
+sha256 e3c1f292ac6a9f12480af431c85a7ed9dfa011a52fd62a50be3363ec6b9bc872  Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz
diff --git a/toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.mk b/toolchain/toolchain-external/toolchain-external-codescape-img-mips/toolchain-external-codescape-img-mips.mk
new file mode 100644 (file)
index 0000000..b4decfb
--- /dev/null
@@ -0,0 +1,47 @@
+################################################################################
+#
+# toolchain-external-codescape-img-mips
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION = 2016.05-03
+TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION)
+TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_STRIP_COMPONENTS = 2
+
+TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_VERSION).for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz
+
+# Special fixup for Codescape MIPS toolchains, that have bin-<abi> and
+# sbin-<abi> directories. We create symlinks bin -> bin-<abi> and sbin
+# -> sbin-<abi> so that the rest of Buildroot can find the toolchain
+# tools in the appropriate location.
+ifeq ($(BR2_MIPS_OABI32),y)
+TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_BIN_DIR_SUFFIX = o32
+else ifeq ($(BR2_MIPS_NABI32),y)
+TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_BIN_DIR_SUFFIX = n32
+else ifeq ($(BR2_MIPS_NABI64),y)
+TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_BIN_DIR_SUFFIX = n64
+endif
+
+define TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_STAGING_FIXUPS
+       rmdir $(STAGING_DIR)/usr/bin $(STAGING_DIR)/usr/sbin
+       ln -sf bin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/bin
+       ln -sf sbin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/sbin
+endef
+
+# The Codescape toolchain uses a sysroot layout that places them
+# side-by-side instead of nested like multilibs. A symlink is needed
+# much like for the nested sysroots which are handled in
+# copy_toolchain_sysroot but there is not enough information in there
+# to determine whether the sysroot layout was nested or side-by-side.
+# Add the symlink here for now.
+define TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SYMLINK
+       $(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))"; \
+       ARCH_SUBDIR=`basename $${ARCH_SYSROOT_DIR}`; \
+       ln -snf . $(STAGING_DIR)/$${ARCH_SUBDIR}
+endef
+
+TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_POST_INSTALL_STAGING_HOOKS += \
+       TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_STAGING_FIXUPS \
+       TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS_SYMLINK
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in b/toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in
new file mode 100644 (file)
index 0000000..f899467
--- /dev/null
@@ -0,0 +1,73 @@
+config BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS
+       bool "Codescape MTI GNU Linux Toolchain 2016.05"
+       depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on BR2_MIPS_CPU_MIPS32R2 || (BR2_MIPS_CPU_MIPS64R2 && !BR2_MIPS_SOFT_FLOAT) || \
+               BR2_MIPS_CPU_MIPS32R5 || (BR2_MIPS_CPU_MIPS64R5 && !BR2_MIPS_SOFT_FLOAT)
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_HOSTARCH_NEEDS_IA32_LIBS
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
+       select BR2_TOOLCHAIN_HAS_FORTRAN
+       help
+         Codescape MTI GNU Linux Toolchain 2015.10 for the MIPS
+         architecture, from Imagination Technologies. It uses gcc
+         4.9.2, binutils 2.24.90, glibc 2.20, gdb 7.9.1 and kernel
+         headers 4.0. It has support for the following variants:
+           - MIPS32r2 - Big-Endian, Hard-Float, Legacy NaN, o32 ABI
+             Select 'MIPS (big endian)' Target Architecture
+             Select 'mips 32r2' Target Architecture Variant
+             Disable 'Use soft-float'
+           - MIPS32r2 - Big-Endian, Hard-Float, 2008 NaN, o32 ABI
+             Select 'MIPS (big endian)' Target Architecture
+             Select 'mips 32r2' Target Architecture Variant
+             Disable 'Use soft-float'
+             Set BR2_TARGET_OPTIMIZATION to '-mnan=2008'
+           - MIPS32r2 - Big-Endian, Soft-Float, Legacy NaN, o32 ABI
+             Select 'MIPS (big endian)' Target Architecture
+             Select 'mips 32r2' Target Architecture Variant
+             Enable 'Use soft-float'
+           - MIPS32r2 - Little-Endian, Hard-Float, Legacy NaN, o32 ABI
+             Select 'MIPS (little endian)' Target Architecture
+             Select 'mips 32r2' Target Architecture Variant
+             Disable 'Use soft-float'
+           - MIPS32r2 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI
+             Select 'MIPS (little endian)' Target Architecture
+             Select 'mips 32r2' Target Architecture Variant
+             Disable 'Use soft-float'
+             Set BR2_TARGET_OPTIMIZATION to '-mnan=2008'
+           - MIPS32r2 - Little-Endian, Soft-Float, Legacy NaN, o32 ABI
+             Select 'MIPS (little endian)' Target Architecture
+             Select 'mips 32r2' Target Architecture Variant
+             Enable 'Use soft-float'
+           - MIPS32r2 - Little-Endian, Hard-Float, 2008 NaN, o32 ABI, microMIPS
+             Select 'MIPS (little endian)' Target Architecture
+             Select 'mips 32r2' Target Architecture Variant
+             Enable 'Use soft-float'
+             Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
+           - MIPS32r2 - Little-Endian, Soft-Float, Legacy NaN, o32 ABI, microMIPS
+             Select 'MIPS (little endian)' Target Architecture
+             Select 'mips 32r2' Target Architecture Variant
+             Disable 'Use soft-float'
+             Set BR2_TARGET_OPTIMIZATION to '-mmicromips'
+           - MIPS64r2 - Big-Endian, Hard-Float, Legacy NaN, n32 ABI
+             Select 'MIPS64 (big endian)' Target Architecture
+             Select 'mips 64r2' Target Architecture Variant
+             Select 'n32' Target ABI
+             Disable 'Use soft-float'
+           - MIPS64r2 - Little-Endian, Hard-Float, Legacy NaN, n32 ABI
+             Select 'MIPS64 (little endian)' Target Architecture
+             Select 'mips 64r2' Target Architecture Variant
+             Select 'n32' Target ABI
+             Disable 'Use soft-float'
+           - MIPS64r2 - Big-Endian, Hard-Float, Legacy NaN, n64 ABI
+             Select 'MIPS64 (big endian)' Target Architecture
+             Select 'mips 64r2' Target Architecture Variant
+             Select 'n64' Target ABI
+             Disable 'Use soft-float'
+           - MIPS64r2 - Little-Endian, Hard-Float, Legacy NaN, n64 ABI
+             Select 'MIPS64 (little endian)' Target Architecture
+             Select 'mips 64r2' Target Architecture Variant
+             Select 'n64' Target ABI
+             Disable 'Use soft-float'
diff --git a/toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options b/toolchain/toolchain-external/toolchain-external-codescape-mti-mips/Config.in.options
new file mode 100644 (file)
index 0000000..464c9b8
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "mips-mti-linux-gnu"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-codescape-mti-mips"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.hash b/toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.hash
new file mode 100644 (file)
index 0000000..0d785f2
--- /dev/null
@@ -0,0 +1,3 @@
+# Codescape toolchains from Imagination Technologies
+# From: http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03/downloads.html
+sha256 10b8ab6d7c492abc19ecabafedc6bc5f12ff88107a3cb76dc452b3a9522d9c56  Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz
diff --git a/toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.mk b/toolchain/toolchain-external/toolchain-external-codescape-mti-mips/toolchain-external-codescape-mti-mips.mk
new file mode 100644 (file)
index 0000000..e5733ca
--- /dev/null
@@ -0,0 +1,47 @@
+################################################################################
+#
+# toolchain-external-codescape-mti-mips
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION = 2016.05-03
+TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION)
+TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_STRIP_COMPONENTS = 2
+
+TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SOURCE = Codescape.GNU.Tools.Package.$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_VERSION).for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz
+
+# Special fixup for Codescape MIPS toolchains, that have bin-<abi> and
+# sbin-<abi> directories. We create symlinks bin -> bin-<abi> and sbin
+# -> sbin-<abi> so that the rest of Buildroot can find the toolchain
+# tools in the appropriate location.
+ifeq ($(BR2_MIPS_OABI32),y)
+TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_BIN_DIR_SUFFIX = o32
+else ifeq ($(BR2_MIPS_NABI32),y)
+TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_BIN_DIR_SUFFIX = n32
+else ifeq ($(BR2_MIPS_NABI64),y)
+TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_BIN_DIR_SUFFIX = n64
+endif
+
+define TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_STAGING_FIXUPS
+       rmdir $(STAGING_DIR)/usr/bin $(STAGING_DIR)/usr/sbin
+       ln -sf bin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/bin
+       ln -sf sbin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/sbin
+endef
+
+# The Codescape toolchain uses a sysroot layout that places them
+# side-by-side instead of nested like multilibs. A symlink is needed
+# much like for the nested sysroots which are handled in
+# copy_toolchain_sysroot but there is not enough information in there
+# to determine whether the sysroot layout was nested or side-by-side.
+# Add the symlink here for now.
+define TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SYMLINK
+       $(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))"; \
+       ARCH_SUBDIR=`basename $${ARCH_SYSROOT_DIR}`; \
+       ln -snf . $(STAGING_DIR)/$${ARCH_SUBDIR}
+endef
+
+TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_POST_INSTALL_STAGING_HOOKS += \
+       TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_STAGING_FIXUPS \
+       TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS_SYMLINK
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in b/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in
new file mode 100644 (file)
index 0000000..2fbb218
--- /dev/null
@@ -0,0 +1,17 @@
+config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
+       bool "CodeSourcery AArch64 2014.11"
+       depends on BR2_aarch64
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on !BR2_STATIC_LIBS
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_TOOLCHAIN_HAS_SSP
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_HOSTARCH_NEEDS_IA32_LIBS
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
+       help
+         Sourcery CodeBench toolchain for the AArch64 architecture,
+         from Mentor Graphics. It uses gcc 4.9.1, binutils
+         2.24.51.20140217, glibc 2.20, gdb 7.7.50 and kernel headers
+         3.16.2.
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options b/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/Config.in.options
new file mode 100644 (file)
index 0000000..1eab839
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "aarch64-amd-linux-gnu"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-codesourcery-aarch64"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.hash b/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.hash
new file mode 100644 (file)
index 0000000..f7d3f29
--- /dev/null
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 405aada821146755c5f2df566375c2a682456d6b8451ee47b88cf1a52b093676  aarch64-amd-2014.11-95-aarch64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
+sha256 3f50dd6ee433eb5b6992a1071b988e50379a738f54f58722bc60081613764716  aarch64-amd-2014.11-95-aarch64-amd-linux-gnu.src.tar.bz2
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.mk b/toolchain/toolchain-external/toolchain-external-codesourcery-aarch64/toolchain-external-codesourcery-aarch64.mk
new file mode 100644 (file)
index 0000000..bc58c44
--- /dev/null
@@ -0,0 +1,22 @@
+################################################################################
+#
+# toolchain-external-codesourcery-aarch64
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_SITE = http://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX)
+TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_VERSION = 2014.11-95
+TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_SOURCE = aarch64-amd-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i686-pc-linux-gnu.tar.bz2
+TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_ACTUAL_SOURCE_TARBALL = aarch64-amd-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX).src.tar.bz2
+
+define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP
+       ln -sf ld-2.20.so $(STAGING_DIR)/lib/ld-linux-aarch64.so.1
+endef
+TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP
+
+define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP
+       ln -sf ld-2.20.so $(TARGET_DIR)/lib/ld-linux-aarch64.so.1
+endef
+TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_POST_INSTALL_TARGET_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in b/toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in
new file mode 100644 (file)
index 0000000..86486c8
--- /dev/null
@@ -0,0 +1,24 @@
+config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64
+       bool "Sourcery CodeBench AMD64 2015.11"
+       depends on BR2_x86_64
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on !BR2_STATIC_LIBS
+       depends on BR2_x86_jaguar || BR2_x86_steamroller
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_TOOLCHAIN_HAS_SSP
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_HOSTARCH_NEEDS_IA32_LIBS
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
+       help
+         Sourcery CodeBench toolchain for the amd64 (x86_64)
+         architectures, from Mentor Graphics. It uses gcc 5.2,
+         binutils 2.25.51, glibc 2.22, gdb 7.10.50 and kernel headers
+         4.2. It has support for the following variants:
+           - AMD Puma/Jaguar (family 16h), glibc
+           Default for x86_64, nothing special to do.
+           - AMD Steamroller (family 15h), glibc
+           Select a steamroller core.
+         No other architecture variants are supported since glibc
+         is optimized for one of these two baselines.
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in.options b/toolchain/toolchain-external/toolchain-external-codesourcery-amd64/Config.in.options
new file mode 100644 (file)
index 0000000..2ab2302
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "x86_64-amd-linux-gnu"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-codesourcery-amd64"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.hash b/toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.hash
new file mode 100644 (file)
index 0000000..ea5f300
--- /dev/null
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 3c31206c8b9277f409ee00e4777ba82dfa6da2a4ca0926501cd5fb6bbd1b407e  amd-2015.11-139-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
+sha256 0b673f5035f97d5d03c31272cddab0f117d39ad76a5ad2a3bc98c156571527de  amd-2015.11-139-x86_64-amd-linux-gnu.src.tar.bz2
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.mk b/toolchain/toolchain-external/toolchain-external-codesourcery-amd64/toolchain-external-codesourcery-amd64.mk
new file mode 100644 (file)
index 0000000..4b8e31c
--- /dev/null
@@ -0,0 +1,12 @@
+################################################################################
+#
+# toolchain-external-codesourcery-amd64
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_SITE = https://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX)
+TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_VERSION = 2015.11-139
+TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_SOURCE = amd-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i686-pc-linux-gnu.tar.bz2
+TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_ACTUAL_SOURCE_TARBALL = amd-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX).src.tar.bz2
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in b/toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in
new file mode 100644 (file)
index 0000000..3cdfc86
--- /dev/null
@@ -0,0 +1,35 @@
+config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM
+       bool "Sourcery CodeBench ARM 2014.05"
+       depends on BR2_arm
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on BR2_ARM_EABI
+       # Unsupported ARM cores
+       depends on !BR2_cortex_a12 && !BR2_cortex_a17
+       depends on !BR2_STATIC_LIBS
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_TOOLCHAIN_HAS_SSP
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_HOSTARCH_NEEDS_IA32_LIBS
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+       help
+         Sourcery CodeBench toolchain for the ARM architecture, from
+         Mentor Graphics. It uses gcc 4.8.3, binutils 2.24.51, glibc
+         2.18 and gdb 7.7.50, kernel headers 3.13. It has support
+         for the following variants:
+           - ARMv5TE, little endian, soft-float, glibc
+             Select ARM926T, ARM10T, XScale or another ARMv5 core
+             Select BR2_SOFT_FLOAT
+           - ARMv4T, little endian, soft-float, glibc
+             Select ARM720T, ARM920T, ARM922T or another ARMv4 core
+             Select BR2_SOFT_FLOAT
+           - ARMv7-A, Thumb 2, little endian, soft-float, glibc
+             Select Cortex-A8, Cortex-A9 or another ARMv7-A core
+             Select BR2_SOFT_FLOAT
+             Set BR2_TARGET_OPTIMIZATION to -mthumb
+
+comment "Sourcery CodeBench toolchains available for the EABI ABI"
+       depends on BR2_arm
+       depends on !BR2_ARM_EABI
+       depends on !BR2_STATIC_LIBS
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options b/toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.in.options
new file mode 100644 (file)
index 0000000..7f3654d
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "arm-none-linux-gnueabi"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-codesourcery-arm"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.hash b/toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.hash
new file mode 100644 (file)
index 0000000..535f4aa
--- /dev/null
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 39ee0e789034334ecc89af94e838e3a4815400ac5ff980f808f466b04778532e  arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
+sha256 e16a5b1e41d7ff1e74161f9405182001bc8d1360d89564e73911032e6966cc0d  arm-2014.05-29-arm-none-linux-gnueabi.src.tar.bz2
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.mk b/toolchain/toolchain-external/toolchain-external-codesourcery-arm/toolchain-external-codesourcery-arm.mk
new file mode 100644 (file)
index 0000000..f96a0e0
--- /dev/null
@@ -0,0 +1,13 @@
+################################################################################
+#
+# toolchain-external-codesourcery-arm
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_VERSION = 2014.05-29
+
+TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_SITE = http://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX)
+TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_SOURCE = arm-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i686-pc-linux-gnu.tar.bz2
+TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_ACTUAL_SOURCE_TARBALL = arm-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX).src.tar.bz2
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in b/toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in
new file mode 100644 (file)
index 0000000..6a13ae6
--- /dev/null
@@ -0,0 +1,93 @@
+config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
+       bool "Sourcery CodeBench MIPS 2016.05"
+       depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
+       depends on BR2_MIPS_CPU_MIPS32R2 || BR2_MIPS_CPU_MIPS64R2
+       # Unsupported MIPS cores
+       depends on !BR2_mips_interaptiv
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on !BR2_MIPS_NABI32
+       depends on !BR2_STATIC_LIBS
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_TOOLCHAIN_HAS_SSP
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_HOSTARCH_NEEDS_IA32_LIBS
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
+       help
+         Sourcery CodeBench toolchain for the MIPS architecture, from
+         Mentor Graphics. It uses gcc 5.3, binutils 2.25.51, glibc
+         2.23, uClibc 0.9.30 and gdb 7.10.50, kernel headers 4.4.1. It
+         has support for the following variants:
+           - MIPS32r2 - Big-Endian, 2008 NaN, O32
+             Select MIPS (big endian) core
+             Disable BR2_SOFT_FLOAT
+             Set BR2_TARGET_OPTIMIZATION to -mnan=2008
+           - MIPS32r2 - Big-Endian, O32
+             Select MIPS (big endian) core
+             Disable BR2_SOFT_FLOAT
+           - MIPS32r2 - Big-Endian, O32, MIPS16
+             Select MIPS (big endian) core
+             Disable BR2_SOFT_FLOAT
+             Set BR2_TARGET_OPTIMIZATION to -mips16
+           - MIPS32r2 - Big-Endian, Soft-Float, O32
+             Select MIPS (big endian) core
+             Select BR2_SOFT_FLOAT
+           - MIPS32r2 - Big-Endian, Soft-Float, O32, MIPS16
+             Select MIPS (big endian) core
+             Select BR2_SOFT_FLOAT
+             Set BR2_TARGET_OPTIMIZATION to -mips16
+           - MIPS32r2 - Little-Endian, 2008 NaN, O32
+             Select MIPS (little endian) core
+             Disable BR2_SOFT_FLOAT
+             Set BR2_TARGET_OPTIMIZATION to -mnan=2008
+           - MIPS32r2 - Little-Endian, O32
+             Select MIPS (little endian) core
+             Disable BR2_SOFT_FLOAT
+           - MIPS32r2 - Little-Endian, O32, MIPS16
+             Select MIPS (little endian) core
+             Disable BR2_SOFT_FLOAT
+             Set BR2_TARGET_OPTIMIZATION to -mips16
+           - MIPS32r2 - Little-Endian, Soft-Float, O32
+             Select MIPS (little endian) core
+             Select BR2_SOFT_FLOAT
+           - MIPS32r2 - Little-Endian, Soft-Float, O32, MIPS16
+             Select MIPS (little endian) core
+             Select BR2_SOFT_FLOAT
+             Set BR2_TARGET_OPTIMIZATION to -mips16
+           - MIPS32r2 - Little-Endian, Soft-Float, O32, microMIPS
+             Select MIPS (little endian) core
+             Select BR2_SOFT_FLOAT
+             Set BR2_TARGET_OPTIMIZATION to -mmicromips
+           - MIPS32r2 - uClibc, Big-Endian, 2008 NaN, O32
+             Not usable in Buildroot yet.
+           - MIPS32r2 - uClibc, Big-Endian, O32
+             Not usable in Buildroot yet.
+           - MIPS32r2 - uClibc, Big-Endian, Soft-Float, O32
+             Not usable in Buildroot yet.
+           - MIPS32r2 - uClibc, Little-Endian, 2008 NaN, O32
+             Not usable in Buildroot yet.
+           - MIPS32r2 - uClibc, Little-Endian, O32
+             Not usable in Buildroot yet.
+           - MIPS32r2 - uClibc, Little-Endian, Soft-Float, O32
+             Not usable in Buildroot yet.
+           - MIPS64r2 - Big-Endian, N64
+             Select MIPS64 (big endian) core
+             Select the n64 ABI
+             Disable BR2_SOFT_FLOAT
+           - MIPS64r2 - Big-Endian, Soft-Float, N64
+             Select MIPS64 (big endian) core
+             Select the n64 ABI
+             Select BR2_SOFT_FLOAT
+           - MIPS64r2 - Little-Endian, N64
+             Select MIPS64 (little endian) core
+             Select the n64 ABI
+             Disable BR2_SOFT_FLOAT
+           - MIPS64r2 - Little-Endian, Soft-Float, N64
+             Select MIPS64 (little endian) core
+             Select the n64 ABI
+             Select BR2_SOFT_FLOAT
+
+comment "Sourcery CodeBench toolchains are only available for MIPS/MIPS64 o32 and n64"
+       depends on BR2_MIPS_NABI32
+       depends on !BR2_STATIC_LIBS
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options b/toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options
new file mode 100644 (file)
index 0000000..677cc67
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "mips-linux-gnu"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-codesourcery-mips"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.hash b/toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.hash
new file mode 100644 (file)
index 0000000..2d80338
--- /dev/null
@@ -0,0 +1,3 @@
+# Locally computed
+sha256 d354447c4c5160439dafd5464fa3a0266dd41e79f973477238e4f0215a6b5397  mips-2016.05-8-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
+sha256 2658e55d5b71bba25d6f77e868e18b200ea5f75c8add7ed3a9266e716d9adfff  mips-2016.05-8-mips-linux-gnu.src.tar.bz2
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.mk b/toolchain/toolchain-external/toolchain-external-codesourcery-mips/toolchain-external-codesourcery-mips.mk
new file mode 100644 (file)
index 0000000..5117d47
--- /dev/null
@@ -0,0 +1,13 @@
+################################################################################
+#
+# toolchain-external-codesourcery-mips
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_VERSION = 2016.05-8
+
+TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_SITE = http://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX)
+TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_SOURCE = mips-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i686-pc-linux-gnu.tar.bz2
+TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_ACTUAL_SOURCE_TARBALL = mips-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX).src.tar.bz2
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in b/toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in
new file mode 100644 (file)
index 0000000..54eed8c
--- /dev/null
@@ -0,0 +1,17 @@
+config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
+       bool "Sourcery CodeBench Nios-II 2016.05"
+       depends on BR2_nios2
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on !BR2_STATIC_LIBS
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_TOOLCHAIN_HAS_SSP
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_HOSTARCH_NEEDS_IA32_LIBS
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
+       select BR2_TOOLCHAIN_HAS_BINUTILS_BUG_19405 # based-on binutils-2.25.1
+       help
+         Sourcery CodeBench toolchain for the Nios-II architecture,
+         from Mentor Graphics. It uses gcc 5.3, binutils 2.25.51,
+         glibc 2.23, gdb 7.10.50 and kernel headers 4.4.
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options b/toolchain/toolchain-external/toolchain-external-codesourcery-niosII/Config.in.options
new file mode 100644 (file)
index 0000000..07cc5ed
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "nios2-linux-gnu"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-codesourcery-niosII"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.hash b/toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.hash
new file mode 100644 (file)
index 0000000..a60c49f
--- /dev/null
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 750639290744adda931c81fa2cd2ffc2bde972488047824dcfaa53c42562191d  sourceryg++-2016.05-10-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
+sha256 3dc1c2685c0472059547dd7becb5dc991541b8176af39fa7aa5f601d38b9879a  sourceryg++-2016.05-10-nios2-linux-gnu.src.tar.bz2
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.mk b/toolchain/toolchain-external/toolchain-external-codesourcery-niosII/toolchain-external-codesourcery-niosII.mk
new file mode 100644 (file)
index 0000000..3eb6679
--- /dev/null
@@ -0,0 +1,13 @@
+################################################################################
+#
+# toolchain-external-codesourcery-niosII
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION = 2016.05-10
+
+TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_SITE = http://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX)
+TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_SOURCE = sourceryg++-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i686-pc-linux-gnu.tar.bz2
+TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_ACTUAL_SOURCE_TARBALL = sourceryg++-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX).src.tar.bz2
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in b/toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in
new file mode 100644 (file)
index 0000000..a47dab7
--- /dev/null
@@ -0,0 +1,25 @@
+config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH
+       bool "Sourcery CodeBench SH 2012.09"
+       depends on BR2_sh4a || BR2_sh4aeb
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on !BR2_STATIC_LIBS
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_TOOLCHAIN_HAS_SSP
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_HOSTARCH_NEEDS_IA32_LIBS
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
+       help
+         Sourcery CodeBench toolchain for the SuperH architecture,
+         from Mentor Graphics. It uses gcc 4.7.2, binutils 2.23.51,
+         glibc 2.16, uClibc 0.9.30, gdb 7.4.50 and kernel headers
+         3.5.4. It has support for the following variants:
+           - SH4A, glibc, little endian
+             Default.
+           - SH4A, glibc, big endian
+             Add -mb to BR2_TARGET_OPTIMIZATION
+           - SH4A, uClibc, little endian
+             Not usable in Buildroot yet.
+           - SH4A, uClibc, big endian
+             Not usable in Buildroot yet.
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in.options b/toolchain/toolchain-external/toolchain-external-codesourcery-sh/Config.in.options
new file mode 100644 (file)
index 0000000..90061ce
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "sh-linux-gnu"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-codesourcery-sh"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.hash b/toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.hash
new file mode 100644 (file)
index 0000000..ff2ba5f
--- /dev/null
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 59d6766fde244931aa52db01433d5acd051998762a931121c5fc109536a1a802  renesas-2012.09-61-sh-linux-gnu-i686-pc-linux-gnu.tar.bz2
+sha256 e2e58c10e52395d5d35157e35f85233f713c6f9223a652dfc56194cfd2eed004  renesas-2012.09-61-sh-linux-gnu.src.tar.bz2
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.mk b/toolchain/toolchain-external/toolchain-external-codesourcery-sh/toolchain-external-codesourcery-sh.mk
new file mode 100644 (file)
index 0000000..5370bb2
--- /dev/null
@@ -0,0 +1,13 @@
+################################################################################
+#
+# toolchain-external-sourcery-sh
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_VERSION = 2012.09-61
+
+TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_SITE = https://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX)
+TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_SOURCE = renesas-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i686-pc-linux-gnu.tar.bz2
+TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_ACTUAL_SOURCE_TARBALL = renesas-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_SH_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX).src.tar.bz2
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in b/toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in
new file mode 100644 (file)
index 0000000..bcbdd26
--- /dev/null
@@ -0,0 +1,29 @@
+config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86
+       bool "Sourcery CodeBench x86/x86_64 2012.09"
+       depends on BR2_i386 || BR2_x86_64
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on !BR2_STATIC_LIBS
+       depends on !BR2_x86_jaguar
+       depends on !BR2_x86_steamroller
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_TOOLCHAIN_HAS_SSP
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_HOSTARCH_NEEDS_IA32_LIBS
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
+       help
+         Sourcery CodeBench toolchain for the x86/x86_64
+         architectures, from Mentor Graphics. It uses gcc 4.7.2,
+         binutils 2.23.51, glibc 2.16, gdb 7.4.50 and kernel headers
+         3.5.4. It has support for the following variants:
+           - Intel Pentium 4, glibc, 32 bits
+             Default for x86, nothing special to do.
+           - Intel Atom, glibc, 32 bits
+             Select an Atom core
+           - Intel Xeon, glibc, 64 bits
+             Default for x86_64, nothing special to do.
+           - Intel Core 2, glibc, 64 bits
+             Select a Core 2 core
+         Other architecture variants (beyond Pentium-4/Xeon) are
+         supported as well, but glibc is not optimised for it.
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in.options b/toolchain/toolchain-external/toolchain-external-codesourcery-x86/Config.in.options
new file mode 100644 (file)
index 0000000..65b62f3
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "i686-pc-linux-gnu"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-codesourcery-x86"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.hash b/toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.hash
new file mode 100644 (file)
index 0000000..a003f7a
--- /dev/null
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 ea804cf02014369da52abc4f64e91e96bde2dd2230aca96109459013d4545458  ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2
+sha256 1a9519e415a1e6892c760bf21f7e98f3a633a9d1c5bb8781a96d338e4dd62717  ia32-2012.09-62-i686-pc-linux-gnu.src.tar.bz2
diff --git a/toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.mk b/toolchain/toolchain-external/toolchain-external-codesourcery-x86/toolchain-external-codesourcery-x86.mk
new file mode 100644 (file)
index 0000000..5ee6991
--- /dev/null
@@ -0,0 +1,12 @@
+################################################################################
+#
+# toolchain-external-codesourcery-x86
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_SITE = https://sourcery.mentor.com/public/gnu_toolchain/$(TOOLCHAIN_EXTERNAL_PREFIX)
+TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_VERSION = 2012.09-62
+TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_SOURCE = ia32-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX)-i386-linux.tar.bz2
+TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_ACTUAL_SOURCE_TARBALL = ia32-$(TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_VERSION)-$(TOOLCHAIN_EXTERNAL_PREFIX).src.tar.bz2
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-custom/Config.in b/toolchain/toolchain-external/toolchain-external-custom/Config.in
new file mode 100644 (file)
index 0000000..a913feb
--- /dev/null
@@ -0,0 +1,5 @@
+config BR2_TOOLCHAIN_EXTERNAL_CUSTOM
+       bool "Custom toolchain"
+       help
+         Use this option to use a custom toolchain pre-installed on
+         your system.
diff --git a/toolchain/toolchain-external/toolchain-external-custom/Config.in.options b/toolchain/toolchain-external/toolchain-external-custom/Config.in.options
new file mode 100644 (file)
index 0000000..5ff2491
--- /dev/null
@@ -0,0 +1,345 @@
+if BR2_TOOLCHAIN_EXTERNAL_CUSTOM
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-custom"
+
+config BR2_TOOLCHAIN_EXTERNAL_URL
+       string "Toolchain URL"
+       depends on BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD
+       help
+         URL of the custom toolchain tarball to download and install.
+
+config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX
+       string "Toolchain prefix"
+       default "$(ARCH)-linux"
+
+choice
+       bool "External toolchain gcc version"
+       default BR2_TOOLCHAIN_EXTERNAL_GCC_4_3
+       help
+         Set to the gcc version that is used by your external
+         toolchain.
+
+config BR2_TOOLCHAIN_EXTERNAL_GCC_6
+       bool "6.x"
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_6
+
+config BR2_TOOLCHAIN_EXTERNAL_GCC_5
+       bool "5.x"
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
+
+config BR2_TOOLCHAIN_EXTERNAL_GCC_4_9
+       bool "4.9.x"
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
+
+config BR2_TOOLCHAIN_EXTERNAL_GCC_4_8
+       bool "4.8.x"
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+
+config BR2_TOOLCHAIN_EXTERNAL_GCC_4_7
+       bool "4.7.x"
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_7
+
+config BR2_TOOLCHAIN_EXTERNAL_GCC_4_6
+       bool "4.6.x"
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_6
+
+config BR2_TOOLCHAIN_EXTERNAL_GCC_4_5
+       bool "4.5.x"
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
+
+config BR2_TOOLCHAIN_EXTERNAL_GCC_4_4
+       bool "4.4.x"
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_4
+
+config BR2_TOOLCHAIN_EXTERNAL_GCC_4_3
+       bool "4.3.x"
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
+
+config BR2_TOOLCHAIN_EXTERNAL_GCC_OLD
+       bool "older"
+       help
+         Use this option if your GCC version is older than any of the
+         above.
+
+         Note that the Buildroot community doesn't do any testing with
+         such old toolchains. Some packages may fail to build in
+         surprising ways, or the generated root filesystem may not
+         work at all. Use such old toolchains at your own risk.
+
+endchoice
+
+choice
+       bool "External toolchain kernel headers series"
+       default BR2_TOOLCHAIN_EXTERNAL_HEADERS_REALLY_OLD
+       help
+         Set to the kernel headers version that were used to build
+         this external toolchain.
+
+         This is used to hide/show some packages that have strict
+         requirements on the version of kernel headers.
+
+         If unsure what version your toolchain is using, you can look
+         at the value of LINUX_VERSION_CODE in linux/version.h in your
+         toolchain. The Linux version is M.m.p, with:
+           M = ( LINUX_VERSION_CODE >> 16 ) & 0xFF
+           m = ( LINUX_VERSION_CODE >> 8  ) & 0xFF
+           p = ( LINUX_VERSION_CODE >> 0  ) & 0xFF
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_8
+       bool "4.8.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_7
+       bool "4.7.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_7
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6
+       bool "4.6.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_5
+       bool "4.5.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_4
+       bool "4.4.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_3
+       bool "4.3.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_3
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_2
+       bool "4.2.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_2
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1
+       bool "4.1.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_1
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_0
+       bool "4.0.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_19
+       bool "3.19.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_19
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_18
+       bool "3.18.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_17
+       bool "3.17.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_16
+       bool "3.16.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_16
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_15
+       bool "3.15.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_14
+       bool "3.14.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_14
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_13
+       bool "3.13.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_12
+       bool "3.12.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_11
+       bool "3.11.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_11
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10
+       bool "3.10.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_9
+       bool "3.9.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_9
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_8
+       bool "3.8.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_8
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_7
+       bool "3.7.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_6
+       bool "3.6.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_5
+       bool "3.5.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_5
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_4
+       bool "3.4.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_4
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_3
+       bool "3.3.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_3
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_2
+       bool "3.2.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_1
+       bool "3.1.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_1
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_0
+       bool "3.0.x"
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
+
+config BR2_TOOLCHAIN_EXTERNAL_HEADERS_REALLY_OLD
+       bool "2.6.x"
+
+endchoice
+
+choice
+       prompt "External toolchain C library"
+       default BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
+
+config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
+       bool "uClibc/uClibc-ng"
+       select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+       # For the time being, we assume that all custom external
+       # toolchains have shadow password support.
+       select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
+       help
+         Select this option if your external toolchain uses the
+         uClibc (available from http://www.uclibc.org/)
+         or uClibc-ng (available from http://www.uclibc-ng.org)
+         C library.
+
+config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC
+       bool "glibc/eglibc"
+       depends on !BR2_STATIC_LIBS
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       help
+         Select this option if your external toolchain uses the GNU C
+         library (available from https://www.gnu.org/software/libc/)
+         or its variant the eglibc library (http://www.eglibc.org/).
+
+         Note: eglibc is a variant of glibc that (among other things)
+         can be configured to exclude some of its features. Using a
+         toolchain with eglibc configured to exclude key features may
+         cause build failures to some packages.
+
+comment "(e)glibc only available with shared lib support"
+       depends on BR2_STATIC_LIBS
+
+config BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL
+       bool "musl (experimental)"
+       select BR2_TOOLCHAIN_EXTERNAL_MUSL
+       help
+         Select this option if your external toolchain uses the
+         'musl' C library, available from http://www.musl-libc.org/.
+
+endchoice
+
+if BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
+
+config BR2_TOOLCHAIN_EXTERNAL_WCHAR
+       bool "Toolchain has WCHAR support?"
+       select BR2_USE_WCHAR
+       help
+         Select this option if your external toolchain supports
+         WCHAR. If you don't know, leave the default value, Buildroot
+         will tell you if it's correct or not.
+
+config BR2_TOOLCHAIN_EXTERNAL_LOCALE
+       bool "Toolchain has locale support?"
+       select BR2_TOOLCHAIN_EXTERNAL_WCHAR
+       select BR2_ENABLE_LOCALE
+       help
+         Select this option if your external toolchain has locale
+         support. If you don't know, leave the default value,
+         Buildroot will tell you if it's correct or not.
+
+config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
+       bool "Toolchain has threads support?"
+       select BR2_TOOLCHAIN_HAS_THREADS
+       default y
+       help
+         Select this option if your external toolchain has thread
+         support. If you don't know, leave the default value,
+         Buildroot will tell you if it's correct or not.
+
+if BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
+
+config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG
+       bool "Toolchain has threads debugging support?"
+       select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
+       default y
+       help
+         Select this option if your external toolchain has thread
+         debugging support. If you don't know, leave the default
+         value, Buildroot will tell you if it's correct or not.
+
+config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_NPTL
+       bool "Toolchain has NPTL threads support?"
+       select BR2_TOOLCHAIN_HAS_THREADS_NPTL
+       default y
+       help
+         Select this option if your external toolchain uses the NPTL
+         (Native Posix Thread Library) implementation of Posix
+         threads. If you don't know, leave the default value,
+         Buildroot will tell you if it's correct or not.
+
+endif # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS
+
+endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC
+
+config BR2_TOOLCHAIN_EXTERNAL_HAS_SSP
+       bool "Toolchain has SSP support?"
+       select BR2_TOOLCHAIN_HAS_SSP
+       default y if BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       default y if BR2_TOOLCHAIN_EXTERNAL_MUSL
+       help
+         Selection this option if your external toolchain has Stack
+         Smashing Protection support enabled. If you don't know,
+         leave the default value, Buildroot will tell you if it's
+         correct or not.
+
+config BR2_TOOLCHAIN_EXTERNAL_INET_RPC
+       bool "Toolchain has RPC support?"
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       depends on !BR2_TOOLCHAIN_EXTERNAL_MUSL
+       default y if BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       help
+         Select this option if your external toolchain supports
+         RPC. If you don't know, leave the default value, Buildroot
+         will tell you if it's correct or not.
+
+config BR2_TOOLCHAIN_EXTERNAL_CXX
+       bool "Toolchain has C++ support?"
+       select BR2_INSTALL_LIBSTDCPP
+       help
+         Select this option if your external toolchain has C++
+         support. If you don't know, leave the default value,
+         Buildroot will tell you if it's correct or not.
+
+config BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS
+       string "Extra toolchain libraries to be copied to target"
+       help
+         If your external toolchain provides extra libraries that
+         need to be copied to the target filesystem, enter them
+         here, separated by spaces. They will be copied to the
+         target's /lib directory.
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-custom/toolchain-external-custom.mk b/toolchain/toolchain-external/toolchain-external-custom/toolchain-external-custom.mk
new file mode 100644 (file)
index 0000000..c4ae612
--- /dev/null
@@ -0,0 +1,15 @@
+################################################################################
+#
+# toolchain-external-custom
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_CUSTOM_SITE = $(patsubst %/,%,$(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL))))
+TOOLCHAIN_EXTERNAL_CUSTOM_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
+
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CUSTOM),y)
+# We can't check hashes for custom downloaded toolchains
+BR_NO_CHECK_HASH_FOR += $(TOOLCHAIN_EXTERNAL_SOURCE)
+endif
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in b/toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in
new file mode 100644 (file)
index 0000000..662f7d7
--- /dev/null
@@ -0,0 +1,15 @@
+config BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
+       bool "Linaro AArch64 2016.05"
+       depends on BR2_aarch64
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on !BR2_STATIC_LIBS
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_TOOLCHAIN_HAS_SSP
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
+       select BR2_TOOLCHAIN_HAS_FORTRAN
+       help
+         Toolchain for the AArch64 architecture, from
+         http://www.linaro.org/engineering/armv8/
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options b/toolchain/toolchain-external/toolchain-external-linaro-aarch64/Config.in.options
new file mode 100644 (file)
index 0000000..099c6c0
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "aarch64-linux-gnu"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-linaro-aarch64"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.hash b/toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.hash
new file mode 100644 (file)
index 0000000..7a2c038
--- /dev/null
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 d43227248f282a652da42322fcf4abfd3021f2a2f62e0cf6e242d82f55966ba9  gcc-linaro-5.3.1-2016.05-i686_aarch64-linux-gnu.tar.xz
+sha256 1941dcf6229d6706bcb89b7976d5d43d170efdd17c27d5fe1738e7ecf22adc37  gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu.tar.xz
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.mk b/toolchain/toolchain-external/toolchain-external-linaro-aarch64/toolchain-external-linaro-aarch64.mk
new file mode 100644 (file)
index 0000000..a0543a7
--- /dev/null
@@ -0,0 +1,16 @@
+################################################################################
+#
+# toolchain-external-linaro-aarch64
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION = 2016.05
+TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)/aarch64-linux-gnu
+
+ifeq ($(HOSTARCH),x86)
+TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)-i686_aarch64-linux-gnu.tar.xz
+else
+TOOLCHAIN_EXTERNAL_LINARO_AARCH64_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_AARCH64_VERSION)-x86_64_aarch64-linux-gnu.tar.xz
+endif
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in b/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in
new file mode 100644 (file)
index 0000000..bf8649a
--- /dev/null
@@ -0,0 +1,27 @@
+comment "Linaro toolchains available for Cortex-A + EABIhf"
+       depends on BR2_arm
+       depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF
+       depends on !BR2_STATIC_LIBS
+
+config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
+       bool "Linaro ARM 2016.05"
+       depends on BR2_arm
+       depends on BR2_ARM_CPU_ARMV7A
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on BR2_ARM_EABIHF
+       depends on !BR2_STATIC_LIBS
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_TOOLCHAIN_HAS_SSP
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
+       select BR2_TOOLCHAIN_HAS_FORTRAN
+       help
+         Linaro toolchain for the ARM architecture. It uses Linaro
+         GCC 2016.05 (based on gcc 5.3.1), Linaro GDB 2016.05 (based on
+         GDB 7.11.1), glibc 2.21, Binutils 2016.05 (based on 2.25). It
+         generates code that runs on all Cortex-A profile devices,
+         but tuned for the Cortex-A9. The code generated is Thumb 2,
+         with the hard floating point calling convention, and uses
+         the VFPv3-D16 FPU instructions.
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options b/toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.options
new file mode 100644 (file)
index 0000000..dcbc659
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "arm-linux-gnueabihf"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-linaro-arm"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash b/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.hash
new file mode 100644 (file)
index 0000000..8106426
--- /dev/null
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 f1421c580ce977226f4fefc9c409b3b423260cc65a6e9dc6da88bb3478a521a0  gcc-linaro-5.3.1-2016.05-i686_arm-linux-gnueabihf.tar.xz
+sha256 987941c9fffdf56ffcbe90e8984673c16648c477b537fcf43add22fa62f161cd  gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf.tar.xz
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk b/toolchain/toolchain-external/toolchain-external-linaro-arm/toolchain-external-linaro-arm.mk
new file mode 100644 (file)
index 0000000..64918ca
--- /dev/null
@@ -0,0 +1,16 @@
+################################################################################
+#
+# toolchain-external-linaro-arm
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION = 2016.05
+TOOLCHAIN_EXTERNAL_LINARO_ARM_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)/arm-linux-gnueabihf
+
+ifeq ($(HOSTARCH),x86)
+TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-i686_arm-linux-gnueabihf.tar.xz
+else
+TOOLCHAIN_EXTERNAL_LINARO_ARM_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARM_VERSION)-x86_64_arm-linux-gnueabihf.tar.xz
+endif
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in b/toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in
new file mode 100644 (file)
index 0000000..ed84c47
--- /dev/null
@@ -0,0 +1,26 @@
+comment "Linaro toolchains available for Cortex-A + EABIhf"
+       depends on BR2_armeb
+       depends on !BR2_ARM_CPU_ARMV7A || !BR2_ARM_EABIHF
+       depends on !BR2_STATIC_LIBS
+
+config BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
+       bool "Linaro armeb 2016.05"
+       depends on BR2_armeb
+       depends on BR2_ARM_CPU_ARMV7A
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       depends on BR2_ARM_EABIHF
+       depends on !BR2_STATIC_LIBS
+       select BR2_TOOLCHAIN_EXTERNAL_GLIBC
+       select BR2_TOOLCHAIN_HAS_SSP
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_0
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
+       help
+         Linaro toolchain for the ARM big endian architecture. It
+         uses Linaro GCC 2016.05 (based on gcc 5.3.1), Linaro GDB
+         2016.05 (based on GDB 7.11.1), glibc 2.21, Binutils 2016.05
+         (based on 2.25). It generates code that runs on all Cortex-A
+         profile devices, but tuned for the Cortex-A9. The code
+         generated is Thumb 2, with the hard floating point calling
+         convention, and uses the VFPv3-D16 FPU instructions.
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options b/toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options
new file mode 100644 (file)
index 0000000..225e90f
--- /dev/null
@@ -0,0 +1,9 @@
+if BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "armeb-linux-gnueabihf"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-linaro-armeb"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.hash b/toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.hash
new file mode 100644 (file)
index 0000000..7952b50
--- /dev/null
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 f6e9c0d3320760fe8f89e9ec3acdd7b4da7eff889c094b4a2acc286fd46f334f  gcc-linaro-5.3.1-2016.05-i686_armeb-linux-gnueabihf.tar.xz
+sha256 6cf41c8944be56279cc14992aa075174b7a4c5938502536266eaaeef048f9440  gcc-linaro-5.3.1-2016.05-x86_64_armeb-linux-gnueabihf.tar.xz
diff --git a/toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.mk b/toolchain/toolchain-external/toolchain-external-linaro-armeb/toolchain-external-linaro-armeb.mk
new file mode 100644 (file)
index 0000000..cf2f3ad
--- /dev/null
@@ -0,0 +1,16 @@
+################################################################################
+#
+# toolchain-external-linaro-armeb
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION = 2016.05
+TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)/armeb-linux-gnueabihf
+
+ifeq ($(HOSTARCH),x86)
+TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)-i686_armeb-linux-gnueabihf.tar.xz
+else
+TOOLCHAIN_EXTERNAL_LINARO_ARMEB_SOURCE = gcc-linaro-5.3.1-$(TOOLCHAIN_EXTERNAL_LINARO_ARMEB_VERSION)-x86_64_armeb-linux-gnueabihf.tar.xz
+endif
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-musl-cross/Config.in b/toolchain/toolchain-external/toolchain-external-musl-cross/Config.in
new file mode 100644 (file)
index 0000000..c72f9d7
--- /dev/null
@@ -0,0 +1,30 @@
+config BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS
+       bool "Musl 1.1.12 toolchain"
+       depends on (BR2_arm && BR2_ARM_EABI && BR2_USE_MMU) || \
+               (BR2_arm && BR2_ARM_EABIHF && !BR2_ARM_CPU_ARMV4 && BR2_USE_MMU) || \
+               (BR2_armeb && BR2_ARM_EABI && !BR2_ARM_CPU_ARMV7A && BR2_USE_MMU) || \
+               BR2_i386 || (BR2_mips && !BR2_SOFT_FLOAT) || \
+               BR2_mipsel || (BR2_powerpc && BR2_powerpc_CLASSIC) || \
+               BR2_sh4 || BR2_sh4eb || \
+               BR2_x86_64
+       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+       # Unsupported MIPS cores
+       depends on !BR2_mips_interaptiv && !BR2_mips_m5150
+       # Unsupported for MIPS R6
+       depends on !BR2_MIPS_CPU_MIPS32R6 && !BR2_MIPS_CPU_MIPS64R6
+       select BR2_TOOLCHAIN_EXTERNAL_MUSL
+       select BR2_TOOLCHAIN_HAS_SSP
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_HOSTARCH_NEEDS_IA32_LIBS
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_5
+       help
+         Toolchain based on the Musl C library, provided by the
+         musl-cross project. It uses gcc 5.3, binutils 2.25.1 and
+         musl 1.1.12. It does not have a cross debugger included.
+
+         The ARM soft-float toolchain is built for ARMv4t, while the
+         ARM hard-float toolchain is built for ARMv5t.
+         The x86 toolchain is built for i486.
+
+         http://musl.codu.org/
diff --git a/toolchain/toolchain-external/toolchain-external-musl-cross/Config.in.options b/toolchain/toolchain-external/toolchain-external-musl-cross/Config.in.options
new file mode 100644 (file)
index 0000000..cd12355
--- /dev/null
@@ -0,0 +1,19 @@
+if BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "arm-linux-musleabi"     if BR2_arm && BR2_ARM_EABI
+       default "arm-linux-musleabihf"   if BR2_arm && BR2_ARM_EABIHF
+       default "armeb-linux-musleabi"   if BR2_armeb
+       default "i486-linux-musl"        if BR2_i386
+       default "mips-linux-musl"        if (BR2_mips && !BR2_SOFT_FLOAT)
+       default "mipsel-linux-musl"      if (BR2_mipsel && !BR2_SOFT_FLOAT)
+       default "mipsel-sf-linux-musl"   if (BR2_mipsel && BR2_SOFT_FLOAT)
+       default "powerpc-linux-musl"     if BR2_powerpc
+       default "sh4-linux-musl"         if BR2_sh4
+       default "sh4eb-linux-musl"       if BR2_sh4eb
+       default "x86_64-linux-musl"      if BR2_x86_64
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-musl-cross"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.hash b/toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.hash
new file mode 100644 (file)
index 0000000..beef8fd
--- /dev/null
@@ -0,0 +1,12 @@
+# Locally calculated
+sha256 e32c23d0b83639fc10ad06666ec086b66453b9be44415fe1a818c3c3b526dfb1  crossx86-armeb-linux-musleabi-1.1.12.tar.xz
+sha256 eb81bd5d6ada454c6e854b18bfa8dc801333782152166f6cab9fb7cd11692987  crossx86-arm-linux-musleabi-1.1.12.tar.xz
+sha256 a050da284ff22d291ae71dfc249ebdedb18334b8d626804760ce7d5963e392e6  crossx86-arm-linux-musleabihf-1.1.12.tar.xz
+sha256 18d07f5c8f4cfe373461cf21cf7b1bfefa820a37e96a69b68e0f315d528b4286  crossx86-i486-linux-musl-1.1.12.tar.xz
+sha256 1c1480c2618097e402fe804c1431fbd49b0d43520af81d4c1a695a2fa13a3922  crossx86-mipsel-linux-musl-1.1.12.tar.xz
+sha256 f0a8b3eb0566138ab3cc77bc09648be15bc325da974ec98b9e67f2fb82be3295  crossx86-mipsel-sf-linux-musl-1.1.12.tar.xz
+sha256 6a99989c3dff56776981f6760b2c54dcb9e4032be1d649968bb06c04f2e64177  crossx86-mips-linux-musl-1.1.12.tar.xz
+sha256 c082adc3e8b0750bb22ca82628524fd525fd77f534517ac5a66e7ac5a297ee6e  crossx86-powerpc-linux-musl-1.1.12.tar.xz
+sha256 8c6c9ebb54040e47947b4d3af6823d01fef2bb6ee81b18903c801030c066092b  crossx86-sh4eb-linux-musl-1.1.12.tar.xz
+sha256 ae9a0a5a60226aa086a56628cfd5c1d283c9dffdca37891d7e6adc2bd21ac2e0  crossx86-sh4-linux-musl-1.1.12.tar.xz
+sha256 27e0ea1043a58aebeadf1dacd67e47fd0b5c19fc36f42c9374e5fa3308df09c6  crossx86-x86_64-linux-musl-1.1.12.tar.xz
diff --git a/toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.mk b/toolchain/toolchain-external/toolchain-external-musl-cross/toolchain-external-musl-cross.mk
new file mode 100644 (file)
index 0000000..966505b
--- /dev/null
@@ -0,0 +1,12 @@
+################################################################################
+#
+# toolchain-external-musl-cross
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_MUSL_CROSS_VERSION = 1.1.12
+TOOLCHAIN_EXTERNAL_MUSL_CROSS_SITE = https://googledrive.com/host/0BwnS5DMB0YQ6bDhPZkpOYVFhbk0/musl-$(TOOLCHAIN_EXTERNAL_MUSL_CROSS_VERSION)
+
+TOOLCHAIN_EXTERNAL_MUSL_CROSS_SOURCE = crossx86-$(TOOLCHAIN_EXTERNAL_PREFIX)-$(TOOLCHAIN_EXTERNAL_MUSL_CROSS_VERSION).tar.xz
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in b/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in
new file mode 100644 (file)
index 0000000..641eca8
--- /dev/null
@@ -0,0 +1,20 @@
+config BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC
+       bool "Synopsys ARC 2014.12 toolchain"
+       depends on BR2_arc
+       depends on BR2_HOSTARCH = "x86_64"
+       # does not provide IPv6, and lacks many uClibc features
+       # expected by Buildroot. The next Synopsys toolchain version
+       # should fix those problems.
+       depends on BROKEN
+       select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
+       select BR2_INSTALL_LIBSTDCPP
+       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
+       select BR2_ENABLE_LOCALE
+       select BR2_USE_WCHAR
+       select BR2_TOOLCHAIN_HAS_THREADS
+       select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
+       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_13
+       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+       help
+         Toolchain for the ARC cores, from
+         https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases
diff --git a/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options b/toolchain/toolchain-external/toolchain-external-synopsys-arc/Config.in.options
new file mode 100644 (file)
index 0000000..ceb7dd0
--- /dev/null
@@ -0,0 +1,10 @@
+if BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+       default "arc-linux"              if BR2_arcle
+       default "arceb-linux"            if BR2_arceb
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+       default "toolchain-external-synopsys-arc"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.hash b/toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.hash
new file mode 100644 (file)
index 0000000..b684cce
--- /dev/null
@@ -0,0 +1,5 @@
+# Locally calculated
+sha256 1fa4ea2c8616623205f1c7beca02ea31b019099528a7433e5b020b0876b93bf3  arc_gnu_2014.12_prebuilt_uclibc_le_arc700_linux_install.tar.gz
+sha256 1080f07fcae2bfc176a3ea8d30b9ed8eaecab70fb786639d6ec70cae8322df10  arc_gnu_2014.12_prebuilt_uclibc_be_arc700_linux_install.tar.gz
+sha256 aaaf6facd1f60a3cd2a537154ea39cd7d70501c175e30e01a97e8df6cb8226c7  arc_gnu_2014.12_prebuilt_uclibc_le_archs_linux_install.tar.gz
+sha256 30711c5f15762764d4cd5ec1e6ced5b1fddd03aac41c424b0c4ec8a45d5d79cd  arc_gnu_2014.12_prebuilt_uclibc_be_archs_linux_install.tar.gz
diff --git a/toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.mk b/toolchain/toolchain-external/toolchain-external-synopsys-arc/toolchain-external-synopsys-arc.mk
new file mode 100644 (file)
index 0000000..14ea5e3
--- /dev/null
@@ -0,0 +1,24 @@
+################################################################################
+#
+# toolchain-external-synopsys-arc
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION = 2014.12
+TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_SITE = https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/download/arc-$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION)
+
+ifeq ($(BR2_arc750d)$(BR2_arc770d),y)
+TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_CORE = arc700
+else
+TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_CORE = archs
+endif
+
+ifeq ($(BR2_arcle),y)
+TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_ENDIANESS = le
+else
+TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_ENDIANESS = be
+endif
+
+TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_SOURCE = arc_gnu_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC_VERSION)_prebuilt_uclibc_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS)_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_CORE)_linux_install.tar.gz
+
+$(eval $(toolchain-external-package))
diff --git a/toolchain/toolchain-external/toolchain-external.hash b/toolchain/toolchain-external/toolchain-external.hash
deleted file mode 100644 (file)
index 41c2ab3..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-######################################
-# Next hashes are all locally computed
-
-# Blackfin toolchains from Analog Devices
-sha256 e424e90d8481d942a40266d78d1488726561fed3ec38403094f98055e61889d0  blackfin-toolchain-2014R1-RC2.i386.tar.bz2
-sha256 c65b1b4b918d5185349d62a3b7bf43b4b21e1175c52598ec047ca56b3f11d857  blackfin-toolchain-uclibc-full-2014R1-RC2.i386.tar.bz2
-
-# Mentor's Sourcery CodeBench Lite toolchains
-# ARM
-sha256 39ee0e789034334ecc89af94e838e3a4815400ac5ff980f808f466b04778532e  arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
-sha256 e16a5b1e41d7ff1e74161f9405182001bc8d1360d89564e73911032e6966cc0d  arm-2014.05-29-arm-none-linux-gnueabi.src.tar.bz2
-# NiosII
-sha256 750639290744adda931c81fa2cd2ffc2bde972488047824dcfaa53c42562191d  sourceryg++-2016.05-10-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
-sha256 3dc1c2685c0472059547dd7becb5dc991541b8176af39fa7aa5f601d38b9879a  sourceryg++-2016.05-10-nios2-linux-gnu.src.tar.bz2
-# SuperH
-sha256 59d6766fde244931aa52db01433d5acd051998762a931121c5fc109536a1a802  renesas-2012.09-61-sh-linux-gnu-i686-pc-linux-gnu.tar.bz2
-sha256 e2e58c10e52395d5d35157e35f85233f713c6f9223a652dfc56194cfd2eed004  renesas-2012.09-61-sh-linux-gnu.src.tar.bz2
-# x86
-sha256 ea804cf02014369da52abc4f64e91e96bde2dd2230aca96109459013d4545458  ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2
-sha256 1a9519e415a1e6892c760bf21f7e98f3a633a9d1c5bb8781a96d338e4dd62717  ia32-2012.09-62-i686-pc-linux-gnu.src.tar.bz2
-# AMD64
-sha256 3c31206c8b9277f409ee00e4777ba82dfa6da2a4ca0926501cd5fb6bbd1b407e  amd-2015.11-139-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
-sha256 0b673f5035f97d5d03c31272cddab0f117d39ad76a5ad2a3bc98c156571527de  amd-2015.11-139-x86_64-amd-linux-gnu.src.tar.bz2
-# Aarch64
-sha256 405aada821146755c5f2df566375c2a682456d6b8451ee47b88cf1a52b093676  aarch64-amd-2014.11-95-aarch64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
-sha256 3f50dd6ee433eb5b6992a1071b988e50379a738f54f58722bc60081613764716  aarch64-amd-2014.11-95-aarch64-amd-linux-gnu.src.tar.bz2
-# MIPS
-sha256 d354447c4c5160439dafd5464fa3a0266dd41e79f973477238e4f0215a6b5397  mips-2016.05-8-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
-sha256 2658e55d5b71bba25d6f77e868e18b200ea5f75c8add7ed3a9266e716d9adfff  mips-2016.05-8-mips-linux-gnu.src.tar.bz2
-
-# ARM toolchains from Texas Instrument's Arago project
-# There is one source file that covers both binary distributions.
-sha256 f2febf3b3c565536461ad4405f1bcb835d75a6afb2a8bec958a1248cb4b81fc7  arago-2011.09-armv7a-linux-gnueabi-sdk.tar.bz2
-sha256 254af7d02eb3bcc8345c78e131700bc995d65b68232caaed21150a5fd1456070  arago-2011.09-armv5te-linux-gnueabi-sdk.tar.bz2
-sha256 25fbf0513ad7322b15cbaae964cafadcbb4c939f2708f57f40b8f9f2d601122b  arago-toolchain-2011.09-sources.tar.bz2
-
-# ARM and Aarch64 toolchains from Linaro
-sha256 f1421c580ce977226f4fefc9c409b3b423260cc65a6e9dc6da88bb3478a521a0  gcc-linaro-5.3.1-2016.05-i686_arm-linux-gnueabihf.tar.xz
-sha256 987941c9fffdf56ffcbe90e8984673c16648c477b537fcf43add22fa62f161cd  gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf.tar.xz
-sha256 f6e9c0d3320760fe8f89e9ec3acdd7b4da7eff889c094b4a2acc286fd46f334f  gcc-linaro-5.3.1-2016.05-i686_armeb-linux-gnueabihf.tar.xz
-sha256 6cf41c8944be56279cc14992aa075174b7a4c5938502536266eaaeef048f9440  gcc-linaro-5.3.1-2016.05-x86_64_armeb-linux-gnueabihf.tar.xz
-sha256 d43227248f282a652da42322fcf4abfd3021f2a2f62e0cf6e242d82f55966ba9  gcc-linaro-5.3.1-2016.05-i686_aarch64-linux-gnu.tar.xz
-sha256 1941dcf6229d6706bcb89b7976d5d43d170efdd17c27d5fe1738e7ecf22adc37  gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu.tar.xz
-
-# Codescape toolchains from Imagination Technologies
-# From: http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03/downloads.html
-sha256 e3c1f292ac6a9f12480af431c85a7ed9dfa011a52fd62a50be3363ec6b9bc872  Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz
-sha256 10b8ab6d7c492abc19ecabafedc6bc5f12ff88107a3cb76dc452b3a9522d9c56  Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz
-
-# Synopsys DesignWare ARC toolchains
-sha256 1fa4ea2c8616623205f1c7beca02ea31b019099528a7433e5b020b0876b93bf3  arc_gnu_2014.12_prebuilt_uclibc_le_arc700_linux_install.tar.gz
-sha256 1080f07fcae2bfc176a3ea8d30b9ed8eaecab70fb786639d6ec70cae8322df10  arc_gnu_2014.12_prebuilt_uclibc_be_arc700_linux_install.tar.gz
-sha256 aaaf6facd1f60a3cd2a537154ea39cd7d70501c175e30e01a97e8df6cb8226c7  arc_gnu_2014.12_prebuilt_uclibc_le_archs_linux_install.tar.gz
-sha256 30711c5f15762764d4cd5ec1e6ced5b1fddd03aac41c424b0c4ec8a45d5d79cd  arc_gnu_2014.12_prebuilt_uclibc_be_archs_linux_install.tar.gz
-
-# Prebuilt musl toolchains from musl-cross
-sha256 e32c23d0b83639fc10ad06666ec086b66453b9be44415fe1a818c3c3b526dfb1  crossx86-armeb-linux-musleabi-1.1.12.tar.xz
-sha256 eb81bd5d6ada454c6e854b18bfa8dc801333782152166f6cab9fb7cd11692987  crossx86-arm-linux-musleabi-1.1.12.tar.xz
-sha256 a050da284ff22d291ae71dfc249ebdedb18334b8d626804760ce7d5963e392e6  crossx86-arm-linux-musleabihf-1.1.12.tar.xz
-sha256 18d07f5c8f4cfe373461cf21cf7b1bfefa820a37e96a69b68e0f315d528b4286  crossx86-i486-linux-musl-1.1.12.tar.xz
-sha256 1c1480c2618097e402fe804c1431fbd49b0d43520af81d4c1a695a2fa13a3922  crossx86-mipsel-linux-musl-1.1.12.tar.xz
-sha256 f0a8b3eb0566138ab3cc77bc09648be15bc325da974ec98b9e67f2fb82be3295  crossx86-mipsel-sf-linux-musl-1.1.12.tar.xz
-sha256 6a99989c3dff56776981f6760b2c54dcb9e4032be1d649968bb06c04f2e64177  crossx86-mips-linux-musl-1.1.12.tar.xz
-sha256 c082adc3e8b0750bb22ca82628524fd525fd77f534517ac5a66e7ac5a297ee6e  crossx86-powerpc-linux-musl-1.1.12.tar.xz
-sha256 8c6c9ebb54040e47947b4d3af6823d01fef2bb6ee81b18903c801030c066092b  crossx86-sh4eb-linux-musl-1.1.12.tar.xz
-sha256 ae9a0a5a60226aa086a56628cfd5c1d283c9dffdca37891d7e6adc2bd21ac2e0  crossx86-sh4-linux-musl-1.1.12.tar.xz
-sha256 27e0ea1043a58aebeadf1dacd67e47fd0b5c19fc36f42c9374e5fa3308df09c6  crossx86-x86_64-linux-musl-1.1.12.tar.xz
index b7a36bea12a0f587220235824c61070b153c9f8c..48de1e71f2f91a39b238da913d79db03134f0422 100644 (file)
@@ -4,249 +4,7 @@
 #
 ################################################################################
 
-#
-# This package implements the support for external toolchains, i.e
-# toolchains that are available pre-built, ready to use. Such toolchain
-# may either be readily available on the Web (Linaro, Sourcery
-# CodeBench, from processor vendors) or may be built with tools like
-# Crosstool-NG or Buildroot itself. So far, we have tested this
-# with:
-#
-#  * Toolchains generated by Crosstool-NG
-#  * Toolchains generated by Buildroot
-#  * Toolchains provided by Linaro for the ARM and AArch64
-#    architectures
-#  * Sourcery CodeBench toolchains (from Mentor Graphics) for the ARM,
-#    MIPS, PowerPC, x86, x86_64 and NIOS 2 architectures. For the MIPS
-#    toolchain, the -muclibc variant isn't supported yet, only the
-#    default glibc-based variant is.
-#  * Analog Devices toolchains for the Blackfin architecture
-#  * Xilinx toolchains for the Microblaze architecture
-#  * Synopsys DesignWare toolchains for ARC cores
-#
-# The basic principle is the following
-#
-#  1. If the toolchain is not pre-installed, download and extract it
-#  in $(TOOLCHAIN_EXTERNAL_INSTALL_DIR). Otherwise,
-#  $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) points to were the toolchain has
-#  already been installed by the user.
-#
-#  2. For all external toolchains, perform some checks on the
-#  conformity between the toolchain configuration described in the
-#  Buildroot menuconfig system, and the real configuration of the
-#  external toolchain. This is for example important to make sure that
-#  the Buildroot configuration system knows whether the toolchain
-#  supports RPC, IPv6, locales, large files, etc. Unfortunately, these
-#  things cannot be detected automatically, since the value of these
-#  options (such as BR2_TOOLCHAIN_HAS_NATIVE_RPC) are needed at
-#  configuration time because these options are used as dependencies
-#  for other options. And at configuration time, we are not able to
-#  retrieve the external toolchain configuration.
-#
-#  3. Copy the libraries needed at runtime to the target directory,
-#  $(TARGET_DIR). Obviously, things such as the C library, the dynamic
-#  loader and a few other utility libraries are needed if dynamic
-#  applications are to be executed on the target system.
-#
-#  4. Copy the libraries and headers to the staging directory. This
-#  will allow all further calls to gcc to be made using --sysroot
-#  $(STAGING_DIR), which greatly simplifies the compilation of the
-#  packages when using external toolchains. So in the end, only the
-#  cross-compiler binaries remains external, all libraries and headers
-#  are imported into the Buildroot tree.
-#
-#  5. Build a toolchain wrapper which executes the external toolchain
-#  with a number of arguments (sysroot/march/mtune/..) hardcoded,
-#  so we're sure the correct configuration is always used and the
-#  toolchain behaves similar to an internal toolchain.
-#  This toolchain wrapper and symlinks are installed into
-#  $(HOST_DIR)/usr/bin like for the internal toolchains, and the rest
-#  of Buildroot is handled identical for the 2 toolchain types.
-
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y)
-TOOLCHAIN_EXTERNAL_LIBS += libatomic.so.* libc.so.* libcrypt.so.* libdl.so.* libgcc_s.so.* libm.so.* libnsl.so.* libresolv.so.* librt.so.* libutil.so.*
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC)$(BR2_ARM_EABIHF),yy)
-TOOLCHAIN_EXTERNAL_LIBS += ld-linux-armhf.so.*
-else
-TOOLCHAIN_EXTERNAL_LIBS += ld*.so.*
-endif
-ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
-TOOLCHAIN_EXTERNAL_LIBS += libpthread.so.*
-ifneq ($(BR2_PACKAGE_GDB)$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),)
-TOOLCHAIN_EXTERNAL_LIBS += libthread_db.so.*
-endif # gdbserver
-endif # ! no threads
-endif
-
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC),y)
-TOOLCHAIN_EXTERNAL_LIBS += libnss_files.so.* libnss_dns.so.* libmvec.so.*
-endif
-
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_MUSL),y)
-TOOLCHAIN_EXTERNAL_LIBS += libc.so libgcc_s.so.*
-endif
-
-ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
-TOOLCHAIN_EXTERNAL_LIBS += libstdc++.so.*
-endif
-
-ifeq ($(BR2_TOOLCHAIN_HAS_FORTRAN),y)
-TOOLCHAIN_EXTERNAL_LIBS += libgfortran.so.*
-# fortran needs quadmath on x86 and x86_64
-ifeq ($(BR2_TOOLCHAIN_HAS_LIBQUADMATH),y)
-TOOLCHAIN_EXTERNAL_LIBS += libquadmath.so*
-endif
-endif
-
-TOOLCHAIN_EXTERNAL_LIBS += $(call qstrip,$(BR2_TOOLCHAIN_EXTRA_EXTERNAL_LIBS))
-
-# Details about sysroot directory selection.
-#
-# To find the sysroot directory, we use the trick of looking for the
-# 'libc.a' file with the -print-file-name gcc option, and then
-# mangling the path to find the base directory of the sysroot.
-#
-# Note that we do not use the -print-sysroot option, because it is
-# only available since gcc 4.4.x, and we only recently dropped support
-# for 4.2.x and 4.3.x.
-#
-# When doing this, we don't pass any option to gcc that could select a
-# multilib variant (such as -march) as we want the "main" sysroot,
-# which contains all variants of the C library in the case of multilib
-# toolchains. We use the TARGET_CC_NO_SYSROOT variable, which is the
-# path of the cross-compiler, without the --sysroot=$(STAGING_DIR),
-# since what we want to find is the location of the original toolchain
-# sysroot. This "main" sysroot directory is stored in SYSROOT_DIR.
-#
-# Then, multilib toolchains are a little bit more complicated, since
-# they in fact have multiple sysroots, one for each variant supported
-# by the toolchain. So we need to find the particular sysroot we're
-# interested in.
-#
-# To do so, we ask the compiler where its sysroot is by passing all
-# flags (including -march and al.), except the --sysroot flag since we
-# want to the compiler to tell us where its original sysroot
-# is. ARCH_SUBDIR will contain the subdirectory, in the main
-# SYSROOT_DIR, that corresponds to the selected architecture
-# variant. ARCH_SYSROOT_DIR will contain the full path to this
-# location.
-#
-# One might wonder why we don't just bother with ARCH_SYSROOT_DIR. The
-# fact is that in multilib toolchains, the header files are often only
-# present in the main sysroot, and only the libraries are available in
-# each variant-specific sysroot directory.
-
-
-TOOLCHAIN_EXTERNAL_PREFIX = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))
-TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR = $(HOST_DIR)/opt/ext-toolchain
-
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
-TOOLCHAIN_EXTERNAL_INSTALL_DIR = $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)
-else
-TOOLCHAIN_EXTERNAL_INSTALL_DIR = $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH))
-endif
-
-ifeq ($(TOOLCHAIN_EXTERNAL_INSTALL_DIR),)
-ifneq ($(TOOLCHAIN_EXTERNAL_PREFIX),)
-# if no path set, figure it out from path
-TOOLCHAIN_EXTERNAL_BIN := $(shell dirname $(shell which $(TOOLCHAIN_EXTERNAL_PREFIX)-gcc))
-endif
-else
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX),y)
-TOOLCHAIN_EXTERNAL_BIN := $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/$(TOOLCHAIN_EXTERNAL_PREFIX)/bin
-else
-TOOLCHAIN_EXTERNAL_BIN := $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/bin
-endif
-endif
-
-# If this is a buildroot toolchain, it already has a wrapper which we want to
-# bypass. Since this is only evaluated after it has been extracted, we can use
-# $(wildcard ...) here.
-TOOLCHAIN_EXTERNAL_SUFFIX = \
-       $(if $(wildcard $(TOOLCHAIN_EXTERNAL_BIN)/*.br_real),.br_real)
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += \
-       -DBR_CROSS_PATH_SUFFIX='"$(TOOLCHAIN_EXTERNAL_SUFFIX)"'
-
-TOOLCHAIN_EXTERNAL_CROSS = $(TOOLCHAIN_EXTERNAL_BIN)/$(TOOLCHAIN_EXTERNAL_PREFIX)-
-TOOLCHAIN_EXTERNAL_CC = $(TOOLCHAIN_EXTERNAL_CROSS)gcc$(TOOLCHAIN_EXTERNAL_SUFFIX)
-TOOLCHAIN_EXTERNAL_CXX = $(TOOLCHAIN_EXTERNAL_CROSS)g++$(TOOLCHAIN_EXTERNAL_SUFFIX)
-TOOLCHAIN_EXTERNAL_FC = $(TOOLCHAIN_EXTERNAL_CROSS)gfortran$(TOOLCHAIN_EXTERNAL_SUFFIX)
-TOOLCHAIN_EXTERNAL_READELF = $(TOOLCHAIN_EXTERNAL_CROSS)readelf$(TOOLCHAIN_EXTERNAL_SUFFIX)
-
-ifeq ($(filter $(HOST_DIR)/%,$(TOOLCHAIN_EXTERNAL_BIN)),)
-# TOOLCHAIN_EXTERNAL_BIN points outside HOST_DIR => absolute path
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += \
-       -DBR_CROSS_PATH_ABS='"$(TOOLCHAIN_EXTERNAL_BIN)"'
-else
-# TOOLCHAIN_EXTERNAL_BIN points inside HOST_DIR => relative path
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += \
-       -DBR_CROSS_PATH_REL='"$(TOOLCHAIN_EXTERNAL_BIN:$(HOST_DIR)/%=%)"'
-endif
-
-ifeq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),)
-CC_TARGET_CPU_ := $(call qstrip,$(BR2_GCC_TARGET_CPU))
-else
-CC_TARGET_CPU_ := $(call qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
-endif
-CC_TARGET_ARCH_ := $(call qstrip,$(BR2_GCC_TARGET_ARCH))
-CC_TARGET_ABI_ := $(call qstrip,$(BR2_GCC_TARGET_ABI))
-CC_TARGET_FPU_ := $(call qstrip,$(BR2_GCC_TARGET_FPU))
-CC_TARGET_FLOAT_ABI_ := $(call qstrip,$(BR2_GCC_TARGET_FLOAT_ABI))
-CC_TARGET_MODE_ := $(call qstrip,$(BR2_GCC_TARGET_MODE))
-
-# march/mtune/floating point mode needs to be passed to the external toolchain
-# to select the right multilib variant
-ifeq ($(BR2_x86_64),y)
-TOOLCHAIN_EXTERNAL_CFLAGS += -m64
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_64
-endif
-ifneq ($(CC_TARGET_ARCH_),)
-TOOLCHAIN_EXTERNAL_CFLAGS += -march=$(CC_TARGET_ARCH_)
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ARCH='"$(CC_TARGET_ARCH_)"'
-endif
-ifneq ($(CC_TARGET_CPU_),)
-TOOLCHAIN_EXTERNAL_CFLAGS += -mcpu=$(CC_TARGET_CPU_)
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_CPU='"$(CC_TARGET_CPU_)"'
-endif
-ifneq ($(CC_TARGET_ABI_),)
-TOOLCHAIN_EXTERNAL_CFLAGS += -mabi=$(CC_TARGET_ABI_)
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ABI='"$(CC_TARGET_ABI_)"'
-endif
-ifneq ($(CC_TARGET_FPU_),)
-TOOLCHAIN_EXTERNAL_CFLAGS += -mfpu=$(CC_TARGET_FPU_)
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FPU='"$(CC_TARGET_FPU_)"'
-endif
-ifneq ($(CC_TARGET_FLOAT_ABI_),)
-TOOLCHAIN_EXTERNAL_CFLAGS += -mfloat-abi=$(CC_TARGET_FLOAT_ABI_)
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_FLOAT_ABI='"$(CC_TARGET_FLOAT_ABI_)"'
-endif
-ifneq ($(CC_TARGET_MODE_),)
-TOOLCHAIN_EXTERNAL_CFLAGS += -m$(CC_TARGET_MODE_)
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MODE='"$(CC_TARGET_MODE_)"'
-endif
-ifeq ($(BR2_BINFMT_FLAT),y)
-TOOLCHAIN_EXTERNAL_CFLAGS += -Wl,-elf2flt
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_BINFMT_FLAT
-endif
-ifeq ($(BR2_mipsel)$(BR2_mips64el),y)
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MIPS_TARGET_LITTLE_ENDIAN
-TOOLCHAIN_EXTERNAL_CFLAGS += -EL
-endif
-ifeq ($(BR2_mips)$(BR2_mips64),y)
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_MIPS_TARGET_BIG_ENDIAN
-TOOLCHAIN_EXTERNAL_CFLAGS += -EB
-endif
-ifeq ($(BR2_arceb),y)
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_ARC_TARGET_BIG_ENDIAN
-TOOLCHAIN_EXTERNAL_CFLAGS += -EB
-endif
-
-TOOLCHAIN_EXTERNAL_CFLAGS += $(call qstrip,$(BR2_TARGET_OPTIMIZATION))
-
-ifeq ($(BR2_SOFT_FLOAT),y)
-TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float
-TOOLCHAIN_EXTERNAL_TOOLCHAIN_WRAPPER_ARGS += -DBR_SOFTFLOAT=1
-endif
+TOOLCHAIN_EXTERNAL_ADD_TOOLCHAIN_DEPENDENCY = NO
 
 # musl does not provide an implementation for sys/queue.h or sys/cdefs.h.
 # So, add the musl-compat-headers package that will install those files,
@@ -257,548 +15,14 @@ ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
 TOOLCHAIN_EXTERNAL_DEPENDENCIES += musl-compat-headers
 endif
 
-# The Codescape toolchain uses a sysroot layout that places them
-# side-by-side instead of nested like multilibs. A symlink is needed
-# much like for the nested sysroots which are handled in
-# copy_toolchain_sysroot but there is not enough information in there
-# to determine whether the sysroot layout was nested or side-by-side.
-# Add the symlink here for now.
-define TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_SYMLINK
-       $(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))"; \
-       ARCH_SUBDIR=`basename $${ARCH_SYSROOT_DIR}`; \
-       ln -snf . $(STAGING_DIR)/$${ARCH_SUBDIR}
-endef
+$(eval $(virtual-package))
 
-# Special fixup for Codescape MIPS toolchains, that have bin-<abi> and
-# sbin-<abi> directories. We create symlinks bin -> bin-<abi> and sbin
-# -> sbin-<abi> so that the rest of Buildroot can find the toolchain
-# tools in the appropriate location.
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS)$(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS),y)
-ifeq ($(BR2_MIPS_OABI32),y)
-TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX = o32
-else ifeq ($(BR2_MIPS_NABI32),y)
-TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX = n32
-else ifeq ($(BR2_MIPS_NABI64),y)
-TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX = n64
+# Ensure the external-toolchain package has a prefix defined.
+# This comes after the virtual-package definition, which checks the provider.
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
+ifeq ($(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)),)
+$(error No prefix selected for external toolchain package $(BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL). Configuration error)
 endif
-
-define TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_STAGING_FIXUPS
-       rmdir $(STAGING_DIR)/usr/bin $(STAGING_DIR)/usr/sbin
-       ln -sf bin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/bin
-       ln -sf sbin-$(TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_BIN_DIR_SUFFIX) $(STAGING_DIR)/usr/sbin
-endef
 endif
 
-# Special handling for Blackfin toolchain, because of the split in two
-# tarballs, and the organization of tarball contents. The tarballs
-# contain ./opt/uClinux/{bfin-uclinux,bfin-linux-uclibc} directories,
-# which themselves contain the toolchain. This is why we strip more
-# components than usual.
-define TOOLCHAIN_EXTERNAL_BLACKFIN_UCLIBC_EXTRA_EXTRACT
-       $(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS) | \
-               $(TAR) --strip-components=3 --hard-dereference -C $(@D) $(TAR_OPTIONS) -
-endef
-
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM),y)
-TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi
-TOOLCHAIN_EXTERNAL_SOURCE = arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A),y)
-TOOLCHAIN_EXTERNAL_SITE = http://software-dl.ti.com/sdoemb/sdoemb_public_sw/arago_toolchain/2011_09/exports
-TOOLCHAIN_EXTERNAL_SOURCE = arago-2011.09-armv7a-linux-gnueabi-sdk.tar.bz2
-TOOLCHAIN_EXTERNAL_ACTUAL_SOURCE_TARBALL = arago-toolchain-2011.09-sources.tar.bz2
-define TOOLCHAIN_EXTERNAL_FIXUP_CMDS
-       mv $(@D)/arago-2011.09/armv7a/* $(@D)/
-       rm -rf $(@D)/arago-2011.09/
-endef
-TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_FIXUP_CMDS
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE),y)
-TOOLCHAIN_EXTERNAL_SITE = http://software-dl.ti.com/sdoemb/sdoemb_public_sw/arago_toolchain/2011_09/exports
-TOOLCHAIN_EXTERNAL_SOURCE = arago-2011.09-armv5te-linux-gnueabi-sdk.tar.bz2
-TOOLCHAIN_EXTERNAL_ACTUAL_SOURCE_TARBALL = arago-toolchain-2011.09-sources.tar.bz2
-define TOOLCHAIN_EXTERNAL_FIXUP_CMDS
-       mv $(@D)/arago-2011.09/armv5te/* $(@D)/
-       rm -rf $(@D)/arago-2011.09/
-endef
-TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_FIXUP_CMDS
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_ARM),y)
-TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-2016.05/arm-linux-gnueabihf
-ifeq ($(HOSTARCH),x86)
-TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3.1-2016.05-i686_arm-linux-gnueabihf.tar.xz
-else
-TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf.tar.xz
-endif
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_ARMEB),y)
-TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-2016.05/armeb-linux-gnueabihf
-ifeq ($(HOSTARCH),x86)
-TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3.1-2016.05-i686_armeb-linux-gnueabihf.tar.xz
-else
-TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3.1-2016.05-x86_64_armeb-linux-gnueabihf.tar.xz
-endif
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS),y)
-TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/mips-linux-gnu
-TOOLCHAIN_EXTERNAL_SOURCE = mips-2016.05-8-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_NIOSII),y)
-TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/nios2-linux-gnu
-TOOLCHAIN_EXTERNAL_SOURCE = sourceryg++-2016.05-10-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_SH),y)
-TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/sh-linux-gnu
-TOOLCHAIN_EXTERNAL_SOURCE = renesas-2012.09-61-sh-linux-gnu-i686-pc-linux-gnu.tar.bz2
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86),y)
-TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/i686-pc-linux-gnu
-TOOLCHAIN_EXTERNAL_SOURCE = ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AMD64),y)
-TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/x86_64-amd-linux-gnu
-TOOLCHAIN_EXTERNAL_SOURCE = amd-2015.11-139-x86_64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_IMG_MIPS),y)
-TOOLCHAIN_EXTERNAL_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03
-TOOLCHAIN_EXTERNAL_SOURCE = Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.IMG.Linux.CentOS-5.x86.tar.gz
-TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_SYMLINK
-TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_STAGING_FIXUPS
-TOOLCHAIN_EXTERNAL_STRIP_COMPONENTS = 2
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS),y)
-TOOLCHAIN_EXTERNAL_SITE = http://codescape-mips-sdk.imgtec.com/components/toolchain/2016.05-03
-TOOLCHAIN_EXTERNAL_SOURCE = Codescape.GNU.Tools.Package.2016.05-03.for.MIPS.MTI.Linux.CentOS-5.x86.tar.gz
-TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_SYMLINK
-TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESCAPE_MIPS_STAGING_FIXUPS
-TOOLCHAIN_EXTERNAL_STRIP_COMPONENTS = 2
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX),y)
-TOOLCHAIN_EXTERNAL_SITE = http://downloads.sourceforge.net/project/adi-toolchain/2014R1/2014R1-RC2/i386
-TOOLCHAIN_EXTERNAL_SOURCE = blackfin-toolchain-2014R1-RC2.i386.tar.bz2
-TOOLCHAIN_EXTERNAL_EXTRA_DOWNLOADS = blackfin-toolchain-uclibc-full-2014R1-RC2.i386.tar.bz2
-TOOLCHAIN_EXTERNAL_STRIP_COMPONENTS = 3
-TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_BLACKFIN_UCLIBC_EXTRA_EXTRACT
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64),y)
-TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/components/toolchain/binaries/5.3-2016.05/aarch64-linux-gnu
-ifeq ($(HOSTARCH),x86)
-TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3.1-2016.05-i686_aarch64-linux-gnu.tar.xz
-else
-TOOLCHAIN_EXTERNAL_SOURCE = gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu.tar.xz
-endif
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64),y)
-TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/aarch64-amd-linux-gnu
-TOOLCHAIN_EXTERNAL_SOURCE = aarch64-amd-2014.11-95-aarch64-amd-linux-gnu-i686-pc-linux-gnu.tar.bz2
-define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP
-       ln -sf ld-2.20.so $(STAGING_DIR)/lib/ld-linux-aarch64.so.1
-endef
-TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_STAGING_FIXUP
-define TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP
-       ln -sf ld-2.20.so $(TARGET_DIR)/lib/ld-linux-aarch64.so.1
-endef
-TOOLCHAIN_EXTERNAL_POST_INSTALL_TARGET_HOOKS += TOOLCHAIN_EXTERNAL_CODESOURCERY_AARCH64_TARGET_FIXUP
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_MUSL_CROSS),y)
-TOOLCHAIN_EXTERNAL_VERSION = 1.1.12
-TOOLCHAIN_EXTERNAL_SITE = https://googledrive.com/host/0BwnS5DMB0YQ6bDhPZkpOYVFhbk0/musl-$(TOOLCHAIN_EXTERNAL_VERSION)
-ifeq ($(BR2_arm)$(BR2_ARM_EABI),yy)
-TOOLCHAIN_EXTERNAL_SOURCE = crossx86-arm-linux-musleabi-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
-else ifeq ($(BR2_arm)$(BR2_ARM_EABIHF),yy)
-TOOLCHAIN_EXTERNAL_SOURCE = crossx86-arm-linux-musleabihf-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
-else ifeq ($(BR2_armeb),y)
-TOOLCHAIN_EXTERNAL_SOURCE = crossx86-armeb-linux-musleabi-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
-else ifeq ($(BR2_i386),y)
-TOOLCHAIN_EXTERNAL_SOURCE = crossx86-i486-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
-else ifeq ($(BR2_mips),y)
-TOOLCHAIN_EXTERNAL_SOURCE = crossx86-mips-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
-else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:)
-TOOLCHAIN_EXTERNAL_SOURCE = crossx86-mipsel-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
-else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:y)
-TOOLCHAIN_EXTERNAL_SOURCE = crossx86-mipsel-sf-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
-else ifeq ($(BR2_powerpc),y)
-TOOLCHAIN_EXTERNAL_SOURCE = crossx86-powerpc-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
-else ifeq ($(BR2_sh4),y)
-TOOLCHAIN_EXTERNAL_SOURCE = crossx86-sh4-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
-else ifeq ($(BR2_sh4eb),y)
-TOOLCHAIN_EXTERNAL_SOURCE = crossx86-sh4eb-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
-else ifeq ($(BR2_x86_64),y)
-TOOLCHAIN_EXTERNAL_SOURCE = crossx86-x86_64-linux-musl-$(TOOLCHAIN_EXTERNAL_VERSION).tar.xz
-endif
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_SYNOPSYS_ARC),y)
-TOOLCHAIN_EXTERNAL_SITE = https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/download/arc-2014.12
-ifeq ($(BR2_arc750d)$(BR2_arc770d),y)
-TOOLCHAIN_EXTERNAL_SYNOPSYS_CORE = arc700
-else
-TOOLCHAIN_EXTERNAL_SYNOPSYS_CORE = archs
-endif
-ifeq ($(BR2_arcle),y)
-TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS = le
-else
-TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS = be
-endif
-TOOLCHAIN_EXTERNAL_SOURCE = arc_gnu_2014.12_prebuilt_uclibc_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_ENDIANESS)_$(TOOLCHAIN_EXTERNAL_SYNOPSYS_CORE)_linux_install.tar.gz
-else
-# Custom toolchain
-TOOLCHAIN_EXTERNAL_SITE = $(patsubst %/,%,$(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL))))
-TOOLCHAIN_EXTERNAL_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
-# We can't check hashes for custom downloaded toolchains
-BR_NO_CHECK_HASH_FOR += $(TOOLCHAIN_EXTERNAL_SOURCE)
-endif
-
-# Some toolchain vendors have a regular file naming pattern.
-# For them, mass-define _ACTUAL_SOURCE_TARBALL based _SITE.
-ifneq ($(findstring sourcery.mentor.com/public/gnu_toolchain,$(TOOLCHAIN_EXTERNAL_SITE)),)
-TOOLCHAIN_EXTERNAL_ACTUAL_SOURCE_TARBALL ?= \
-       $(subst -i686-pc-linux-gnu.tar.bz2,.src.tar.bz2,$(subst -i686-pc-linux-gnu-i386-linux.tar.bz2,-i686-pc-linux-gnu.src.tar.bz2,$(TOOLCHAIN_EXTERNAL_SOURCE)))
-endif
-
-# In fact, we don't need to download the toolchain, since it is already
-# available on the system, so force the site and source to be empty so
-# that nothing will be downloaded/extracted.
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED),y)
-TOOLCHAIN_EXTERNAL_SITE =
-TOOLCHAIN_EXTERNAL_SOURCE =
-endif
-
-TOOLCHAIN_EXTERNAL_ADD_TOOLCHAIN_DEPENDENCY = NO
-
-TOOLCHAIN_EXTERNAL_INSTALL_STAGING = YES
-
-# Normal handling of downloaded toolchain tarball extraction.
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
-TOOLCHAIN_EXTERNAL_EXCLUDES = usr/lib/locale/*
-
-# As a regular package, the toolchain gets extracted in $(@D), but
-# since it's actually a fairly special package, we need it to be moved
-# into TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR.
-define TOOLCHAIN_EXTERNAL_MOVE
-       rm -rf $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)
-       mkdir -p $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)
-       mv $(@D)/* $(TOOLCHAIN_EXTERNAL_DOWNLOAD_INSTALL_DIR)/
-endef
-TOOLCHAIN_EXTERNAL_POST_EXTRACT_HOOKS += \
-       TOOLCHAIN_EXTERNAL_MOVE
-endif
-
-# Returns the location of the libc.a file for the given compiler + flags
-define toolchain_find_libc_a
-$$(readlink -f $$(LANG=C $(1) -print-file-name=libc.a))
-endef
-
-# Returns the sysroot location for the given compiler + flags. We need
-# to handle cases where libc.a is in:
-#
-#  - lib/
-#  - usr/lib/
-#  - lib32/
-#  - lib64/
-#  - lib32-fp/ (Cavium toolchain)
-#  - lib64-fp/ (Cavium toolchain)
-#  - usr/lib/<tuple>/ (Linaro toolchain)
-#
-# And variations on these.
-define toolchain_find_sysroot
-$$(printf $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:(usr/)?lib(32|64)?([^/]*)?/([^/]*/)?libc\.a::')
-endef
-
-# Returns the lib subdirectory for the given compiler + flags (i.e
-# typically lib32 or lib64 for some toolchains)
-define toolchain_find_libdir
-$$(printf $(call toolchain_find_libc_a,$(1)) | sed -r -e 's:.*/(usr/)?(lib(32|64)?([^/]*)?)/([^/]*/)?libc.a:\2:')
-endef
-
-# Checks for an already installed toolchain: check the toolchain
-# location, check that it is usable, and then verify that it
-# matches the configuration provided in Buildroot: ABI, C++ support,
-# kernel headers version, type of C library and all C library features.
-define TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS
-       $(Q)$(call check_cross_compiler_exists,$(TOOLCHAIN_EXTERNAL_CC))
-       $(Q)$(call check_unusable_toolchain,$(TOOLCHAIN_EXTERNAL_CC))
-       $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \
-       $(call check_kernel_headers_version,\
-               $(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC)),\
-               $(call qstrip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST))); \
-       $(call check_gcc_version,$(TOOLCHAIN_EXTERNAL_CC),\
-               $(call qstrip,$(BR2_TOOLCHAIN_GCC_AT_LEAST))); \
-       if test "$(BR2_arm)" = "y" ; then \
-               $(call check_arm_abi,\
-                       "$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS)",\
-                       $(TOOLCHAIN_EXTERNAL_READELF)) ; \
-       fi ; \
-       if test "$(BR2_INSTALL_LIBSTDCPP)" = "y" ; then \
-               $(call check_cplusplus,$(TOOLCHAIN_EXTERNAL_CXX)) ; \
-       fi ; \
-       if test "$(BR2_TOOLCHAIN_HAS_FORTRAN)" = "y" ; then \
-               $(call check_fortran,$(TOOLCHAIN_EXTERNAL_FC)) ; \
-       fi ; \
-       if test "$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)" = "y" ; then \
-               $(call check_uclibc,$${SYSROOT_DIR}) ; \
-       elif test "$(BR2_TOOLCHAIN_EXTERNAL_MUSL)" = "y" ; then \
-               $(call check_musl,$${SYSROOT_DIR}) ; \
-       else \
-               $(call check_glibc,$${SYSROOT_DIR}) ; \
-       fi
-       $(Q)$(call check_toolchain_ssp,$(TOOLCHAIN_EXTERNAL_CC))
-endef
-
-# With the musl C library, the libc.so library directly plays the role
-# of the dynamic library loader. We just need to create a symbolic
-# link to libc.so with the appropriate name.
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_MUSL),y)
-ifeq ($(BR2_i386),y)
-MUSL_ARCH = i386
-else ifeq ($(BR2_ARM_EABIHF),y)
-MUSL_ARCH = armhf
-else ifeq ($(BR2_mipsel):$(BR2_SOFT_FLOAT),y:y)
-MUSL_ARCH = mipsel-sf
-else ifeq ($(BR2_sh),y)
-MUSL_ARCH = sh
-else
-MUSL_ARCH = $(ARCH)
-endif
-define TOOLCHAIN_EXTERNAL_MUSL_LD_LINK
-       ln -sf libc.so $(TARGET_DIR)/lib/ld-musl-$(MUSL_ARCH).so.1
-endef
-TOOLCHAIN_EXTERNAL_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_EXTERNAL_MUSL_LD_LINK
-endif
-
-# Create a symlink from (usr/)$(ARCH_LIB_DIR) to lib.
-# Note: the skeleton package additionally creates lib32->lib or lib64->lib
-# (as appropriate)
-#
-# $1: destination directory (TARGET_DIR / STAGING_DIR)
-create_lib_symlinks = \
-       $(Q)DESTDIR="$(strip $1)" ; \
-       ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
-       if [ ! -e "$${DESTDIR}/$${ARCH_LIB_DIR}" -a ! -e "$${DESTDIR}/usr/$${ARCH_LIB_DIR}" ]; then \
-               ln -snf lib "$${DESTDIR}/$${ARCH_LIB_DIR}" ; \
-               ln -snf lib "$${DESTDIR}/usr/$${ARCH_LIB_DIR}" ; \
-       fi
-
-define TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK
-       $(call create_lib_symlinks,$(STAGING_DIR))
-endef
-
-define TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK
-       $(call create_lib_symlinks,$(TARGET_DIR))
-endef
-
-# Integration of the toolchain into Buildroot: find the main sysroot
-# and the variant-specific sysroot, then copy the needed libraries to
-# the $(TARGET_DIR) and copy the whole sysroot (libraries and headers)
-# to $(STAGING_DIR).
-#
-# Variables are defined as follows:
-#
-#  LIBC_A_LOCATION:     location of the libc.a file in the default
-#                       multilib variant (allows to find the main
-#                       sysroot directory)
-#                       Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/usr/lib/libc.a
-#
-#  SYSROOT_DIR:         the main sysroot directory, deduced from
-#                       LIBC_A_LOCATION by removing the
-#                       usr/lib[32|64]/libc.a part of the path.
-#                       Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/
-#
-# ARCH_LIBC_A_LOCATION: location of the libc.a file in the selected
-#                       multilib variant (taking into account the
-#                       CFLAGS). Allows to find the sysroot of the
-#                       selected multilib variant.
-#                       Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/mips16/soft-float/el/usr/lib/libc.a
-#
-# ARCH_SYSROOT_DIR:     the sysroot of the selected multilib variant,
-#                       deduced from ARCH_LIBC_A_LOCATION by removing
-#                       usr/lib[32|64]/libc.a at the end of the path.
-#                       Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/mips16/soft-float/el/
-#
-# ARCH_LIB_DIR:         'lib', 'lib32' or 'lib64' depending on where libraries
-#                       are stored. Deduced from ARCH_LIBC_A_LOCATION by
-#                       looking at usr/lib??/libc.a.
-#                       Ex: lib
-#
-# ARCH_SUBDIR:          the relative location of the sysroot of the selected
-#                       multilib variant compared to the main sysroot.
-#                      Ex: mips16/soft-float/el
-#
-# SUPPORT_LIB_DIR:      some toolchains, such as recent Linaro toolchains,
-#                       store GCC support libraries (libstdc++,
-#                       libgcc_s, etc.) outside of the sysroot. In
-#                       this case, SUPPORT_LIB_DIR is set to a
-#                       non-empty value, and points to the directory
-#                       where these support libraries are
-#                       available. Those libraries will be copied to
-#                       our sysroot, and the directory will also be
-#                       considered when searching libraries for copy
-#                       to the target filesystem.
-#
-# Please be very careful to check the major toolchain sources:
-# Buildroot, Crosstool-NG, CodeSourcery and Linaro
-# before doing any modification on the below logic.
-
-ifeq ($(BR2_STATIC_LIBS),)
-define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS
-       $(Q)$(call MESSAGE,"Copying external toolchain libraries to target...")
-       $(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \
-               $(call copy_toolchain_lib_root,$$libs); \
-       done
-endef
-endif
-
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY),y)
-define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER
-       $(Q)$(call MESSAGE,"Copying gdbserver")
-       $(Q)ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
-       ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
-       gdbserver_found=0 ; \
-       for d in $${ARCH_SYSROOT_DIR}/usr \
-                $${ARCH_SYSROOT_DIR}/../debug-root/usr \
-                $${ARCH_SYSROOT_DIR}/usr/$${ARCH_LIB_DIR} \
-                $(TOOLCHAIN_EXTERNAL_INSTALL_DIR); do \
-               if test -f $${d}/bin/gdbserver ; then \
-                       install -m 0755 -D $${d}/bin/gdbserver $(TARGET_DIR)/usr/bin/gdbserver ; \
-                       gdbserver_found=1 ; \
-                       break ; \
-               fi ; \
-       done ; \
-       if [ $${gdbserver_found} -eq 0 ] ; then \
-               echo "Could not find gdbserver in external toolchain" ; \
-               exit 1 ; \
-       fi
-endef
-endif
-
-define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS
-       $(Q)SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC))" ; \
-       ARCH_SYSROOT_DIR="$(call toolchain_find_sysroot,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
-       ARCH_LIB_DIR="$(call toolchain_find_libdir,$(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
-       SUPPORT_LIB_DIR="" ; \
-       if test `find $${ARCH_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \
-               LIBSTDCPP_A_LOCATION=$$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \
-               if [ -e "$${LIBSTDCPP_A_LOCATION}" ]; then \
-                       SUPPORT_LIB_DIR=`readlink -f $${LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \
-               fi ; \
-       fi ; \
-       if [ "$${SYSROOT_DIR}" == "$${ARCH_SYSROOT_DIR}" ] ; then \
-               ARCH_SUBDIR="" ; \
-       elif [ "`dirname $${ARCH_SYSROOT_DIR}`" = "`dirname $${SYSROOT_DIR}`" ] ; then \
-               SYSROOT_DIR_DIRNAME=`dirname $${SYSROOT_DIR}`/ ; \
-               ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR_DIRNAME}(.*)/$$:\1:"` ; \
-       else \
-               ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR}(.*)/$$:\1:"` ; \
-       fi ; \
-       $(call MESSAGE,"Copying external toolchain sysroot to staging...") ; \
-       $(call copy_toolchain_sysroot,$${SYSROOT_DIR},$${ARCH_SYSROOT_DIR},$${ARCH_SUBDIR},$${ARCH_LIB_DIR},$${SUPPORT_LIB_DIR})
-endef
-
-# Special installation target used on the Blackfin architecture when
-# FDPIC is not the primary binary format being used, but the user has
-# nonetheless requested the installation of the FDPIC libraries to the
-# target filesystem.
-ifeq ($(BR2_BFIN_INSTALL_FDPIC_SHARED),y)
-define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC
-       $(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to staging...")
-       $(Q)FDPIC_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))/../../bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc ; \
-       FDPIC_SYSROOT_DIR="$(call toolchain_find_sysroot,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
-       FDPIC_LIB_DIR="$(call toolchain_find_libdir,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
-       FDPIC_SUPPORT_LIB_DIR="" ; \
-       if test `find $${FDPIC_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \
-               FDPIC_LIBSTDCPP_A_LOCATION=$$(LANG=C $${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \
-               if [ -e "$${FDPIC_LIBSTDCPP_A_LOCATION}" ]; then \
-                       FDPIC_SUPPORT_LIB_DIR=`readlink -f $${FDPIC_LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \
-               fi ; \
-       fi ; \
-       $(call copy_toolchain_sysroot,$${FDPIC_SYSROOT_DIR},$${FDPIC_SYSROOT_DIR},,$${FDPIC_LIB_DIR},$${FDPIC_SUPPORT_LIB_DIR})
-endef
-define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC
-       $(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to target...")
-       $(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \
-               $(call copy_toolchain_lib_root,$$libs); \
-       done
-endef
-endif
-
-# Special installation target used on the Blackfin architecture when
-# shared FLAT is not the primary format being used, but the user has
-# nonetheless requested the installation of the shared FLAT libraries
-# to the target filesystem. The flat libraries are found and linked
-# according to the index in name "libN.so". Index 1 is reserved for
-# the standard C library. Customer libraries can use 4 and above.
-ifeq ($(BR2_BFIN_INSTALL_FLAT_SHARED),y)
-define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT
-       $(Q)$(call MESSAGE,"Install external toolchain FLAT libraries to target...")
-       $(Q)FLAT_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))../../bfin-uclinux/bin/bfin-uclinux-gcc ; \
-       FLAT_LIBC_A_LOCATION=`$${FLAT_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -mid-shared-library -print-file-name=libc`; \
-       if [ -f $${FLAT_LIBC_A_LOCATION} -a ! -h $${FLAT_LIBC_A_LOCATION} ] ; then \
-               $(INSTALL) -D $${FLAT_LIBC_A_LOCATION} $(TARGET_DIR)/lib/lib1.so; \
-       fi
-endef
-endif
-
-# Build toolchain wrapper for preprocessor, C, C++ and Fortran compilers
-# and setup symlinks for everything else. Skip gdb symlink when we are
-# building our own gdb to prevent two gdb's in output/host/usr/bin.
-# The LTO support in gcc creates wrappers for ar, ranlib and nm which load
-# the lto plugin. These wrappers are called *-gcc-ar, *-gcc-ranlib, and
-# *-gcc-nm and should be used instead of the real programs when -flto is
-# used. However, we should not add the toolchain wrapper for them, and they
-# match the *cc-* pattern. Therefore, an additional case is added for *-ar,
-# *-ranlib and *-nm.
-define TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER
-       $(Q)cd $(HOST_DIR)/usr/bin; \
-       for i in $(TOOLCHAIN_EXTERNAL_CROSS)*; do \
-               base=$${i##*/}; \
-               case "$$base" in \
-               *-ar|*-ranlib|*-nm) \
-                       ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \
-                       ;; \
-               *cc|*cc-*|*++|*++-*|*cpp|*-gfortran) \
-                       ln -sf toolchain-wrapper $$base; \
-                       ;; \
-               *gdb|*gdbtui) \
-                       if test "$(BR2_PACKAGE_HOST_GDB)" != "y"; then \
-                               ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \
-                       fi \
-                       ;; \
-               *) \
-                       ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \
-                       ;; \
-               esac; \
-       done
-endef
-
-#
-# Generate gdbinit file for use with Buildroot
-#
-define TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT
-       $(Q)if test -f $(TARGET_CROSS)gdb ; then \
-               $(call MESSAGE,"Installing gdbinit"); \
-               $(gen_gdbinit_file); \
-       fi
-endef
-
-# uClibc-ng dynamic loader is called ld-uClibc.so.1, but gcc is not
-# patched specifically for uClibc-ng, so it continues to generate
-# binaries that expect the dynamic loader to be named ld-uClibc.so.0,
-# like with the original uClibc. Therefore, we create an additional
-# symbolic link to make uClibc-ng systems work properly.
-define TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO
-       $(Q)if test -e $(TARGET_DIR)/lib/ld-uClibc.so.1; then \
-               ln -sf ld-uClibc.so.1 $(TARGET_DIR)/lib/ld-uClibc.so.0 ; \
-       fi
-       $(Q)if test -e $(TARGET_DIR)/lib/ld64-uClibc.so.1; then \
-               ln -sf ld64-uClibc.so.1 $(TARGET_DIR)/lib/ld64-uClibc.so.0 ; \
-       fi
-endef
-
-TOOLCHAIN_EXTERNAL_BUILD_CMDS = $(TOOLCHAIN_WRAPPER_BUILD)
-
-define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS
-       $(TOOLCHAIN_WRAPPER_INSTALL)
-       $(TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK)
-       $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS)
-       $(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC)
-       $(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER)
-       $(TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT)
-endef
-
-# Even though we're installing things in both the staging, the host
-# and the target directory, we do everything within the
-# install-staging step, arbitrarily.
-define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_CMDS
-       $(TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK)
-       $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS)
-       $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER)
-       $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC)
-       $(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT)
-       $(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO)
-endef
-
-$(eval $(generic-package))
-
+include toolchain/toolchain-external/*/*.mk
index c22713bfe3499e68c4c3b59108369e92bcdf2022..d317e917d032091a52d3f55f634bee789f965467 100644 (file)
@@ -12,6 +12,20 @@ endif
 
 TOOLCHAIN_ADD_TOOLCHAIN_DEPENDENCY = NO
 
+# Apply a hack that Rick Felker suggested[1] to avoid conflicts between libc
+# headers and kernel headers. This is a temporary measure until musl finds a
+# better solution.
+#
+# [1] http://www.openwall.com/lists/musl/2015/10/08/2
+ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
+define TOOLCHAIN_MUSL_KERNEL_HEADERS_COMPATIBILITY_HACK
+       $(SED) 's/^#if defined(__GLIBC__)$$/#if 1/' \
+               $(STAGING_DIR)/usr/include/linux/libc-compat.h
+endef
+TOOLCHAIN_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_MUSL_KERNEL_HEADERS_COMPATIBILITY_HACK
+TOOLCHAIN_INSTALL_STAGING = YES
+endif
+
 $(eval $(virtual-package))
 
 toolchain: $(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake